一、攻击实现
1、ICMP转向连接攻击
攻击者主要是使用ICMP【时间超出】或【目标地址无法连接】的消息。这两种ICMP消息都会导致一台主机迅速放弃连接。攻击只需伪造这些ICMP消息中的一条,并发送给通信中的两台主机或其中的一台,就可以利用这种攻击,接着通信连接就会被切断。
当其中一台主机错误地认为信息的目标地址不在本地网络中的时候,网关通常会使用ICMP转向消息。如果攻击者伪造出一条转向消息,它就可以导致另外一台主机经过攻击者主机向特定连接发送数据包。
2、ICMP数据包放大
攻击者向安全薄弱网络所广插的地址发送伪造的ICMP响应数据包,然后都向受害主机系统发送ICMP响应的答复信息,占用了目标系统的可用带宽并导致合法通信的服务拒绝。
3、死Ping攻击
由于早期路由器对包的最大尺寸都有限制,许多操作系统对 TCP/IP的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生尺寸超过ICMP上限的包,也就是加载的尺寸超过64KB上限时,就会出现内存分配错误,导致 TCP/IP崩溃,致使接收方宕机。
4、ICMP Ping淹没攻击
大量的Ping信息广播淹没了目标主机的系统,使得它不能够对合法的通信作出响应。
5、ICMP nuke攻击
nuke发送出目标主机的操作系统无法处理的信息数据包,从而导致该系统宕机。
6、通过ICMP进行攻击信息收集
通过Ping命令来检查目标主机是否存活,依照返回的TTL值判断目标主机操作系统。
二、ICMP攻击的防御方式
1、对ICMP数据包进行过滤
虽然很多主机防火墙可以对ICMP数据包进行过滤,但对于没有安装防火墙的主机,可以使用系统自带的防火墙和安全策略对ICMP进行过滤。
2、修改TTL值
许多入侵者会通过Ping目标主机,用目标返回TTL值来判断对方操作系统。既然入侵者相信T TL值所反映出来的结果,那么只要修改TTL值,入侵者就无法得知目标主机操作系统了。