Go編寫的多平台Agent和控制器

2021-09-19 07:26:30 字數 2475 閱讀 4370

gomet是乙個go編寫的多平台agent和控制器。agent通過tls隧道與其控制器通訊。

構建安裝 go (

轉殖儲存庫

cd gomet

go build ./…

go build .

基礎使用

啟動 gomet

控制器會自動使用正確的資訊來構建 agent。

注意:「khrokbh3azshbix」是由控制器隨機生成的,在gomet cli中鍵入「info」以了更多關於它的內容。在本用例中,你必須新增 –no-check-certificate選項,因為預設tls證書是自動簽名的。

可用作業系統(參見 golang goos):

linux

darwin

windows

solaris

…可用架構(參見 golang goarch):

386amd64

armarm64

…啟動 agent

chmod +x agent

./agent

在 gomet cli 中,我們可以看到建立的新會話

server > new session 1 - - :- darwin/amd64

會話互動

server > sessions open 1

session 1 > help

session 1 >

tcp **

我們可以通過 agent tls tunnel 雙向** tcp 連線。

connect

在本地偵聽埠(在控制器系統上)並將其**到遠端服務。

listen

在遠端偵聽埠(在**系統上)並將其**到本地服務。

socks5 和 routing

我們可以在控制器上啟用 socks5 listener,以通過 agents 訪問遠端網路,並定義到不同會話的路由。

做乙個中繼

如果無法從目標系統訪問控制器,我們可以在另乙個 agent 上定義「中繼」。 然後我們可以像控制器本身一樣通過中繼訪問控制器。

session 1 > relay

remote address: 0.0.0.0:9999

session 1 >

並從目標系統

與控制器共享檔案

控制器可以共享檔案。

我們還可以將檔案上傳到控制器

使用 cli 生成 agent

配置檔案

預設配置檔案位於 config/config.json 。

,「api」:

}定義 tunnel

如果我們想通過隧道偵聽,我們可以在配置檔案中定義它。 實際上只有ssh。

,「tunnel」: ,,]

}}自定義 tls 證書

在 config 目錄中會生成乙個預設證書,但你也可以用你自己的證書來替換它。

注意:一旦更改了預設證書,則將重建所有 agents,因為證書的雜湊值不同。

多檔案程式的編寫

多檔案程式包含 標頭檔案.h 原始檔.cpp 主函式.cpp 宣告抽象基類shape class shape 虛函式 virtual float volume const 虛函式 virtual void shapename const 0 純虛函式 宣告類point class point pub...

Linux Makefile多目錄的編寫

手頭乙個專案,需要編寫專案的makefile 多目錄結構 csource common sqlite3 inc curl lua protection lib arm linux obj out arm linux src 原始碼目錄src,輸出目錄out,include目錄inc,輸入鏈結庫目錄l...

Linux平台Makefile檔案的編寫基礎篇

目的 基本掌握了 make 的用法,能在 linux 系統上程式設計。環境 linux 系統,或者有一台 linux 伺服器,通過終端連線。一句話 有 linux 編譯環境。準備 準備三個檔案 file1.c,file2.c,file2.h file1.c include include file2...