![f6291d97e0be527194f25fad2865efd2.png](https://img-blog.csdnimg.cn/img_convert/f6291d97e0be527194f25fad2865efd2.png)
前言
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
我们通过案例来认识一下ARP攻击原理。
案例回顾
故障:部分办公终端无法访问服务器,另一部分办公终端能正常访问,出现问题的终端ping服务器有丢包现象。
操作如下:选了一台与服务器不同网段的终端来ping服务器,出现丢包现象。
![875d9b2ac2d2aabd5d868b9ece6c0e5b.png](https://img-blog.csdnimg.cn/img_convert/875d9b2ac2d2aabd5d868b9ece6c0e5b.png)
然后再选择一台与服务器同网段的其它服务器来ping此服务器,没有出现丢包现象。
![e8262fe99269f76fea1e7ebf44b8781b.png](https://img-blog.csdnimg.cn/img_convert/e8262fe99269f76fea1e7ebf44b8781b.png)
针对这种现象,预判定这次故障为不同网段之间互访出现了问题,涉及到网关的转发。为了验证出现问题的服务器访问网关是否正常,选择了一台同网段的终端来Ping服务器的网关,发现存在丢包现象。
![a63e203026233b4cd2a7e83d576dd67f.png](https://img-blog.csdnimg.cn/img_convert/a63e203026233b4cd2a7e83d576dd67f.png)
将问题缩小在10.0.161.126/26这个网段内,这个网段为核心交换机的vlan16。
在确定故障范围后,登陆核心交换机查看服务器vlan16的ARP表项,没有发现异常。
于是决定进行抓包分析。在核心交换机上将服务器所在的vlan16数据包进行镜像,同时用一台终端10.0.161.80长ping网关10.0.161.126,数据包如下:
![a52750e97a4f7a476a3d268a0f62d63f.png](https://img-blog.csdnimg.cn/img_convert/a52750e97a4f7a476a3d268a0f62d63f.png)
在出现丢包时,发现终端10.0.161.80有icmp 请求包发出,但请求包的目的MAC地址为001c.570f.0347,不是核心交换机Vlan16网关的实际MAC地址001c.570f.0348。
与此同时,在终端10.0.161.80上查看arp表项,发现网关10.0.161.126的MAC地址不断改变,如下图所示:
![896213c38cc89c9c0bc1a7ffaf9a689d.png](https://img-blog.csdnimg.cn/img_convert/896213c38cc89c9c0bc1a7ffaf9a689d.png)
判定:出现丢包现象是由于终端学习到网关10.0.161.126的arp表项发生变化,PING发出时的数据包目的网关对应的MAC地址错误,从而导致核心交换机VLAN16网关没有回应。
而终端关于网关的ARP表项不断变化,说明学习到了不同的ARP数据包。因此认为只要找到错误的ARP数据包是由哪台设备发出的,就能解决问题。
在确定原因后,登陆交换机查找攻击源。
在交换机上查找001c.570f.0347这个MAC地址,发现是楼层交换机上学习到的,通过查看交换机的物理地址表,发现F0/39口的物理地址有两个MAC地址,如下图所示:
![ad60880bce1e7b23c4dbf32528b69c5f.png](https://img-blog.csdnimg.cn/img_convert/ad60880bce1e7b23c4dbf32528b69c5f.png)
由此怀疑引交换机F0/39口下的设备影响到了VLAN 16的所有终端和服务器,将交换机的F0/39口关闭后,检查发现网络已经恢复正常,无丢包现象出现。
问题解决后,决定刨根究底,看看是哪台设备在发起ARP攻击。
检查楼层交换机的F0/39口下连设备,发现是一台TPLINK路由器。登陆TPLINK路由器后,发现路由器里启用了IP-MAC地址绑定设置,将10.0.161.126和001c.570f.0347进行了绑定。
而且抓包发现,这台TPLINK路由器会不断发送对外发出免费ARP包,所以VLAN 16的所有终端和服务器都会收到这个免费ARP包,然后更新网关10.0.161.126的ARP表,从而导致Ping不通网关。
![25912cf9546dba985c0aa30b862e9012.png](https://img-blog.csdnimg.cn/img_convert/25912cf9546dba985c0aa30b862e9012.png)
![c2609e0b8138c73248148893d715bdcb.png](https://img-blog.csdnimg.cn/img_convert/c2609e0b8138c73248148893d715bdcb.png)
总结
本文中的案例故障原因就是在局域网内有一台TPLINK做了IP和MAC绑定,由此发出免费的ARP包,所有收到这个ARP包的终端和服务器更改自己的ARP表项,从而导致不同网段之间的访问出现丢包。
通过这个案例,我们进一步地认识到ARP的攻击原理,同时也了解到ARP攻击的影响范围以及破坏程度,在日常的运维中,不能小看ARP攻击,要小心防范。