hiteshus816/ARP-Cache-Poisoning-MITM-Attack-Lab

GitHub: hiteshus816/ARP-Cache-Poisoning-MITM-Attack-Lab

一个基于Scapy的ARP缓存中毒与MITM攻击教学实验,演示如何在局域网中拦截和篡改Telnet与Netcat通信。

Stars: 0 | Forks: 0

# 🔥 ARP 缓存中毒与 MITM 攻击实验 ## 📌 概述 本实验演示了如何在局域网中利用 ARP 缓存中毒来执行中间人(MITM)攻击。 使用 Scapy 发送构造的 ARP 数据包来篡改受害机器的 ARP 缓存,将流量重定向至攻击者机器。本实验探索了多种 ARP 中毒技术,并演示了如何拦截 Telnet 和 Netcat 通信。 ## 🎯 目标 - 理解 ARP 协议行为 - 执行 ARP 缓存中毒 - 使用 ARP 请求毒化主机 - 使用 ARP 响应毒化主机 - 使用无偿 ARP 毒化主机 - 建立 MITM 位置 - 转发拦截的流量 - 使用 Wireshark 分析数据包 - 拦截 Telnet 流量 - 拦截 Netcat 通信 ## 🛠️ 使用的技术 - Linux - Python - Scapy - Wireshark - Telnet - Netcat - TCP/IP 网络 # 🏗️ 实验拓扑 | 设备 | IP 地址 | |----------|----------| | 攻击者 (M) | 10.9.0.105 | | 受害者 A | 10.9.0.5 | | 受害者 B | 10.9.0.6 | # ARP 缓存中毒 ## ARP 请求欺骗 使用 Scapy 创建了伪造的 ARP 请求,诱使受害者 A 相信受害者 B 的 IP 地址属于攻击者。 ### ARP 请求代码 ![ARP 请求代码](https://raw.githubusercontent.com/hiteshus816/ARP-Cache-Poisoning-MITM-Attack-Lab/main/images/arp-request-code.png) ### 执行结果 ![ARP 请求结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/755b6d5c20052946.png) ### 结果 受害者 A 的 ARP 缓存被成功毒化,将受害者 B 的 IP 地址映射到了攻击者的 MAC 地址。 ## ARP 响应欺骗 向受害者 A 发送了一个未经请求的 ARP 响应,其中包含伪造的 IP 到 MAC 的映射。 ### ARP 响应代码 ![ARP 响应代码](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8cfc36f00f052947.png) ### 执行结果 ![ARP 响应结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/70c061ea4f052949.png) ### 结果 伪造的 ARP 响应更新了受害者的 ARP 缓存,并将流量重定向至攻击者。 ## 无偿 ARP 中毒 广播了一个无偿 ARP 数据包,以宣告对受害者 B IP 地址的虚假所有权。 ### Gratuitous ARP 代码 ![Gratuitous ARP 代码](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6781889ce8052951.png) ### 执行结果 ![Gratuitous ARP 结果](https://raw.githubusercontent.com/hiteshus816/ARP-Cache-Poisoning-MITM-Attack-Lab/main/images/gratuitous-arp-result.png) ### 结果 受害者 A 接受了伪造的 ARP 信息,并相应地更新了其缓存。 # 针对 Telnet 的 MITM 攻击 ## 步骤 1 – 发起 ARP 中毒 执行了双向 ARP 中毒,使得: - A 将 B 映射 → 攻击者 MAC - B 将 A 映射 → 攻击者 MAC ### 中毒脚本 ![MITM 中毒代码](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b7a1cc1fb5053023.png) ## 步骤 2 – 验证 ARP 中毒 使用 Wireshark 观察伪造的 ARP 流量,并验证是否成功中毒。 ### Wireshark 抓包 ![Wireshark 抓包](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e0f9edddca053025.png) ## 步骤 3 – 测试连通性 在攻击者作为中间人的情况下,两名受害者之间建立了 Telnet 会话。 ### Telnet 会话 ![Telnet 测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fcbeb2ea6d053027.png) ## 步骤 4 – 观察 ICMP 重定向消息 由于流量经过了攻击者,Wireshark 中观察到了生成并捕获的 ICMP 重定向消息。 ### ICMP 重定向抓包 ![ICMP 重定向抓包](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/35ecfa17d9053029.png) ## 步骤 5 – 启用数据包转发 攻击者启用了 IP 转发,在受害者之间中继数据包,而不中断通信。 ### 攻击者终端 ![攻击者终端](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b8c361f4e5053030.png) ## 步骤 6 – 执行 MITM 脚本 使用基于 Scapy 的 MITM 脚本来拦截和篡改 Telnet 流量。 ### MITM 脚本 ![MITM 脚本](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f2ac56b91f053032.png) # 针对 Netcat 的 MITM 攻击 使用相同的 ARP 中毒技术来拦截 Netcat 通信。 ### Netcat MITM 代码 ![Netcat MITM 代码](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e4ecbd0f9e053035.png) ### Netcat 拦截结果 ![Netcat 结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a12ea2b22b053037.png) ### 结果 通过 Netcat 交换的流量在到达目的地之前,已被攻击者拦截并篡改。 # 📊 演示的关键概念 - ARP 缓存中毒 - ARP 请求欺骗 - ARP 响应欺骗 - Gratuitous ARP - MITM 攻击 - Telnet 拦截 - Netcat 拦截 - 数据包构造 - 数据包篡改 - IP 转发 - Wireshark 分析 - Scapy 自动化 # 🔐 安全影响 ARP 中毒使攻击者能够将自身置于正在通信的主机之间,从而在不安全的网络中实现流量拦截、篡改、凭据窃取和会话劫持。 了解这些攻击有助于防御者实施以下保护措施: - 静态 ARP 条目 - 动态 ARP 检查 (DAI) - 端口安全 - VLAN 隔离 - 加密协议(使用 SSH 代替 Telnet) # 📚 学习成果 通过完成本实验,我获得了以下方面的实践经验: - ARP 协议内部机制 - 使用 Scapy 构造数据包 - 流量拦截技术 - MITM 攻击工作流 - 使用 Wireshark 进行网络流量分析 - 安全网络设计注意事项 ## ⚠️ 免责声明 本项目在受控的教育实验环境中进行,仅用于网络安全学习和研究目的。
标签:ARP欺骗, Scapy, 中间人攻击, 免杀, 流量劫持, 网络协议分析, 网络安全, 逆向工具, 隐私保护