ARP:Address Resolution Protocol,地址解析协议
目的:建立IP地址与MAC地址之间的映射关系,使这两种寻址方案之间的联合称为可能。
大白话就是:我知道你名字但我不知道你坐哪里,所以我会在该网段中喊你
传统ARP
- 根据已知IP地址解析到未知MAC地址
ARP请求:

因为ARP请求报文基于广播地址传递,所以你会发现它具有网络层的以太网包头,而且所以不能传递到其他广播域
协议类型:0806;IPv4为0800;IPv6为8600.
操作码:1为请求,2为响应。
目的地址和目标MAC地址:因为目前只知道目标的IP,所以目的地址填广播的,MAC无意义的。
ARP应答:

操作码:2响应
目的地址和目标MAC地址: 填为应答者,那么发送方就知道目标的MAC地址了。
且当目标PC收到发送的ARP请求时会将发送方的信息记录到ARP缓存表中。
ARP缓存表:
- 用于存储IP地址及经过解析的MAC地址的对应关系
- 动态类型的ARP条目就是通过ARP学习而来,具有一定的超时时间。
Windows相关命令
- arp -a:查看ARP缓存表
- arp -d:清空ARP缓存表
代理ARP
- 当一个节点代表另一个节点响应ARP请求这个行为称为代理ARP。
- 代理ARP的最初设计考虑是帮助解决子网掩码配置错误的主机间通信问题。

- 此时B掩码配置错误导致B辨析和D在同一网段,但过不了”网关“。
- 但此时若该路由器在某一接口开启”代理ARP“,它会用该接口的MAC地址去回复B的ARP请求。
- 随后B的封装:目标IP为D的,目标MAC为路由器该接口的。
若此时:当B、D都配置错误时,路由器B这边口开,D那边关;则当B ping D时,ping不通。
原因为:包从D到B会不来了,因为无法ARP。
但代理ARP不会什么时候都帮,及当该路由器的路由表中无到达另一个网段的信息时不会帮。
ARP探测与免费ARP
ARP探测:ARP Probe
- 用来检测IP地址冲突,也称为DAD。
ARP探测是设备在网络中主动发送 ARP请求 (ARP Request)的过程,目的是检测某个IP地址是否已被其他设备占用,或验证目标设备的存在。它通常用于初始化网络连接、维护ARP缓存,或在动态IP分配(如DHCP)时检测IP地址冲突。
免费ARP:Gratuitous ARP
- 主要作用:检测IP地址冲突、更新ARP缓存表、宣告节点存在、冗余切换。
免费ARP是设备主动发送 ARP请求 (而非应答),但请求的目标IP地址是自身IP地址 。
免费ARP请求:
- 一般也称为ARP公告,用来正式”声明“使用该IP地址。
免费ARP响应
注意:免费ARP的报文特征[Sender IP=Target IP],即发送者IP地址=目标IP地址。
ARP攻击
ARP攻击是一种利用ARP协议漏洞进行的网络攻击行为。
在这种攻击中,攻击者会发送虚假的ARP消息,将其自身的MAC地址与其他设备的IP地址关联起来,误导网络中的设备将数据发送给攻击者,而不是正确的目标。
ARP攻击可能会导致以下后果:
- 网络通信中断或异常,受攻击的设备可能无法正常与目标通信。
- 信息泄露,攻击者可能截取本应发送给其他设备的数据。
一些常见的ARP攻击手段包括:
- ARP欺骗:发送虚假的ARP响应来篡改ARP缓存。
- ARP泛洪:发送大量无效的ARP请求或响应,导致网络拥塞和混乱。
为了防范ARP攻击,可以采取以下措施:
- 使用静态ARP映射,手动配置关键设备的IP与MAC地址映射的关系。 如windows中用arp -s添加静态项。
- 安装网络安全防护软件,监测和阻止ARP攻击行为。
- 定期检查网络设备的ARP缓存,发现异常及时处理。

以科莱做ARP攻击演示:
1.我们先抓到网关向目标主机回的ARP包,即ARP_Response:

2.将网关的MAC地址,即发送者MAC地址做修改,从而使目标主机找不到网关,从而实现欺骗。

3.将做好的欺骗的包发送出去

完成
Comments NOTHING