(摘) Gonc:基于Golang的netcat工具

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

gonc 是一个基于 Golang 的 netcat 工具,旨在更方便地建立点对点通信。其主要特点包括:

🔁 自动化内网穿透:零配置,双方仅需约定一个口令,使用参数-p2p既可自动发现彼此网络地址和穿透内网建立点对点连接,使用公共 STUN 和 MQTT 服务交换地址信息。

🔒 端到端双向认证的加密:支持 TCP 的 TLS 和 UDP 的 DTLS 加密传输,可基于口令双向身份认证。

🧩 灵活的服务配置:通过参数 -e 可灵活的设置为每个连接提供服务的应用程序,例如-e /bin/sh可提供远程cmdshell,还可以使用内置的虚拟命令便捷的使用socks5服务、http文件服务和流量转发功能。

基础

连接到我的博客: gonc i.scwy.net 80
以加密模式连接: gonc -tls i.scwy.net 443
本地监听4444端口: gonc -l 4444

于是结合两者进行通信/聊天:
服务端: gonc -l 4444
客户端: gonc 127.0.0.1 4444

p2p连接/聊天

双方都运行此命令,统一命令: gonc -p2p your_password_here

以上命令相对需要同一时间运行,也可以使用-mqtt让其中一方等久一点:

等待方: gonc -p2p your_password_here -mqtt-wait

发起方: gonc -p2p your_password_here -mqtt-hello

反弹 Shell (获取远程终端控制)

监听端 (在目标机器上运行)

gonc -tls -exec “:sh /bin/bash” -l 1234

连接端 (从你的机器连接)

gonc -tls -pty x.x.x.x 1234

-pty 参数提供伪终端

P2P 方式反弹 Shell (更安全,无需暴露公网IP)

目标机器

gonc -exec “:sh /bin/bash” -p2p your_password

你的机器

gonc -pty -p2p your_password

如何连接Win的cmd命令行,暂时没测试成功.

P2P 隧道与 Socks5 代理

一端等待建立隧道并作为 Socks5 服务器

gonc -p2p your_password -socks5server

另一端将本机的 3080 端口映射为 Socks5 客户端

gonc -p2p your_password -socks5local-port 3080

P2P 隧道与 HTTP 文件共享

一端启动 HTTP 文件服务器,共享 C:/RootDir 目录

gonc -p2p your_password -httpserver c:/RootDir

另一端将对端的文件服务映射到本地 9999 端口

gonc -p2p your_password -httplocal-port 9999

也可以直接递归下载所有文件到本地

gonc -p2p <口令> -download c:/save

在客户机上运行HTTP服务,我的电脑上就可以直接通过浏览器上查看了.也意味着我可以为客户一对一的打开一个文件共享.

传输速度测试

发送端 (发送无限零数据流)

gonc.exe -send /dev/zero -P x.x.x.x 1234

接收端

gonc -P -l 1234 > NUL

需要先运行客户端

下面命令启动了仅支持UDP转发功能的socks5代理,-psk和-tls开启了加密和PSK口令认证。
gonc -e “:s5s -u -c=0” -psk 口令 -tls -k -l 1080