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:清空缓存表
局域网主机通信
-
同网段
主机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欺骗原理
主机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攻击。