博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GoMet:Go编写的多平台Agent和控制器
阅读量:4172 次
发布时间:2019-05-26

本文共 3398 字,大约阅读时间需要 11 分钟。

GoMet是一个Go编写的多平台Agent和控制器。Agent通过TLS隧道与其控制器通信。

构建

安装 Go ().

克隆存储库

git clone git@github.com:gomet-app/GoMet.git

并编译 GoMet

cd GoMetgo build ./...go build .

基础使用

启动 GoMet

#> ./gomet    ____       __  __      _   / ___| ___ |  \/  | ___| |_  | |  _ / _ \| |\/| |/ _ \ __|  | |_| | (_) | |  | |  __/ |_   \____|\___/|_|  |_|\___|\__|                                     v0.0.1server > infoLocal listener: 0.0.0.0:8888Socks listener: 127.0.0.1:9050HTTP magic: khRoKbh3AZSHbixserver >server > helpCommands:  clear         清屏  exit          退出  generate      生成一个 agent  help          显示帮助信息  info          打印服务器信息  routes        列出 routes  sessions      列出 sessions

在目标系统上,下载相应操作系统和架构的Agent程序

wget https://
:8888/khRoKbh3AZSHbix/agent/darwin/amd64 --no-check-certificate -O agent

控制器会自动使用正确的信息来构建 agent。

注意:“khRoKbh3AZSHbix”是由控制器随机生成的,在GoMet CLI中键入“info”以了更多关于它的内容。在本用例中,你必须添加 –no-check-certificate选项,因为默认TLS证书是自动签名的。

可用操作系统(参见 Golang GOOS):

linuxdarwinwindowssolaris...

可用架构(参见 Golang GOARCH):

386amd64armarm64...

启动 agent

chmod +x agent./agent

在 GoMet CLI 中,我们可以看到创建的新会话

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

会话交互

server > sessions open 1session 1 > helpCommands:  cat           打印文件  clear         清屏  close         关闭 session  connect       连接一个本地端口到远端地址  download      下载文件  execute       执行命令  exit          返回到服务器  getuid        获取用户 Id  help          显示帮助信息  jobs          列出 jobs  listen        连接一个远程端口到本地地址  ls            列出文件  netstat       列出连接  ps            列出进程  pwd           获取当前目录  relay         中继侦听  shell         远程shell交互  streams       列出数据流  upload        上传文件session 1 >

TCP 转发

我们可以通过 agent TLS tunnel 双向转发 TCP 连接。

connec

在本地侦听端口(在控制器系统上)并将其转发到远程服务。

listen

在远程侦听端口(在代理系统上)并将其转发到本地服务。

Socks5 和 routing

我们可以在控制器上启用 Socks5 listener,以通过 agents 访问远程网络,并定义到不同会话的路由。

做一个中继

如果无法从目标系统访问控制器,我们可以在另一个 agent 上定义“中继”。 然后我们可以像控制器本身一样通过中继访问控制器。

session 1 > relayRemote Address: 0.0.0.0:9999session 1 >

并从目标系统

wget https://
:9999/khRoKbh3AZSHbix/agent/darwin/amd64 --no-check-certificate -O agent

与控制器共享文件

控制器可以共享文件。

复制共享目录中的文件并使用 magic URL 下载

wget https://
:8888/khRoKbh3AZSHbix/my_file --no-check-certificate

我们还可以将文件上传到控制器

wget https://
:8888/khRoKbh3AZSHbix/other_file --no-check-certificate --post-file file

使用 CL 生成 agent 

server > generateOS: windowsArch: amd64Host: 
:8888HTTP proxy:HTTPS proxy:Proxy username:Proxy password:Generated agent URL: https://
:8888/Ye8o14kw1rpMJ8f/ySUxt7YT8X5fyatserver >

配置文件

默认配置文件位于 config/config.json 。

{  "listenAddr":"0.0.0.0:8888",  "socks": {    "enable": true,    "addr": "127.0.0.1:9050"  },  "api": {    "enable": false,    "addr": "127.0.0.1:9000"  }}

定义 tunnel

如果我们想通过隧道侦听,我们可以在配置文件中定义它。 实际上只有SSH。

{  "listenAddr":"0.0.0.0:8888",  "socks": {    "enable": true,    "addr": "127.0.0.1:9050"  },  "tunnel": {    "listenAddr":"
:8888", "nodes": [ { "type":"ssh", "host": "
:22", "username": "user", "password": "user" }, { "type":"ssh", "host": "
:22", "username": "user", "password": "user" }, { "type":"ssh", "host": "
:22", "username": "user", "password": "user" } ] }}

自定义 TLS 证书

在 config 目录中会生成一个默认证书,但你也可以用你自己的证书来替换它。

注意:一旦更改了默认证书,则将重建所有 agents,因为证书的哈希值不同。

转载地址:http://cdcai.baihongyu.com/

你可能感兴趣的文章
Yocto tips (6): Yocto中如何共享已经下载的文件
查看>>
Yocto tips (1): Yocto 编译后文件放在了哪里 输出文件位置
查看>>
Yocto tips (2): Yocto Linux内核编译目录在哪?
查看>>
Yocto tips (3): Yocto 如何重新编译Linux内核与dtb,并放到deploy目录?
查看>>
Yocto tips (4): Yocto 如何确定(找到)一个包的名字
查看>>
start kernel 之后没有任何输出与uboot无法将bootargs传入内核的调查方法与解决之道
查看>>
Yocto tips (5): Yocto如何更改source code的下载与git clone地址
查看>>
Yocto tips (7): Yocto Bitbake的clean与cleanall以及cleansstate的区别
查看>>
Yocto tips (19): Yocto SDK Toolchian的使用
查看>>
Yocto i.MX6 (TQIMX6) (04) : 使用mjpg-streamer做一个WebCam Server
查看>>
Nexus 7 Cyanogenmod OS Compile and errors
查看>>
Yocto tips (20): Yocto中qemu模拟器的使用,以zynq Cortex-A9为例
查看>>
打造嵌入式ARM Linux防火墙:1. iptables基础
查看>>
4G模块SIMCOM7100 LTE在ARM Linux下使用PPPD上网
查看>>
为小米4与小米3 Mi3 Mi4编译Cyanogenmod 12.1与13.0 (CM12与CM13) 的步骤以及错误解决
查看>>
原生Android系统的第一次开机google验证的解决
查看>>
S5P4418与S5P6618的Android boot.img的解压与压缩, Sparse ext4文件系统
查看>>
【EVB-335X-II试用体验】 u-boot与kernel的编译以及本地repo的建立
查看>>
【EVB-335X-II试用体验】 上手试用与资源使用
查看>>
【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用
查看>>