Dhananjay70/subenum
GitHub: Dhananjay70/subenum
一款聚合 22+ 个 OSINT 来源的自动化子域名枚举工具,集 DNS 解析、HTTP 探测和报告生成于一体。
Stars: 0 | Forks: 0
# SubRecon – 综合子域名枚举自动化
SubRecon 通过并行运行 **22+ 个枚举来源** 来自动化子域名枚举 —— 包括 CLI 工具、公共 API 和证书透明度日志 —— 然后进行合并、去重、DNS 解析、探测存活主机,并生成专业报告。
## 功能特性
- **12 个 CLI 工具封装** – subfinder, amass, assetfinder, chaos, findomain, haktrails, gau, github-subdomains, gitlab-subdomains, cero, shosubgo, puredns
- **10 个 API/Curl 来源** – crt.sh, JLDC/Anubis, AlienVault OTX, Subdomain Center, CertSpotter, VirusTotal, BufferOver, HackerTarget, RapidDNS, URLScan.io
- **并发 DNS 解析** – 解析所有子域名,支持泛解析检测与过滤
- **HTTP 探测** – 检查哪些子域名存活(端口 80/443),包含状态码和页面标题
- **Trickest 解析器** – 自动下载最新的 DNS 解析器供 puredns 使用
- **多种输出格式** – TXT、JSON、CSV 以及独立的深色主题 HTML 报告
- **精美的终端 UI** – 通过 Rich 库显示漂亮的横幅、进度和汇总表格
- **优雅降级** – 缺失的 CLI 工具会被跳过并发出警告;支持纯 API 模式
## 安装
```
# 克隆或复制项目
cd recon
# 安装 Python 依赖
pip install -r requirements.txt
# (可选) 安装 CLI 工具以获得最大覆盖率
# 请参阅下方的 “CLI Tools Setup”
```
## 使用方法
```
# 基本扫描 (API 源 + 任何已安装的 CLI 工具)
python subenum.py example.com
# 仅 API 模式 (不需要 CLI 工具)
python subenum.py example.com --no-tools
# 跳过 HTTP 探测 (更快,仅枚举)
python subenum.py example.com --no-probe
# 静默模式 — 仅打印子域名 (支持管道)
python subenum.py example.com --silent --no-resolve --no-probe
# 使用所有 API keys 和 brute-force 的完整扫描
python subenum.py example.com \
--vt-key YOUR_VT_KEY \
--github-token YOUR_GITHUB_TOKEN \
--shodan-key YOUR_SHODAN_KEY \
--wordlist /path/to/wordlist.txt \
--threads 100
# 自定义输出目录
python subenum.py example.com -o ./my_results
```
## CLI 参数标志
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `domain` | 目标域名 (位置参数) | 必填 |
| `-o, --output` | 输出目录 | `results/` |
| `--threads` | 并发级别 | 50 |
| `--timeout` | HTTP/API 超时时间 (秒) | 15 |
| `--tool-timeout` | CLI 工具超时时间 (秒) | 300 |
| `--no-resolve` | 跳过 DNS 解析 | 关 |
| `--no-probe` | 跳过 HTTP 探测 | 关 |
| `--no-tools` | 跳过 CLI 工具 (仅 API) | 关 |
| `--silent` | 仅打印子域名 | 关 |
| `--vt-key` | VirusTotal API 密钥 | `$VT_API_KEY` |
| `--github-token` | GitHub token | `$GITHUB_TOKEN` |
| `--gitlab-token` | GitLab token | `$GITLAB_TOKEN` |
| `--shodan-key` | Shodan API 密钥 | `$SHODAN_KEY` |
| `--wordlist` | puredns 使用的字典 | 无 |
| `--resolvers` | 自定义 DNS 解析器文件 | 自动下载 |
| `--subfinder-config` | subfinder provider-config.yaml 路径 | 无 |
| `-v, --verbose` | 调试日志 | 关 |
## 输出文件
扫描完成后,`results//` 目录将包含:
| 文件 | 描述 |
|------|-------------|
| `subdomains.txt` | 每行一个子域名 |
| `subdomains.json` | 完整结果,包含按来源分类、DNS 和探测数据 |
| `subdomains.csv` | 电子表格友好的表格,包含 IP、状态、标题、服务器 |
| `report.html` | 独立的深色主题 HTML 报告(在浏览器中打开) |
## CLI 工具设置
安装这些基于 Go 的工具以获得最大覆盖率。SubRecon 在没有它们的情况下也能工作(使用纯 API 模式),但安装它们能显著增加结果数量。
```
# 核心工具
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install github.com/owasp-amass/amass/v4/...@master
go install github.com/tomnomnom/assetfinder@latest
go install github.com/projectdiscovery/chaos-client/cmd/chaos@latest
# findomain — 从 https://github.com/Findomain/Findomain 下载二进制文件
# URL & cert 工具
go install github.com/lc/gau/v2/cmd/gau@latest
go install github.com/glebarez/cero@latest
# 基于 Git
go install github.com/gwen001/github-subdomains@latest
go install github.com/gwen001/gitlab-subdomains@latest
# 基于 Shodan
go install github.com/incogbyte/shosubgo@latest
# SecurityTrails
go install github.com/hakluke/haktrails@latest
# DNS brute-force
go install github.com/d3mondev/puredns/v2@latest
# Chaos (需要 PDCP_API_KEY)
go install github.com/projectdiscovery/chaos-client/cmd/chaos@latest
```
## 环境变量
为需要认证的工具设置这些变量:
```
export GITHUB_TOKEN="ghp_..."
export GITLAB_TOKEN="glpat-..."
export SHODAN_KEY="..."
export VT_API_KEY="..."
export PDCP_API_KEY="..." # For chaos
```
## 架构
```
┌──────────────────────────────────────────────────┐
│ SubRecon │
├──────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌────────────────────────────┐ │
│ │ CLI Tools │ │ API Sources │ │
│ │ (12 tools) │ │ (10 endpoints) │ │
│ │ subprocess │ │ aiohttp async │ │
│ └──────┬──────┘ └────────────┬───────────────┘ │
│ │ │ │
│ └──────────┬───────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Merge & Dedup │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ DNS Resolution │ (wildcard detection) │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ HTTP Probing │ (status + title) │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌─────┬──────┬──────┬───────┐ │
│ │ TXT │ JSON │ CSV │ HTML │ │
│ └─────┴──────┴──────┴───────┘ │
└──────────────────────────────────────────────────┘
```
## 许可证
MIT — 可自由用于漏洞赏金和安全研究。
标签:Bug Bounty, DNS解析, ESC4, GitHub, HTML报告, HTTP探测, OSINT, Python, Windows内核, 侦察自动化, 可自定义解析器, 子域名枚举, 安全扫描, 实时处理, 密码管理, 开源项目, 数据统计, 无后门, 日志审计, 时序注入, 白帽子, 端口扫描, 系统安全, 证书透明度日志, 逆向工具