hiteshus816/DNS-Cache-Poisoning-Local-DNS-Spoofing-Attack-Lab

GitHub: hiteshus816/DNS-Cache-Poisoning-Local-DNS-Spoofing-Attack-Lab

一个基于 Scapy 和 Python 的 DNS 欺骗与缓存中毒教学实验项目,用于在隔离环境中复现和分析 DNS 攻击行为。

Stars: 0 | Forks: 0

# 🌐 DNS 缓存中毒与本地 DNS 欺骗攻击实验 ## 📌 概述 本实验演示了如何针对本地 DNS 基础设施执行 DNS 欺骗和 DNS 缓存中毒攻击。 使用 Scapy 和 Python,将伪造的 DNS 响应注入网络以操纵域名解析、毒化 DNS 缓存、篡改权威域名服务器记录,并研究 DNS 服务器如何处理恶意的授权(authority)和附加(additional)部分。 本实验探索了多种 DNS 攻击场景,从简单的响应欺骗到高级的缓存中毒技术。 ## 🎯 目标 - 理解 DNS 请求和响应结构 - 使用 Scapy 执行 DNS 响应欺骗 - 毒化 DNS 服务器缓存 - 篡改 DNS 授权记录 - 注入恶意 NS 记录 - 分析 DNS 缓存行为 - 观察授权和附加记录的处理方式 - 验证 DNS 中毒攻击是否成功 ## 🛠️ 使用的技术 - Python - Scapy - Linux - Docker - DNS - BIND DNS Server - TCP/IP 网络 ## 🧠 涵盖的概念 - DNS 解析 - DNS 欺骗 - DNS 缓存中毒 - DNS 授权记录 - DNS 附加记录 - 数据包伪造 - DNS 响应注入 - 网络安全测试 # DNS 响应欺骗 ## 步骤 1:构建并启动实验环境 使用 Docker 容器初始化 DNS 攻击环境。 ![Step 1](https://raw.githubusercontent.com/hiteshus816/DNS-Cache-Poisoning-Local-DNS-Spoofing-Attack-Lab/main/images/task1-lab-setup.png) ## 步骤 2:识别目标 IP 和网络接口 识别受害者 IP 地址和活动的网络接口,以便进行数据包拦截。 ![Step 2](https://raw.githubusercontent.com/hiteshus816/DNS-Cache-Poisoning-Local-DNS-Spoofing-Attack-Lab/main/images/task1-network-enumeration.png) ## 步骤 3:修改 Scapy 攻击脚本 配置攻击脚本以拦截 DNS 请求并返回伪造的 DNS 响应。 欺骗地址: ``` 1.2.3.4 ``` ![Step 3](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/43e99325a0053014.png) ## 步骤 4:验证正常的 DNS 解析 在发起攻击之前,DNS 解析返回的是合法的 IP 地址。 ![Step 4](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6e0ba87e56053016.png) ## 步骤 5:刷新 DNS 缓存 清除本地 DNS 缓存,以确保进行全新的 DNS 查询。 ![Step 5](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/206e07e5f1053018.png) ## 步骤 6:执行 DNS 欺骗攻击 在攻击者机器上执行 Scapy 脚本。 ![Step 6](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/08033a12f6053020.png) ## 步骤 7:验证被欺骗的 DNS 解析 DNS 查询现在解析为攻击者控制的 IP 地址。 ``` www.example.com → 1.2.3.4 ``` ![Step 7](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/86f064436c053022.png) # 直接针对 DNS 服务器的攻击 ## 步骤 1:对 DNS 服务器发起攻击 在执行期间直接指定 DNS 服务器的 IP。 ![Task 2 Attack](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e6e2611ed7053024.png) ## 步骤 2:验证中毒响应 DNS 查询继续解析为伪造的地址。 ``` 1.2.3.4 ``` ![Task 2 Result](https://raw.githubusercontent.com/hiteshus816/DNS-Cache-Poisoning-Local-DNS-Spoofing-Attack-Lab/main/images/task2-verification.png) # 利用恶意 NS 记录进行 DNS 缓存中毒 ## 步骤 1:修改 DNS 授权部分 增强了攻击脚本以注入恶意 NS 记录。 ![Task 3 Script](https://raw.githubusercontent.com/hiteshus816/DNS-Cache-Poisoning-Local-DNS-Spoofing-Attack-Lab/main/images/task3-script-update.png) ## 步骤 2:执行缓存中毒攻击 欺骗响应被发送到 DNS 服务器。 ![Task 3 Execution](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/729be06c84053126.png) ## 步骤 3:验证多个中毒域名 多个子域名现在解析为攻击者控制的地址。 示例: ``` www.example.com abc.example.com xyz.example.com ``` ![Task 3 Result 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8a7e5e467b053128.png) ![Task 3 Result 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fd6ff0932c053130.png) ![Task 3 Result 3](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a946913170053131.png) # 毒化附加域名 ## 步骤 1:查看现有缓存条目 验证先前中毒的记录。 ![Task 4 Cache Review](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a3d15465f3053133.png) ## 步骤 2:修改攻击逻辑 更新脚本以注入附加域名的授权信息。 ![Task 4 Script](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/38dc765a63053135.png) ## 步骤 3:执行攻击 发起修改后的攻击。 ![Task 4 Execution](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fd52869986053137.png) ## 步骤 4:验证 DNS 解析 伪造的 DNS 响应已成功传递。 ![Task 4 Result](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7464eb9d85053139.png) # 授权记录与附加记录的缓存对比 ## 步骤 1:创建增强的 DNS 响应 欺骗响应包括: - 授权部分 - 附加部分 - 伪造的 A 记录 - 伪造的 NS 记录 ![Task 5 Script](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/d78441244b053141.png) ## 步骤 2:执行增强攻击 生成并发送响应数据包。 ![Task 5 Execution 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ad2cfca26c053143.png) ![Task 5 Execution 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/57b94f529c053144.png) ![Task 5 Execution 3](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/af807f6ce8053146.png) ![Task 5 Execution 4](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6b1249bf9d053148.png) ## 步骤 3:分析 DNS 缓存行为 结果显示: - 授权记录已成功缓存。 - 附加记录未被存储。 - DNS 服务器会根据信任规则有选择地缓存信息。 ![Task 5 Final Result](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5331584496053150.png) # 关键发现 ✅ 成功欺骗了 DNS 响应 ✅ 重定向了受害者的 DNS 请求 ✅ 毒化了本地 DNS 缓存 ✅ 注入了恶意 NS 记录 ✅ 控制了多个域名的 DNS 解析 ✅ 演示了授权记录中毒 ✅ 分析了 DNS 缓存处理行为 ✅ 评估了 DNS 信任关系 # 安全教训 DNS 服务器会信任那些看起来合法且在有效回复之前到达的响应。缓存中毒攻击可以将用户重定向到恶意系统,促成网络钓鱼活动,并破坏网络完整性。 缓解措施包括: - DNSSEC - 源端口随机化 - 事务 ID 随机化 - 响应验证 - 缓存监控 - 网络隔离 # 免责声明 本项目是在独立的教育实验室环境中进行的,仅供网络安全学习和研究之用。 未经明确授权,请勿在系统或网络上应用这些技术。
标签:DNS投毒, Docker, Python, Scapy, TGT, 安全防御评估, 并发处理, 攻防演练, 无后门, 网络安全, 请求拦截, 逆向工具, 隐私保护