x3bdulaziz/DNS-monitor

GitHub: x3bdulaziz/DNS-monitor

基于 Scapy 的被动 DNS 监控工具,结合威胁情报与熵分析对 DNS 查询进行实时风险评分,帮助发现潜在的恶意域名活动。

Stars: 1 | Forks: 0

# DNS 监控 ![DNS Monitor 截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1df154c5c3140105.png) ## 概述 DNS Monitor 是一款使用 Scapy 用 Python 开发的被动 DNS 监控工具。它实时分析 DNS 请求,并使用多种检测方法对查询的域名进行风险评分。 该项目结合了威胁情报源、熵分析和基本的域名信誉技术,旨在无需主动与网络流量交互的情况下识别潜在的恶意 DNS 活动。 ## 功能 * 实时 DNS 流量监控 * 使用 Scapy 进行被动数据包检查 * 威胁情报 (OSINT) 集成 * 针对可疑域名的基于熵的检测 * 风险评分系统 * 受信任域名白名单 * 支持自定义黑名单 * 告警日志记录到每日日志文件 * 轻量级且易于部署 ## 检测方法 ### 威胁情报 该工具会自动从公开的威胁情报源下载并更新指标: * URLHaus * ThreatFox * OpenPhish * Malware Bazaar 在这些信息源中发现的域名将获得最高的风险评分。 ### 熵分析 使用 Shannon 熵算法来检测看似随机生成的域名,这是恶意软件生成的域名 (DGA) 的常见特征。 ### 可疑 TLD 检测 对使用在恶意活动中频繁观察到的 TLD 的域名分配额外的风险点: * .xyz * .top * .shop * .click * .online ## 风险评分 | 风险评分 | 分类 | | ---------- | -------------- | | 0 - 19 | 安全 | | 20 - 59 | 可疑 | | 60 - 100 | 严重 | ## 项目结构 ``` DNS-Monitor/ ├── dns-monitor.py ├── trust.txt ├── blacklist.txt └── dns_detection_YYYY-MM-DD.log ``` ## 安装说明 克隆代码库: ``` git clone https://github.com/x3bdulaziz/DNS-Monitor.git cd DNS-Monitor ``` 安装依赖项: ``` pip install -r requirements.txt ``` 或手动安装: ``` pip install scapy requests colorama ``` ## 用法 Linux: ``` sudo python3 dns-monitor.py -i eth0 ``` 无线接口: ``` sudo python3 dns-monitor.py -i wlan0 ``` ## 示例输出 ``` 15-06-2026 10:14:22 [SAFE 0] 192.168.1.10 -> google.com 15-06-2026 10:14:25 [SUSPICIOUS 40] 192.168.1.10 -> aj38d9f83k2.com [reason: High entropy domain] 15-06-2026 10:14:30 [CRITICAL ALERT] 192.168.1.10 -> malicious-domain.com [reason: Found in threat intelligence feeds] ``` ## 配置 ### trust.txt 此处列出的域名在分析期间将被忽略。 示例: ``` mozilla.org ``` ### blacklist.txt 可以手动添加自定义的恶意域名。 示例: ``` bad-domain.com evil-domain.net ``` ## 限制 * 监控通过 UDP 端口 53 的传统 DNS 流量。 * 不检查 DNS over HTTPS (DoH) 和 DNS over TLS (DoT)。 * 数据包捕获可能需要管理员权限。 * Windows 用户可能需要安装 Npcap。 ## 免责声明 本项目是出于教育目的、安全研究和防御性监控而创建的。请仅在有权限的或您自己拥有的网络上使用。 ## 作者 **x3bdulaziz** GitHub: https://github.com/x3bdulaziz
标签:Python, Scapy, 威胁情报, 字符串匹配, 开发者工具, 无后门, 被动DNS监控, 逆向工具