文章目录
一、ARP协议简介
ARP是Address Resolution Protocol(地址解析协议)得缩写。在以太网中,两台机器想要通信,就必须知道目标主机得MAC地址,而ARP协议的作用就是获取MAC。ARP协议的基本功能就是在主机发送数据之前将IP地址转换为MAC地址,完成网络地址到物理地址的映射。
1、ARP缓存表
任何一台主机安装了TCP/IP协议都有ARP缓存表,该表保存了局域网中个主机IP对应的MAC地址,ARP缓存表能够有效地保证数据传输的一对一特性。在Windows中可以使用arp -a来查看缓存表。
ARP缓存表中的数据是有时效性的,在超过指定的时间后,将从缓存中删除它们,Windows中默认的存活时间为两分钟。
2、局域网主机通信
假设两个网段、两个网关、三台主机,如下:
主机IP MAC
网关1 192.168.0.1 01-01-01-01-01-01
主机A 192.168.0.2 02-02-02-02-02-02
主机B 192.168.0.3 03-03-03-03-03-03
网关2 192.168.1.1 04-04-04-04-04-04
主机C 192.168.1.2 05-05-05-05-05-05
1、A和B通信:主机A使用ping 192.168.0.3
,主机A进行子网掩码对比,发现与B在同一局域网 内:
A查询本机ARP缓存表,查看是否存在B的MAC地址。
①存在:直接发送数据。
②不存在:A发送ARP请求报文(包含IP、MAC地址、请求地址等),局域网内主机在收到请求报文时,仅有B应答,并将自己的MAC地址发送给A,而且会将A的MAC地址存在自己的ARP缓存表中。在主机A收到B的响应之后,会将B的MAC地址保存在自己的ARP缓存表中,然后发送数据。
2、A与C通信时:主机A通过子网掩码对比,发现与主机C不在同一局域网中,所以需要网关转发处理:
主机A查询ARP缓存表中是否存在网关1的MAC地址。
①不存在时:通过广播获取网关1的MAC地址。
②存在时:向网关1发送数据包,由网关1向网关2发送数据包,网关2查看数据包发现是发送给C的。然后网关2查看自己的ARP缓存表是否存在C的MAC地址。存在,直接发送数据包;不存在,则广播获取MAC地址之后发送。
二、ARP欺骗原理
1、ARP协议的部分缺陷:
①当广播请求时,攻击者伪装ARP应答,冒充真正的主机。
②ARP协议时无状态的,这就表示主机可以*地发送ARP应答包,即使主机并未收到查询,并且任何ARP响应都是合法的,许多主机会接收为请求的ARP应答包。
③一台主机的IP被缓存在另一台主机中,他就会被当作一台可信任的主机。而计算机不提供检验IP到MAC地址是否正确的机制。当主机接收到一个ARP应答后,主机不再考虑IP到MAC地址的真实性和有效性,而是直接将应答包中的MAC地址与对应的IP地址替换到原有的ARP缓存表的相关信息。
2、ARP欺骗原理
以太网中,主机之间不知道对方的MAC地址时无法通信的,所以主机会以广播的形式发送请求来获取对方的MAC地址,请求包中包含发送方的IP、MAC地址,如果攻击者正好处于局域网中,可以利用ARP缺陷,在网络中发送一些虚假的ARP请求或者响应,这就是ARP欺骗。
3、ARP欺骗过程
在上文中,主机A和主机C之间通信会经过网关1、2,但是当主机收到一个ARP应答包后,他并不会去验证自己是否发送过ARP请求,而是直接就将应答包的MAC地址于与IP地址替换掉原有的ARP缓存信息,这就导致了主机A与主机C之间的通信内容可能被主机B截取。
主机B的ARP欺骗过程:
主机B向主机A发送一个ARP响应:192.168.0.1的MAC地址时03-03-03-03-03-03(主机B的MAC地址),主机A收到响应后不会验证是否真实,而是直接替换本机ARP缓存表中的192.168.0.1的MAC地址。同时主机B也向主机网关1发送一个ARP响应:192.168.0.3的MAC地址为03-03-03-03-03-03,同样的,网关也不会进行验证,直接放到自己的ARP缓存表中。
当主机A与C通信时,A会先检查自己的ARP缓存中是否由网关1的MAC地址,发现有缓存地址03-03-03-03-03-03,于是向MAC地址发送信息,但是此时MAC地址是B的MAC地址。主机B接收到数据之后再转发到真正的网关1,由网关1发送给主机C。当主机C接收到数据后,可能会返回数据,二返回数据在到达网关1时,网关1会先检查自己的ARp缓存表,去寻找192.168.0.3的MAC地址,MAC地址为03-03-03-03-03-03,也就是B,当主机B接收到数据包后,再转发给真正的通信对象主机A。主机A和C的通信都经过了B,B是可以控制整个通信过程的。
三、ARP欺骗的危害
1.造成局域网中的其他主机断网。
2.劫持局域网中其他主机或网关的流量,获取敏感信息等。
四、ARP欺骗的防御
1、每台计算机的ARP一律改用静态的方式,不过这在大型的网上是不可行的,因为需要经常更新每台计算机的ARP表。
2、例如DHCP snooping,网上设备可借由DHCP保留网络上各计算机的MAC地址,在伪造的ARP数据包发出时即可侦测到。此方式已在一些厂牌的网上设备产品所支持。
3、有一些软件可监听网络上的ARP回应,若侦测出有不正常变动时可发送邮箱通知管理者。例如UNIX平台的Arpwatch以及Windows上的XArp v2或一些网上设备的Dynamic ARP inspection功能。