MMVonnSeek/Subdomain-Enumerator
GitHub: MMVonnSeek/Subdomain-Enumerator
一款面向进攻性安全与威胁情报的混合子域枚举框架,结合主动与被动技术提升侦察效率。
Stars: 4 | Forks: 0
# SubEnum — 混合子域枚举框架
### *高级侦察引擎,用于进攻性安全与网络威胁分析*




## 概述
SubEnum 是一款为进攻性安全、漏洞赏金、威胁情报和攻击工程环境开发的混合子域枚举工具。
**该框架结合了:**
- 主动枚举
- 被动枚举
- 传统 DNS
- DNS-over-HTTPS (DoH)
- 可扩展词表
- 专业侦察 API
采用干净、模块化且适用于专业流水线架构。
## 主要特性
### 1. 混合枚举(主动 + 被动)
| 来源 | 类型 | 需要 API 密钥 | 状态 |
|-------|------|----------------|--------|
| 暴力词表 | 主动 | 否 | ✔ |
| DNS 解析器 | 主动 | 否 | ✔ |
| DNS-over-HTTPS (Cloudflare) | 主动 | 否 | ✔ |
| crt.sh | 被动 | 否 | ✔ |
| SecurityTrails | 被动 | 是 | ✔ |
| Shodan | 被动 | 是 | ✔ |
### 2. 高性能并行执行
- AsyncIO
- ThreadPool 执行器
- 批量解析(每秒数千条)
- 自动检测通配符 DNS
### 3. 自动生成 HTML 仪表板
执行后生成,包含:
- 子域映射
- 来源:主动 / 被动 / 通配符
- 统计信息
- DNS 树深度
### 4. 结构化日志 + 遥测
JSON-Lines 格式:
{"time": "2025-11-20 17:38:37", "level": "INFO", "name": "subenum.core", "msg": "Starting hybrid enumeration for example.com"}
兼容:
- Splunk
- ELK Stack
- Datadog
- Loki / Grafana
### 5. 模块化词表
default.txt → 快速
generate_mega_wordlist.py → 生成 mega_wordlist.txt(数百万条目)
### 安装
**1. Fork 仓库:**
首先,在 GitHub 上创建您自己的副本:
- 点击右上角 Fork 按钮。
- 这将在您的账户中创建该仓库的副本。
**2. 克隆您的 Fork 仓库:**
```
git clone https://github.com/MMVonnSeek/Subdomain-Enumerator.git
cd SubEnum
```
**3. 创建虚拟环境并安装依赖**
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
**4. (可选)作为包安装**
```
pip install -e .
```
### 使用方法
**1. 基础模式**
```
python -m subenum.cli --domain exemplo.com --wordlist wordlists/default.txt
```
**2. 深度模式(巨型词表)**
生成巨型词表:
```
python wordlists/generate_mega_wordlist.py
```
执行深度枚举:
```
python -m subenum.cli \
--domain target.com \
--wordlist wordlists/mega_wordlist.txt \
--dashboard dashboard.html
```
**3. 执行带仪表板的扫描(标准扫描)**
```
python -m subenum.cli --domain target.com --wordlist wordlists/default.txt --dashboard dashboard.html
```
**4. 被动模式**
**crt.sh**
```
python -m subenum.cli --domain target.com --passive crtsh
```
**SecurityTrails**
```
export SECURITYTRAILS_KEY="SUA_API_KEY"
python -m subenum.cli --domain target.com --passive securitytrails
```
**Shodan**
```
export SHODAN_KEY="SUA_API_KEY"
python -m subenum.cli --domain target.com --passive shodan
```
### 通配符 DNS 检测
**警告示例:**
Wildcard DNS detected; results will be marked but still returned.
标记结果:
{"subdomain": "test.example.com", "wildcard": true}
### 自动化测试
```
pytest -v
```
#### 基准测试
## python -m subenum.cli \
--domain target.com \
--wordlist wordlists/ultimate_50k.txt \
--benchmark \
--threads 200
**典型输出:**
[Benchmark] 50.000 resolutions in 8.2s (6.097 qps)
## 结果示例
对域名进行枚举后,SubEnum 生成一个结构化的 JSON 文件,包含识别出的子域、关联的 IP 地址、发现来源及其他相关信息:
## 许可证
本项目在 MIT 许可证下分发,允许使用、修改和自由分发,包括商业用途,前提是保留适当署名。
请参阅 LICENSE 文件获取更多信息。
[](https://github.com/MMVonnSeek/Subdomain-Enumerator/stargazers)
[](https://github.com/MMVonnSeek/Subdomain-Enumerator/network/members)
[](https://github.com/MMVonnSeek)
[返回顶部](#-Subdomain-Enumerator)
## 主要特性
### 1. 混合枚举(主动 + 被动)
| 来源 | 类型 | 需要 API 密钥 | 状态 |
|-------|------|----------------|--------|
| 暴力词表 | 主动 | 否 | ✔ |
| DNS 解析器 | 主动 | 否 | ✔ |
| DNS-over-HTTPS (Cloudflare) | 主动 | 否 | ✔ |
| crt.sh | 被动 | 否 | ✔ |
| SecurityTrails | 被动 | 是 | ✔ |
| Shodan | 被动 | 是 | ✔ |
### 2. 高性能并行执行
- AsyncIO
- ThreadPool 执行器
- 批量解析(每秒数千条)
- 自动检测通配符 DNS
### 3. 自动生成 HTML 仪表板
执行后生成,包含:
- 子域映射
- 来源:主动 / 被动 / 通配符
- 统计信息
- DNS 树深度
### 4. 结构化日志 + 遥测
JSON-Lines 格式:
{"time": "2025-11-20 17:38:37", "level": "INFO", "name": "subenum.core", "msg": "Starting hybrid enumeration for example.com"}
兼容:
- Splunk
- ELK Stack
- Datadog
- Loki / Grafana
### 5. 模块化词表
default.txt → 快速
generate_mega_wordlist.py → 生成 mega_wordlist.txt(数百万条目)
### 安装
**1. Fork 仓库:**
首先,在 GitHub 上创建您自己的副本:
- 点击右上角 Fork 按钮。
- 这将在您的账户中创建该仓库的副本。
**2. 克隆您的 Fork 仓库:**
```
git clone https://github.com/MMVonnSeek/Subdomain-Enumerator.git
cd SubEnum
```
**3. 创建虚拟环境并安装依赖**
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
**4. (可选)作为包安装**
```
pip install -e .
```
### 使用方法
**1. 基础模式**
```
python -m subenum.cli --domain exemplo.com --wordlist wordlists/default.txt
```
**2. 深度模式(巨型词表)**
生成巨型词表:
```
python wordlists/generate_mega_wordlist.py
```
执行深度枚举:
```
python -m subenum.cli \
--domain target.com \
--wordlist wordlists/mega_wordlist.txt \
--dashboard dashboard.html
```
**3. 执行带仪表板的扫描(标准扫描)**
```
python -m subenum.cli --domain target.com --wordlist wordlists/default.txt --dashboard dashboard.html
```
**4. 被动模式**
**crt.sh**
```
python -m subenum.cli --domain target.com --passive crtsh
```
**SecurityTrails**
```
export SECURITYTRAILS_KEY="SUA_API_KEY"
python -m subenum.cli --domain target.com --passive securitytrails
```
**Shodan**
```
export SHODAN_KEY="SUA_API_KEY"
python -m subenum.cli --domain target.com --passive shodan
```
### 通配符 DNS 检测
**警告示例:**
Wildcard DNS detected; results will be marked but still returned.
标记结果:
{"subdomain": "test.example.com", "wildcard": true}
### 自动化测试
```
pytest -v
```
#### 基准测试
## python -m subenum.cli \
--domain target.com \
--wordlist wordlists/ultimate_50k.txt \
--benchmark \
--threads 200
**典型输出:**
[Benchmark] 50.000 resolutions in 8.2s (6.097 qps)
## 结果示例
对域名进行枚举后,SubEnum 生成一个结构化的 JSON 文件,包含识别出的子域、关联的 IP 地址、发现来源及其他相关信息:
## 许可证
本项目在 MIT 许可证下分发,允许使用、修改和自由分发,包括商业用途,前提是保留适当署名。
请参阅 LICENSE 文件获取更多信息。
[](https://github.com/MMVonnSeek/Subdomain-Enumerator/stargazers)
[](https://github.com/MMVonnSeek/Subdomain-Enumerator/network/members)
[](https://github.com/MMVonnSeek)
[返回顶部](#-Subdomain-Enumerator)