Siwaaaar/subdomain-enum
GitHub: Siwaaaar/subdomain-enum
一款集成多源被动与主动探测的快速子域名枚举工具,解决子资产发现与风险评分的一体化问题。
Stars: 0 | Forks: 0
# subdomain-enum
快速、全功能的子域名枚举工具,使用 Go 编写。结合了 10 多种被动和主动来源,进行 DNS 解析、HTTP 探测、端口扫描、归档 URL 爬取,并生成带有风险评分的情报报告。
## 功能
- **被动枚举**:subfinder、amass、chaos、assetfinder、findomain、crt.sh、SecurityTrails
- **主动枚举**:DNS 暴力破解(puredns)、子域名排列(gotator)
- **DNS 解析**:通过 dnsx 进行,支持通配符检测与过滤
- **HTTP 探测**:通过 httpx 进行,支持停放页过滤
- **端口扫描**:通过 naabu 进行验证
- **归档爬取**:通过 waybackurls + gau 进行智能 URL 采样
- **情报分析**:子域名重要性评分、端点分类、风险评估
- **批量处理**:支持并行处理多个域名,具备续传功能
- **缓存**:24 小时 TTL 缓存,避免重复查询
- **输出格式**:TXT、JSON、CSV、Markdown 报告
## 安装
```
go install github.com/Siwaaaar/subdomain-enum@latest
```
或者从源码构建:
```
git clone https://github.com/Siwaaaar/subdomain-enum.git
cd subdomain-enum
go build -o subdomain-enum main.go
```
## 先决条件
所需工具(通过 `go install` 或包管理器安装):
```
subfinder, amass, chaos, assetfinder, findomain, dnsx, httpx, naabu, waybackurls, gau
```
可选:
```
puredns # for brute-force (-w flag)
gotator # for permutation (-m flag)
gowitness # for screenshots (-screenshots flag)
```
## API 密钥
| 来源 | 环境变量 | 获取方式 | 是否必需 |
|---|---|---|---|
| SecurityTrails | `SECURITYTRAILS_API_KEY` | [securitytrails.com/app/signup](https://securitytrails.com/app/signup)(提供免费层级) | 否 —— 工具无需它也能运行,但启用后可获得更多结果 |
| Chaos (ProjectDiscovery) | `PDCP_API_KEY` | [cloud.projectdiscovery.io](https://cloud.projectdiscovery.io) | 否 —— subfinder/chaos 在设置后会使用 |
在 Shell 中设置:
```
export SECURITYTRAILS_API_KEY="your-key-here"
```
或通过标志传递:
```
subdomain-enum -d example.com -st "your-key-here"
```
## 用法
```
# 单一域名
subdomain-enum -d example.com
# 使用暴力破解 + 排列组合 + 端口扫描
subdomain-enum -d example.com -w wordlist.txt -p -m
# 从文件批处理模式
subdomain-enum -f domains.txt --max-concurrent 10
# 全部功能,JSON 输出
subdomain-enum -d example.com -w wordlist.txt -p -a -m -o all
```
## 标志
```
-d Target domain
-f File containing domains (one per line)
-w Wordlist for brute-forcing
-p Enable port scanning
-a Enable archive crawling (waybackurls + gau)
-m Enable subdomain permutation (gotator)
-screenshots Take screenshots of live URLs (gowitness)
-st SecurityTrails API key (or set SECURITYTRAILS_API_KEY env)
-o Output format: txt, json, csv, all (default: txt)
-cache Enable result caching (default: true)
-max-concurrent Max concurrent domains in batch mode (default: 5)
```
## 输出结构
```
subdomain_enum_example.com_20260421_120000/
├── subdomains.txt # All discovered subdomains
├── resolved.txt # DNS-resolved subdomains
├── live_urls.txt # HTTP-responsive URLs
├── ports.txt # Open ports per host
├── endpoints.txt # Crawled endpoints
├── sensitive_files.txt # Potentially sensitive paths
├── intelligence_report.md # Risk-scored analysis
├── results.json # Full results (with -o json/all)
├── results.csv # CSV export (with -o csv/all)
├── summary.txt # Scan summary
└── details/ # Raw tool outputs
```
## 情报报告
该工具会生成一份安全情报报告,包含:
- **子域名评分**:管理面板、API、开发/预发布环境、数据库按重要性排序
- **端点分析**:归类为 API、管理员、认证、上传、调试或敏感
- **发现项**:暴露的调试端点、默认凭证页面、版本泄露等
- **风险评分**:基于所有发现的 0-100 聚合评分
标签:API安全, CSV输出, DNS解析, EVTX分析, Go工具, Go语言, HTTP探测, JSON输出, Markdown报告, SEO, Transformers, TXT输出, Wayback URLs, 主动枚举, 事件追踪, 反取证, 域名侦察, 子域名枚举, 安全评估, 并行处理, 开源安全工具, 开源项目, 归档URL爬取, 情报分析, 批量处理, 数据统计, 日志审计, 智能采样, 程序破解, 端口扫描, 端点分类, 系统安全, 缓存, 网络诊断, 被动枚举, 运行时操纵, 逆向工程平台, 风险评分