ARP协议以及ARP欺骗攻击的原理

ARP协议以及ARP欺骗攻击的原理

ARP协议

ARP(Address Resolution Protocol)协议,即地址解析协议,是一个通过网络层地址来寻找数据链路层地址的网络传输协议。简单说,ARP协议就是一个将IP地址解析成MAC地址的协议。

每台安装有TCP/IP协议的电脑或路由器里都有一个ARP缓存表,该表内容中IP地址与MAC地址是一一对应的。

当需要与已知IP的主机进行通信时,本机会先查看自身ARP缓存表中是否存在目标IP地址的MAC地址,如果存在则在数据包中直接使用目标IP地址对应的MAC地址;否则,将进行广播ARP请求、接收ARP响应等动作来获取目标IP地址对应的MAC地址。

ARP缓存表

可使用arp -a 查看

接口: 192.16x.xx.xx --- 0x7
  Internet 地址         物理地址              类型
  192.168.xx.1          20-f4-1b-b4-2d-f2     动态
  192.168.xx.255        ff-ff-ff-ff-ff-ff     静态
  ....
  255.255.255.255       ff-ff-ff-ff-ff-ff     静态

其作用与特点:

  • 表内存储IP地址与MAC地址的映射,减少重复ARP请求
  • 发送方接收ARP响应后,会将对应映射关系存储在本地ARP缓存中
  • 采用了老化机制,在定期更新缓存,会将一段时间内未再使用的映射删除

ARP请求

发送方不知目标IP设备的MAC地址时,会发送一个ARP请求广播包,询问其局域网内“谁拥有这个IP地址”。该局域网中的所有设备都会收到该请求。

ARP数据包以太网帧头的目标MAC地址为FF:FF:FF:FF:FF:FF,全为一,表示广播地址。

ARP响应

当局域网中某个设备发现自身的IP地址与ARP请求中的目标IP地址匹配时,会向发送方发一个ARP响应包,告知自身的MAC地址。

报文结构

1769763785522

以太网帧

字段 长度 说明
目标MAC 6字节 广播请求时FF:FF:FF:FF:FF:FF响应时为具体主机MAC。
源MAC 6字节 发送方的MAC地址。
帧类型 2字节 标识上层协议。ARP协议的值为 0x0806

ARP报文

字段 长度 描述 典型值
硬件类型 (HTYPE) 2字节 网络接口类型 1 (表示以太网)
协议类型 (PTYPE) 2字节 上层协议类型 0x0800 (表示IPv4)
硬件地址长度 1字节 MAC地址长度 6
协议地址长度 1字节 IP地址长度 4
操作码 (Opcode) 2字节 报文类型 1 (请求), 2 (响应)
源MAC (SHA) 6字节 发送方MAC 攻击中常被伪造
源IP (SPA) 4字节 发送方IP 攻击中常被伪造
目标MAC (THA) 6字节 接收方MAC 请求包中通常全0
目标IP (TPA) 4字节 接收方IP 谁拥有这个IP?

ARP欺骗

核心漏洞:无验证

ARP协议在设计之初就缺乏安全验证,导致主机不仅会接受它请求过的ARP响应,也会接受它没有请求过的ARP响应。

攻击原理

攻击者通过伪造ARP响应包,欺骗受害者和网关:

  • 欺骗网关:告诉网关,“我是受害者IP,我的MAC是攻击者的MAC”。
  • 欺骗受害者:告诉受害者,“我是网关IP,我的MAC是攻击者的MAC”

进而可以实现:

  • 断网攻击:拿到流量后丢弃
  • 中间人攻击截取数据包进行监听或篡改,后进行转发

ARP防御

对于防御ARP欺骗,我的思路是:

  • 静态绑定双方IP和MAC地址
  • 使用Wiresharp抓包,查看是否有大量ARP响应包
  • 使用安全厂商的防火墙

对于防御,我知之甚少,但是看到一篇防御文章,颇感有趣也非常受用,在此附上链接:https://www.cnblogs.com/csguo/p/7527582.html#/

posted @ 2026-01-30 18:14  phen  阅读(0)  评论(0)    收藏  举报