本文主要是介绍关于ARP欺骗的一点发现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ARP欺骗的一种应用场景是劫持局域网通信流量(通常是某个机器和网关之间的流量)。比如有局域网中两个机器A(MAC地址为MA)和B(MAC地址为MB)通信,C机器(MAC地址为MC)想要实现中间人攻击,实现方法是向A发送ARP应答,告诉A:B的MAC地址是MC;并向B发送ARP应答,告诉B:A的MAC地址是MC。A和B收到ARP应答后会直接刷新ARP缓存,而不管这个应答对应的是哪个ARP请求。这样A到B和B到A的所有流量都会发送到C上,C收到这些包后,只要将包中目的IP对应的正确的MAC地址填充回去再发送到局域网中,就可以完全不影响A和B之间的正常通信(性能瓶颈除外)。C将包修改后再发送也很难被察觉,这样就实现了中间人攻击。
需要注意的一点是:上述的ARP欺骗只能在目标主机有对应的ARP缓存记录(包括已经删除的和超时的)的情况下才能生效。也就是说,要想让A在收到ARP欺骗报文后在ARP缓存中记录“B的MAC地址是MC”,则A在收到欺骗报文前其ARP缓存中必须已经存在了一条B的MAC地址映射。如果A中根本没有B的MAC地址映射信息,且在没有发送ARP请求的情况下,即使收到关于B的ARP应答也会丢弃,并不会将B的MAC地址映射添加到ARP缓存中。
这篇关于关于ARP欺骗的一点发现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!