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 攻击环境。

## 步骤 2:识别目标 IP 和网络接口
识别受害者 IP 地址和活动的网络接口,以便进行数据包拦截。

## 步骤 3:修改 Scapy 攻击脚本
配置攻击脚本以拦截 DNS 请求并返回伪造的 DNS 响应。
欺骗地址:
```
1.2.3.4
```

## 步骤 4:验证正常的 DNS 解析
在发起攻击之前,DNS 解析返回的是合法的 IP 地址。

## 步骤 5:刷新 DNS 缓存
清除本地 DNS 缓存,以确保进行全新的 DNS 查询。

## 步骤 6:执行 DNS 欺骗攻击
在攻击者机器上执行 Scapy 脚本。

## 步骤 7:验证被欺骗的 DNS 解析
DNS 查询现在解析为攻击者控制的 IP 地址。
```
www.example.com → 1.2.3.4
```

# 直接针对 DNS 服务器的攻击
## 步骤 1:对 DNS 服务器发起攻击
在执行期间直接指定 DNS 服务器的 IP。

## 步骤 2:验证中毒响应
DNS 查询继续解析为伪造的地址。
```
1.2.3.4
```

# 利用恶意 NS 记录进行 DNS 缓存中毒
## 步骤 1:修改 DNS 授权部分
增强了攻击脚本以注入恶意 NS 记录。

## 步骤 2:执行缓存中毒攻击
欺骗响应被发送到 DNS 服务器。

## 步骤 3:验证多个中毒域名
多个子域名现在解析为攻击者控制的地址。
示例:
```
www.example.com
abc.example.com
xyz.example.com
```



# 毒化附加域名
## 步骤 1:查看现有缓存条目
验证先前中毒的记录。

## 步骤 2:修改攻击逻辑
更新脚本以注入附加域名的授权信息。

## 步骤 3:执行攻击
发起修改后的攻击。

## 步骤 4:验证 DNS 解析
伪造的 DNS 响应已成功传递。

# 授权记录与附加记录的缓存对比
## 步骤 1:创建增强的 DNS 响应
欺骗响应包括:
- 授权部分
- 附加部分
- 伪造的 A 记录
- 伪造的 NS 记录

## 步骤 2:执行增强攻击
生成并发送响应数据包。




## 步骤 3:分析 DNS 缓存行为
结果显示:
- 授权记录已成功缓存。
- 附加记录未被存储。
- DNS 服务器会根据信任规则有选择地缓存信息。

# 关键发现
✅ 成功欺骗了 DNS 响应
✅ 重定向了受害者的 DNS 请求
✅ 毒化了本地 DNS 缓存
✅ 注入了恶意 NS 记录
✅ 控制了多个域名的 DNS 解析
✅ 演示了授权记录中毒
✅ 分析了 DNS 缓存处理行为
✅ 评估了 DNS 信任关系
# 安全教训
DNS 服务器会信任那些看起来合法且在有效回复之前到达的响应。缓存中毒攻击可以将用户重定向到恶意系统,促成网络钓鱼活动,并破坏网络完整性。
缓解措施包括:
- DNSSEC
- 源端口随机化
- 事务 ID 随机化
- 响应验证
- 缓存监控
- 网络隔离
# 免责声明
本项目是在独立的教育实验室环境中进行的,仅供网络安全学习和研究之用。
未经明确授权,请勿在系统或网络上应用这些技术。
标签:DNS投毒, Docker, Python, Scapy, TGT, 安全防御评估, 并发处理, 攻防演练, 无后门, 网络安全, 请求拦截, 逆向工具, 隐私保护