x3bdulaziz/DNS-monitor
GitHub: x3bdulaziz/DNS-monitor
基于 Scapy 的被动 DNS 监控工具,结合威胁情报与熵分析对 DNS 查询进行实时风险评分,帮助发现潜在的恶意域名活动。
Stars: 1 | Forks: 0
# DNS 监控

## 概述
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监控, 逆向工具