利用ICMP报文进行网络***主要分为三种类型:死亡之Ping、ICMP DoS***、基于重定向的路由欺骗。


一、死亡之Ping

1.1 ***原理

· 以太网报文有长度限制,超大报文网络采取分片传输

· 报文分片后第一分片只包含各个分片报文长度

· 接收端对分片报文接收后重组

· 报文分片后大小总和大于分片前报文

· IP协议规定IP包最大尺寸

· 大部分处理程序假定报文不会超过最大尺寸

· 超大报文重组所占内存块大于IP包最大尺寸

· 重组过程引发缓冲区溢出,系统进入非稳定状态

· 导致TCP/IP堆栈崩溃

1.2 防御防范

对OS打上最新补丁(一般为解决D死亡之Ping漏洞版本即可)即可。


二、ICMP DoS***

ICMP DoS***根据***方式的不同可以分为针对带宽的DoS和针对连接的DoS。

2.1 针对带宽的DoS

2.1.1 ***原理

· ICMP echo reply报文具有高转发优先级

· ***者向被***主机发送大量源IP伪造(不存在)的ICMP echo request报文

· 被***主机回复主机不可达(echo reply)

· ***主机带宽被占用,不能响应正常服务

这种***方式要求***主机处理能力和带宽要大于被***主机,否则自身被DoS了。

另外,在这种***基础上可发起DDoS***(Smurf***),具体步骤如下:

1. ***者向“放大网络”广播echo request报文

2. ***者指定广播报文的源IP为被***主机

3. “放大网络”回复echo reply给被***主机

4. 形成DDoS***场景

这里的“放大网络”可以理解为具有很多主机的网络,这些主机的操作系统需要支持对目的地址为广播地址的某种ICMP请求数据包进行响应。

2.1.2 防御方法

对于针对带宽的ICMP DoS***可以设置ICMP限速,或者使用防火墙来过滤非法ICMP报文。


2.2 针对链接的ICMP DoS

针对连接的DoS***,可以终止现有的网络连接。针对网络连接的DoS***会影响所有的IP设备,因为它使用了合法的ICMP消息。Nuke通过发送一个伪造的ICMP Destination Unreachable或Redirect消息来终止合法的网络连接。更具恶意的***,如puke和smack,会给某一个范围内的端口发送大量的数据包,毁掉大量的网络连接,同时还会消耗受害主机CPU的时钟周期。


2.3 基于ICMP重定向的路由欺骗技术

***者可利用ICMP重定向报文破坏路由,并以此增强其窃听能力。除了路由器,主机必须服从ICMP重定向。如果一台机器想网络中的另一台机器发送了一个ICMP重定向消息,这就可能引起其他机器具有一张无效的路由表。如果一台机器伪装成路由器截获所有到某些目标网络或全部目标网络的IP数据包,这样就形成了窃听。通过ICMP技术还可以抵达防火墙后的机器进行***和窃听。


注:重定向路由欺骗技术尚无实际应用。