ICMP简介:


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


web安全入门-icmp测试与防御_压力测试


ICMP的测试


比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)测试。“Ping of Death” 测试的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。(操作系统已经取消了发送ICMP数据包的大小的限制,解决了这个漏洞)

此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。


防御方法:


1、第一种方法是在路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP压力测试,它所占用的带宽也是非常有限的,对整个网络的影响非常少。


2、第二种方法就是在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。


3、设置复杂的防火墙规则


抓包分析


web安全入门-icmp测试与防御_icmp数据包_02


kali内置hping3工具


web安全入门-icmp测试与防御_压力测试_03


hping3发送源地址随机的ICMP数据包。