ARP欺骗

本文阅读 7 分钟

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地址之后发送。

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是可以控制整个通信过程的。

1.造成局域网中的其他主机断网。

2.劫持局域网中其他主机或网关的流量,获取敏感信息等。

1、每台计算机的ARP一律改用静态的方式,不过这在大型的网上是不可行的,因为需要经常更新每台计算机的ARP表。 2、例如DHCP snooping,网上设备可借由DHCP保留网络上各计算机的MAC地址,在伪造的ARP数据包发出时即可侦测到。此方式已在一些厂牌的网上设备产品所支持。 3、有一些软件可监听网络上的ARP回应,若侦测出有不正常变动时可发送邮箱通知管理者。例如UNIX平台的Arpwatch以及Windows上的XArp v2或一些网上设备的Dynamic ARP inspection功能。

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/sycamorelg/article/details/118359830
-- 展开阅读全文 --
Web安全—逻辑越权漏洞(BAC)
« 上一篇 03-13
Redis底层数据结构--简单动态字符串
下一篇 » 04-10

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复