D.3.2 ARP欺骗
ARP协议并不只在发送了ARP请求后才接收ARP应答。只要主机接收到ARP应答数据包,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。所以在网络中,如果有人发送一个伪造的ARP应答,网络就可能出现问题。
假设在一个网络环境中有三台主机,分别为主机A、B、C。主机详细信息如下描述:
A的地址为:IP:192.168.10.1 MAC:AA-AA-AA-AA-AA-AA
B的地址为:IP:192.168.10.2 MAC:BB-BB-BB-BB-BB-BB
C的地址为:IP:192.168.10.3 MAC:CC-CC-CC-CC-CC-CC
正常情况下A和C之间进行通信,通信数据不经过B。但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据的发送方的IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B发送的伪造ARP应答时,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成了C。
同时,B向C发送一个ARP应答,应答包中的发送方IP地址为192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答时,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。
这样主机A和C都被主机B欺骗了,A和C之间的通信数据都经过了B。主机B完全可以知道它们之间的通信内容,黑客就可从此处获得自己所关心的数据。
上述就是典型的ARP欺骗过程。而查找欺骗者的过程如图D-3~图D-5所示。
图 D-3 ARP欺骗的数据包
图 D-4 遭受ARP欺骗导致ping回复出错
图 D-5 查找谁是欺骗者
从图D-6所示可见,主机AmbitMic_aa:af:80总是发送欺骗的ARP应答报文,他就是欺骗者。
图 D-6 定位欺骗者的MAC地址
从数据包的内容可知主机AmbitMic_aa:af:80的MAC地址为00:d0:59:aa:af:80,管理员通过这些即可确认哪台主机是欺骗者。