mug1sh4/subrecon
GitHub: mug1sh4/subrecon
一个仅依赖 Go 标准库的轻量子域名枚举工具,结合证书透明度日志被动查询与字典并发 DNS 暴力破解实现快速资产发现。
Stars: 0 | Forks: 0
# subrecon
一个使用 Go 编写的、无依赖的微型子域名枚举工具。由于仅使用了标准库
(`net`、`net/http`、`context`、`bufio`),它可以干净地交叉编译
为 Linux 和 Windows 版本。
## 功能
- 通过 crt.sh 证书透明度日志进行**被动枚举**
- 通过针对字典的并发 DNS 暴力破解进行**主动枚举**
- 自动去重 + 解析合并(保留拥有更多已解析 IP 的结果)
- 可配置的并发量和超时时间
- 纯文本输出,可通过管道传输至其他侦察工具(httpx、nucleus 等)
## 构建
```
# Linux binary
GOOS=linux GOARCH=amd64 go build -o subrecon main.go
# Windows binary
GOOS=windows GOARCH=amd64 go build -o subrecon.exe main.go
# Native build(无论你使用哪种操作系统)
go build -o subrecon main.go
```
除了标准库之外不需要任何 `go.mod` 依赖,因此在安装工具链后,
`go build` 可以离线运行。
## 用法
```
# 完整运行:passive + active
./subrecon -d example.com -w wordlist_small.txt -c 100 -o results.txt
# 仅 passive(快速,无需 wordlist)
./subrecon -d example.com -passive-only
# 仅 active(跳过 crt.sh)
./subrecon -d example.com -w wordlist_small.txt -active-only
# 更大的 wordlist + 更高的并发
./subrecon -d example.com -w /path/to/subdomains-top1million-5000.txt -c 300
```
### 标志
| Flag | Default | Description |
|-----------------|---------|------------------------------------------------|
| `-d` | — | 目标域名(必填) |
| `-w` | — | 用于主动暴力破解的字典路径 |
| `-c` | 50 | 并发量(运行中的 goroutine 数量) |
| `-timeout` | 5 | 每次查询的超时时间(秒) |
| `-o` | stdout | 输出文件路径 |
| `-passive-only` | false | 仅查询 crt.sh |
| `-active-only` | false | 仅通过 DNS 进行暴力破解 |
| `-ips` | true | 在每个子域名旁打印已解析的 IP |
## 注意事项 / OPSEC
- crt.sh 查询是被动的——不会有任何数据包触及目标的
基础设施,仅限于证书透明度日志服务器。
- DNS 暴力破解属于主动侦察:它会向您的 OS 上配置的解析器发送真实查询。
在实际任务中,请从您的交战规则所涵盖的基础设施上运行此操作,
如果他们正在监控查询量,请做好它出现在目标 DNS
日志中的准备。
- 此工具不进行端口扫描、banner 抓取或漏洞利用——它仅用于
枚举,旨在范围验证后,将经过允许的目标列表
输入到后续阶段(httpx、nuclei 等)。
## 许可证
请在您的任务交战规则 / 授权范围内使用。
标签:DNS解析, EVTX分析, GitHub, Go, Ruby工具, 子域名枚举, 实时处理, 开源项目, 日志审计, 系统安全