ARP欺骗原理
ARP作用:
通俗点说,在局域网中通信时使用的是MAC地址,而不是常见的IP地址。所以在局域网的两台主机间通信时,必须要知道对方的MAC地址,这就是ARP协议要做的事:将IP地址转换为MAC地址。
ARP原理:
举例:现在有两台处于同一局域网的主机A、B。
现在主机A要和主机B通信,那么根据上面的介绍可以知道,主机A仅有主机B的IP地址是不可以通信的,还要知道主机B的MAC地址,下面介绍主机A是如何通过ARP协议获取主机B的MAC地址的:
- 第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
- 第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求
- 第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
- 第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
- 第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存周期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。
ARP欺骗原理:
主机接收到一个应答包之后,并不会验证自己是否发送过对应的arp请求包,也不会验证这个arp请求包是否可信,而是直接用应答包里的IP地址和mac地址的对应关系替换掉arp缓存表里原有的对应关系。
欺骗过程:
攻击主机B向网关C发送一个应答包,包括主机A的IP地址、主机B的mac地址。同时,向主机A发送一个应答包,包括网关C的IP地址,主机B的mac地址。 这个时候,网关C就会将缓存表里主机A的mac地址换成主机B的mac地址,而主机a就会将缓存表里网关C的mac地址换成主机B的mac地址。 所以,网关C发送给主机A的消息全被主机B接收,主机A发送给网关C的消息也全被主机B接收,主机B就成为主机A和网关C通信的“中间人”。
ARP欺骗攻击的检测与防御
检测:
1、网络频繁掉线
2、网速突然变慢
3、使用arp -a命令查看的网关mac地址与真实的网关mac地址不同
4、使用嗅探软件发现局域网内存在大量arp应答包
防御:
1、绑定mac地址
2、使用静态arp缓存表
3、使用arp服务器,通过服务器来查找arp转换表来响应其他机器的广播
4、使用arp欺骗防护软件
ARP欺骗的危害
1、使同一网段内其他用户无法上网
2、可以嗅探到交换式局域网中的所有数据包
3、对信息进行篡改
4、可以控制局域网内任何主机