ARP欺骗攻击学习笔记

0x00 前言

​ ARP欺骗是针对以太网地址解析协议的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可以篡改数据包,且可让网上特定计算机或所有计算机无法正常连线。

0x01 ARP协议

​ 地址解析协议是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

ARP缓存表

​ 任何一台主机安装了TCP/IP协议都会有ARP缓存表,该表保存了这个局域网中各主机对应的MAC地址,ARP缓存表能够有效地保证数据传输的一对一特性。

ARP命令

  • arp -a:查看缓存表
  • arp -s:建立静态缓存表
  • arp -d:清空缓存表

局域网主机通信

ARP欺骗攻击学习笔记

  • 同网段

    主机A和主机B处于同一局域网内,A与B通信时,A将会查询本机的ARP缓存表,看是否存在B的MAC地址。若存在则直接发送数据;若不存在,则在局域网中呼叫B,B再将自己的MAC地址发送给主机A,并将对方的MAC地址加入自己的ARP缓存表中。主机A收到B的响应后,将主机B的MAC地址加入自己的ARP缓存表中,方便下次联系,然后发送数据。

  • 不同网段

    主机A和主机C处于不同局域网内,需要网关来转发处理。主机A首先将会查询自己的ARP缓存表中是否存在网关1的MAC地址,不存在则使用广播获取,再发送数据包,由网关1向网关2发送数据包。网关2收到数据包后,再发送给主机C。

0x02 ARP攻击

ARP欺骗原理

ARP欺骗攻击学习笔记

主机A与主机C之间通信会经过网关1和网关2,但当主机收到一个ARP应答包后,他不会去验证自己是否发送过这个ARP请求,而是直接将应答包的MAC地址与IP替换掉原有的ARP缓存信息,导致主机A与主机C间的通信内容可被主机B截取。

  • 主机B向主机A发送一个ARP响应,将网关1的MAC地址替换为自己的MAC地址
  • 主机B向网关1发送一个ARP响应,将主机A的MAC地址替换为自己的MAC地址
  • 主机A与主机C通信时,会先经过网关1,而此时的网关1已被替换为了主机B,再由主机B向网关1发送数据
  • 主机C由网关2返回数据给网关1时,网关1向主机B发送数据,再由主机B发送给主机A

主机A与主机C的通信数据都经过主机B,这就是ARP欺骗

ARP攻击工具

  • Cain
  • Ettercap
  • NetFuke

0x03 防御ARP攻击

静态绑定

网关对每台主机进行IP和MAC地址静态绑定,同时每台主机对网关进行IP和MAC地址静态绑定,这是防止ARP欺骗的最根本办法。

ARP防火墙

时每台主机对网关进行IP和MAC地址静态绑定,这是防止ARP欺骗的最根本办法。

ARP防火墙

使用ARP防火墙比静态绑定要简单,且同样能有效防止ARP攻击。