ICMP 隧道的流量特征
由于 ICMP 隧道将其他协议的数据“借壳上市”,它的流量行为和正常的 ping
命令有显著区别。以下是 ICMP 隧道的几个主要流量特征:
1. 非标准的ICMP数据载荷
- 正常流量:标准的
ping
命令(ICMP echo request/reply)通常携带的数据载荷较小,通常为32或64字节,并且数据内容是可预测的,比如ABCDEFGHIJKLMNOPQRSTUVWXYZ
等 - 隧道流量:ICMP 隧道的数据载荷大小会根据传输的数据量而变化,通常远大于正常的
ping
载荷。这些载荷是经过编码和加密的,因此其内容是随机且不可读的
2. ICMP包类型和代码异常
- 正常流量:
ping
命令使用的ICMP包类型是Echo Request
(类型8)和Echo Reply
(类型0) - 隧道流量:ICMP隧道可能会使用其他不常见的ICMP类型,例如
Timestamp Request
(类型13)、Address Mask Request
(类型17)等,或者使用不常见的ICMP Code来作为数据传输的标记
3. 高频、连续的ping
请求
- 正常流量:用户手动
ping
一个地址通常是短期的、低频的行为,比如几秒钟一次,持续几十次 - 隧道流量:为了维持稳定的通信,ICMP 隧道工具会高频率、连续地发送和接收 ICMP 包,其频率远超正常
ping
行为,表现为一种持续不断的“心跳”模式
4. 异常的 ICMP ID 和 Sequence Number
- 正常流量:
ping
命令的ID
通常是随机生成的,Sequence Number
则按顺序递增。在一次会话结束后,ID
会改变 - 隧道流量:ICMP 隧道工具可能会自定义这些字段来传输数据,使其
ID
和Sequence Number
表现出非线性和不规则的模式,这在自动化分析中很容易被标记为异常
5. 传输方向和目的地址异常
- 正常流量:
ping
命令通常是从内网主机到外网服务器,或者在内网中进行测试 - 隧道流量:恶意 ICMP 隧道流量会从内网主机流向外部攻击者控制的服务器,这在网络流向分析中是一个重要的异常点