LJones910109/ARP-Spookfing-Detection-Lab

GitHub: LJones910109/ARP-Spookfing-Detection-Lab

该项目模拟 ARP 欺骗中间人攻击环境,提供从 Wireshark 流量分析、入侵指标识别到 Snort 规则部署的完整检测演练。

Stars: 0 | Forks: 0

# ARP 欺骗与 MITM 检测实验室 **工具:** Kali Linux · arpspoof · Wireshark **技术:** ARP 缓存中毒 · MITM 攻击 · 二层流量分析 **环境:** VMware Fusion 家庭实验室 **难度:** 中级 ## 目标 使用 ARP 缓存中毒模拟中间人攻击,在 Wireshark 中捕获恶意流量,并识别出 SOC 分析师在真实网络环境中检测此攻击时会使用的入侵指标。 ## 实验室环境 |角色 |主机 |IP 地址 |MAC 地址 | |--------|---------------------|--------------|-----------------| |攻击者 |Kali Linux |172.16.148.132|00:0c:29:e7:7f:95| |受害者 |Metasploitable2 |172.16.148.133|00:50:56:f3:92:0d| |网关 |VMware 虚拟路由器 |172.16.148.2 |— | **网络:** 172.16.148.0/24 · 接口:eth0 ## 背景 ### 什么是 ARP 欺骗? ARP(地址解析协议)运行在 OSI 模型的第 2 层,负责将本地网络上的 IP 地址映射到 MAC 地址。ARP 没有内置身份验证机制——任何主机都可以发送未经请求的 ARP 回复,声称任何 IP 地址属于其 MAC 地址。 攻击者利用这一点,向受害者和网关同时发送**无偿 ARP 回复**,告诉它们攻击者的 MAC 地址对应的是对方的 IP。这会毒化双方的 ARP 缓存,使所有流量都经过攻击者路由——这是一个典型的**中间人**位置。 ### 为什么这对 SOC 分析师很重要 ARP 欺骗是一种基础的 MITM 技术,可用于: - 拦截明文凭证(FTP、Telnet、HTTP) - 实施 SSL 剥离攻击 - 为 DNS 欺骗等进一步攻击做准备 - 进行内部网络侦察 在网络层面的检测依赖于识别本实验演示的流量模式。 ## 攻击方法 ### 第 1 步 — 启用 IP 转发 要成为真正的 MITM,攻击者必须转发受害者和网关之间的流量,而不是丢弃它们(这会导致拒绝服务并引起受害者的警觉)。 ``` echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward ``` 这会指示 Kali 内核转发发往其他主机的数据包,而不是将其丢弃。 ### 第 2 步 — 启动 Wireshark 捕获 在 **eth0** 接口上启动 Wireshark,并应用 `arp` 显示过滤器以隔离 ARP 流量。 ``` Filter: arp ``` ### 第 3 步 — 发起 ARP 毒化(双向) 需要同时运行两个 `arpspoof` 实例来毒化双向流量: **终端 1 — 毒化受害者(告诉 Metasploitable2 Kali 就是网关):** ``` sudo arpspoof -i eth0 -t 172.16.148.133 172.16.148.2 ``` **终端 2 — 毒化网关(告诉路由器 Kali 就是受害者):** ``` sudo arpspoof -i eth0 -t 172.16.148.2 172.16.148.133 ``` 这两个命令以大约 1 秒的间隔向目标泛洪发送未经请求的 ARP 回复,不断覆盖合法的 ARP 缓存条目。 ## Wireshark 分析 ### IOC #1 — 未经请求的 ARP 回复 (Opcode 2) 正常的 ARP 遵循请求/回复模式:主机广播请求,目标进行回复。在 ARP 欺骗攻击中,攻击者发送**未经请求的回复 (Opcode 2)** 且没有先前的请求——这是一个重大的危险信号。 **数据包解析 (Frame 194):** ``` Address Resolution Protocol (reply) Hardware type: Ethernet (1) Protocol type: IPv4 (0x0800) Opcode: reply (2) ← Unsolicited reply, no request preceded this Sender MAC address: 00:0c:29:e7:7f:95 ← Kali's MAC (the attacker) Sender IP address: 172.16.148.2 ← Gateway's IP (Kali is LYING) Target MAC address: 00:00:00:00:00:00 Target IP address: 172.16.148.133 ← Metasploitable2 (the victim) ``` 攻击者的 MAC (`00:0c:29:e7:7f:95`) 被宣告为网关 IP (`172.16.148.2`) 的所有者。受害者将更新其 ARP 缓存,并将所有发往网关的流量发送给 Kali。 ### IOC #2 — 高频 ARP 流量 正常的 ARP 频率很低——主机仅在需要解析新 IP 时发送请求。在此次攻击中,10 分钟内捕获了 **335+ 个 ARP 数据包**,且全部来自同一个 MAC 地址。来自单一主机的这种 ARP 回复量是异常的,如果 SIEM 中配置了 ARP 速率阈值规则,将会触发告警。 **观察到的流量模式:** - 所有数据包均源自 `VMware_e7:7f:95` (Kali) - 交替的目的地:广播地址和 `VMware_f3:92:0d` (网关) - 间隔:每个方向大约每 2 秒一次 ### IOC #3 — 重复 IP 地址检测 Wireshark 内置的 ARP 分析自动标记了该攻击: ``` [Duplicate IP address detected for 172.16.148.2 (00:0c:29:e7:7f:95)] [Frame showing earlier use of IP address: 193] [Seconds since earlier frame seen: 1] ``` 当 Wireshark 发现同一个 IP 地址被两个不同的 MAC 地址声明时,就会触发此警报。网关 IP `172.16.148.2` 最初合法地关联到路由器的 MAC,随后突然被 Kali 的 MAC 声明——前后仅相差 1 秒。这是 ARP 中毒最清晰的单项指标。 ## 入侵指标 汇总 |IOC |描述 |正常行为 | |-------------------------------------|--------------------------------------------|-----------------------------------------| |未经请求的 ARP 回复 (Opcode 2) |没有前置请求发送的 ARP 回复 |回复仅跟随请求发生 | |检测到重复 IP |同一个 IP 映射到两个不同的 MAC |在局域网中,一个 IP = 一个 MAC | |来自单一主机的高 ARP 流量 |几分钟内来自同一个 MAC 的 300+ 个 ARP 数据包|ARP 流量稀疏且断断续续 | |网关 IP 被非网关 MAC 声称|攻击者的 MAC 宣告了路由器的 IP |只有路由器才会宣告网关 IP| ## 检测规则 以下 Snort 规则可检测未经请求的 ARP 回复——此攻击的核心特征: ``` alert arp any any -> any any ( msg:"ARP Spoofing - Unsolicited ARP Reply Detected"; arp.opcode:2; sid:9000001; rev:1; ) ``` **注意:** 对于生产环境,应将此规则与速率阈值(例如,同一个源在 5 秒内产生超过 10 个 ARP 回复)结合使用,并与已知的 MAC 到 IP 映射表进行交叉比对,以减少误报。 ## 防御性对策 |控制 |描述 | |------------------------------|--------------------------------------------------------------------------------------------------------| |动态 ARP 检测 |托管交换机可以根据 DHCP 侦听绑定表验证 ARP 数据包,并丢弃欺骗性回复| |静态 ARP 条目 |手动为关键主机(网关、DNS)配置无法被覆盖的永久 ARP 条目 | |网络分段 |VLAN 可以限制爆炸半径——ARP 欺骗被限制在本地广播域内 | |ARP 监控 / SIEM 告警|XArp、Snort 或 Zeek 等工具可以实时对 ARP 异常发出警报 | |加密协议 |即使成功处于 MITM 位置,TLS/SSH 也能防止凭证拦截 | ## 关键要点 - ARP 欺骗是一种**二层攻击**,不需要凭证——只需网络访问权限 - 该攻击对受害者是**隐秘的**——被入侵的主机上不会生成任何错误或警报 - Wireshark 的重复 IP 检测在实时捕获期间提供了直观的即时指标 - SOC 分析师应关注来自**单一 MAC 的高频 ARP 回复**和**IP 到 MAC 的冲突**作为主要检测信号 - 必须启用 IP 转发才能实现真正的 MITM;如果不启用,该攻击会导致拒绝服务 ## 使用的工具 |工具 |用途 | |-----------------------|---------------------------------------------------| |arpspoof (dsniff 套件)|生成 ARP 中毒流量 | |Wireshark 4.6.4 |捕获并分析 ARP 数据包 | |ip route / ip addr |网络侦察和接口识别| *本实验在隔离的 VMware Fusion 家庭实验室环境中进行。所有目标均为故意设置了漏洞的虚拟机。未影响任何生产系统。*
标签:ARP欺骗, MITM攻击, 网络安全, 隐私保护