该项目是C2服务端的流量中转工具。使用此工具,服务端程序无需部署在远程服务器上,可以通过主动连接远程服务器或在内网中作为跳板使用。此工具支持tcp流量转发和可选的ICMP服务器。
- 本地监听端口:通过
-lport参数设置本地监听端口,等待服务端使用-s参数连接。 - tcp流量转发:当有连接建立后,使用
-hport参数指定HTTP监听端口,并将流量转发到该端口。 - ICMP 支持:可选的ICMP服务器,使用
-icmp参数开启,用于支持ICMP客户端通信。 - 日志输出:使用
-log参数控制是否将日志输出到控制台。
./c2_relay -lport <local_port> -hport <http_port> [-icmp] [-log]-lport:本地监听端口,默认值为8081。等待服务端的主动连接。-hport:HTTP监听端口,默认值为8443。当连接建立后,该端口将作为HTTP流量转发的入口。-icmp:可选参数,开启ICMP服务器以支持ICMP客户端通信。-log:可选参数,启用后会将日志输出到控制台。
./c2_relay -lport 8081 -hport 8443 -icmp -log在该示例中:
- 工具将在本地的8081端口监听,等待服务端的连接。
- 一旦连接建立,8443端口将作为HTTP流量转发的入口。
- 同时,开启ICMP服务器支持ICMP客户端的通信。
- 所有的操作日志将输出到控制台。
随后可以使用C2服务端进行连接:
./c2_server -s 192.168.1.1:8081- 当通过
-lport参数指定的本地监听端口接收到连接后,会自动启用HTTP服务端口和ICMP服务。 - 连接关闭后,HTTP服务和ICMP服务也将自动关闭。
- Go 版本1.16或更高。
- 操作系统:Linux, Windows。
- 使用ICMP服务时,会主动尝试关闭icmp响应
- 确保指定的端口未被其他服务占用,以避免冲突。
go mod init forwarder
go mod tidy
go build -trimpath -ldflags "-s -w"