ICMP(Internet Control Message protocol)互联网信息控制协议,用于实现链路连通性测试和链路追踪,可以实现链路差错报告,属于UDP协议。ICMP有多种类型的报文,同一类型的报文会有多个不同的Code。
ping、tracert 等命令的内部就是用的 icmp 协议。
ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据包向它的目的地转发。
发生ICMP重定向通常有两种情况:
在数据包的传送过程中,目标ip和源ip是一直不变的。目标mac和源mac是一直变化的
PC1 ping PC2
step1: ?发送arp广播包,请求网关的mac地址
step2: ? 封装并发送数据包,目标ip: 11.11.11.11 ? 源ip: 10.10.10.10 ? ?目标mac:MAC-AR1-0/0/0 ?源MAC: MAC-pc
step3: 重新封装数据包,目标ip: 11.11.11.11 ? 源ip: 10.10.10.10 ? ?目标mac: MAC-AR2-0/0/1 ? 源MAC: MAC-AR1-0/0/1
step3: 重新封装数据包,目标ip: 11.11.11.11 ? 源ip: 10.10.10.10 ? ?目标mac: MAC-AR3-0/0/0 ? 源MAC: MAC-AR2-0/0/2
step3: 重新封装数据包,目标ip: 11.11.11.11 ? 源ip: 10.10.10.10 ? ?目标mac: MAC-PC2 ? 源MAC: MAC-AR4-0/0/1
ICMP泛洪攻击是最常用的DOS(拒绝服务攻击)之一,顾名思义,就是对目标主机发送洪水般的ping包,使得目标主机忙于处理ping包而无能力处理其他正常请求,造成目标主机无法给其他主机提供服务,从而达到攻击的目的。如果ping包足够多,甚至会造成目标主机资源消耗殆尽而造成宕机。
我们可以使用Kali里面的 hping3 进行 icmp 攻击
hping3 --flood -1 --rand-source --icmptype 3 --icmpcode 3 192.168.10.1
--flood 攻击模式,尽可能快的发送报文
-1 发送icmp报文
--ran-source 发送报文时,源IP为随机的IP地址
--icmptype 3 表示ICMP报文类型为目的不可达
--icmpcode 3 表示不可达报文为端口不可达
tracert : 探测本地到目的地的路径,内部调用了ICMP协议
R1发送的第一个探测报文,在发送的时候会发送三个,第一个探测报文的TTL值为1,第一跳的设备在收到TTL=1的报文后,会回复TTL超时报文
R1发送的第二个探测报文也一样,会发送三个,第二个探测报文的TTL值为2,第二跳的设备在收到TTL=2的报文后,也会回复TTL超时报文
一直这样,探测报文会一直发送,TTL值依次加1,直到发送到目标端,目标端会回复目标不可达报文,至此,完成探测
原文:https://www.cnblogs.com/linhaostudy/p/10619883.html