ARP攻击与防御

ARP简述

ARP协议名为“地址解析协议”,用来进行给定ip地址查找对应的mac地址,因为主机之间的通信依靠的是mac地址。

协议本身无任何验证措施,且查询方式为广播请求,单播回应,任何主机都可以回应该请求,因此极为不安全。

攻击原理

  • 通过ARP协议数据包对目标主机的ARP缓存表进行更改。

假设有1、2、3三台主机,其ip与mac分别为ip1、mac1,ip2、mac2,ip3、mac3。

  1. pc1与pc2正常通信

此时pc1的ARP缓存表中存入的pc2信息正确,为ip2对应mac2,可以正确找到pc2
ARP攻击与防御

  1. pc3对作为中间人攻击者进行欺骗

pc3向pc1不断发送“我是ip2,我的mac地址是mac3”,这样以来,pc1的ARP缓存表中的ip2对应的mac地址变成了mac3
ARP攻击与防御

  1. ARP缓存表被修改后pc1要和pc2通信

此时pc1的ARP缓存表中pc2对应的是mac3,因此当pc1要和pc2通信时,就会找到pc3的mac地址,进而将数据发送给pc3
ARP攻击与防御
此时pc1要发给pc2的数据被pc3拦截,如果pc3再和pc2建立通信,将数据查看或者更改后发给pc2,就达到了在不被轻易发现的情况在进行窃取或攻击。

假如pc2是网关路由,那么此时pc1的所有网络流量将经过攻击者pc3,此时攻击者就可以对pc1的网络进行限制或引流,并且pc1的所有账户信息、数据信息都将被窃取,这将非常危险!

攻击示例

示例为伪装网关路由进行欺骗攻击

  1. 打开两个虚拟机,攻击主机为winXP,目标主机为kali,查看两个主机的ip及mac

winXP:
ARP攻击与防御
kali:
ARP攻击与防御
得知:
winXP: IP为192.168.88.130 MAC为 ……1d

kali: IP为192.168.88.129 MAC为 ……1a

网关路由:IP为192.168.88.1 MAC为 ……08
网关路由:IP为192.168.88.2 MAC为 ……ab

  1. 攻击者主机通过广播ARP请求来查询在线主机

由于ARP请求为广播请求,因此同一局域网下的所有主机都会收到请求,如果查询的ip是自己ip,那么该主机就会回应
ARP攻击与防御
ARP攻击与防御
图示为攻击者192.168.88.130广播ARP请求包,从1到254逐个询问,此时存活的主机收到该请求就会进行回应
ARP攻击与防御
上图所示为网关路由、被攻击者主机分别回应了该请求,并且将自己的ip和mac展示了出来。

  1. 向存活主机发送虚假ARP包

攻击者已经通过广播请求得到了存活主机的ip及mac,以及网关路由的ip及mac,此时就可以向局域网内的主机发送虚假ARP包来告诉被攻击者:ip是192.168.88.2(即网管ip)的mac是……1a(即攻击者mac)
ARP攻击与防御
由于ARP缓存表是动态更新的,因此欺骗包必须不停地发送。

这样以来,被攻击者的ARP缓存表中网关ip对应的mac就变成了攻击者的mac。
ARP攻击与防御

  1. 被攻击者进行数据通信

此时当被攻击者进行数据通信时,就会在攻击者的电脑上显示数据信息,此处用ping114.114.114.114来测试

kali进行ping操作ARP攻击与防御
下方显示ping成功

用winXP攻击主机进行数据包分析
ARP攻击与防御
拦截发现在kali上的ping操作已经被显示在了攻击者主机上,来源是192.168.88.129,目标是114.114.114.114

  1. 被攻击主机进行账号密码登陆

用kali登陆telnet服务进行测试,默认账号密码皆为rviews
ARP攻击与防御
且密码输入时为不可见
ARP攻击与防御
此时在winXP即攻击者主机上即可显示登陆数据
ARP攻击与防御
ARP攻击与防御
利用wireshark中的TCP流数据分析即可得出账号和密码
ARP攻击与防御
ARP攻击与防御
此时的攻击目的已经达成,用户的账户密码数据信息已被窃取。

ARP防御

ARP防御有以下几种:

  1. 安装防火墙软件或安全软件,这是最简单的方法

  2. 静态ARP绑定

默认情况下ARP表中的映射都是动态的,为了方便更新
ARP攻击与防御
可以通过命令 arp -s ip地址 mac地址 进行绑定,此处随意绑定一个作为测试
ARP攻击与防御

  1. 根据ARP攻击的特性进行防御

ARP攻击事先需暴力查询存活主机,因此可以根据这种有规律的广播包来判断该请求是否合法,达到防御。

**

  • 学习整理,若有问题请指出。

**