0x5da/DNS-Discovery-Tool

GitHub: 0x5da/DNS-Discovery-Tool

基于 Go 的轻量级 DNS 侦察工具,用于域名记录枚举、子域名暴力破解和基础设施发现。

Stars: 1 | Forks: 0

## DNS 探测工具 *由 0x5da (toasty/OsintToast/WoahToast) 创建* 用于域名枚举和名称服务器分析的高级 DNS 侦察套件。执行区域传送尝试、DNSSEC 验证、反向 DNS 查询,以及使用分布式工作池的智能子域名暴力破解。 ### 为什么开发此工具 作为一个专为威胁猎人和安全研究人员在目标侦察中使用的专用 DNS 枚举工具而创建。旨在通过并行化子域名发现并自动化跨多种记录类型的 DNS 数据收集——识别基础设施关系、名称服务器配置以及构成更深层攻击面分析基础的隐藏资产。 ### 功能特性 - **A/AAAA 记录**: 解析 IPv4 和 IPv6 地址 - **MX/NS/TXT 记录**: 获取邮件服务器和名称服务器配置 - **子域名暴力破解**: 使用字典进行多线程枚举与并发查询 - **反向 DNS**: 对已解析的 IP 地址执行反向 DNS 查询 - **区域传送检测**: 尝试 AXFR 请求(适用时) - **DNSSEC 分析**: 验证 DNSSEC 链完整性 ### 工作原理 该工具使用 Go 的 net 包进行 DNS 解析。子域名暴力破解会生成 N 个 worker goroutine(通过 -t 标志配置),并发处理字典条目。成功解析的子域名及其 IP 地址会实时打印。所有结果将在完成后汇总。 ### 构建与运行 ``` go build -o dns-discovery main.go ./dns-discovery -d example.com [-w wordlist.txt] [-t 10] ``` **参数:** - `-d, --domain`: 目标域名(必填) - `-w, --wordlist`: 自定义子域名字典(可选) - `-t, --threads`: 并发 worker 数量(默认: 10) **示例:** ``` # 基础枚举 ./dns-discovery -d google.com # 使用自定义 wordlist 和 20 个 workers ./dns-discovery -d acme.corp -w subdomains.txt -t 20 # 高速暴力破解 (50 threads) ./dns-discovery -d company.com -w large_wordlist.txt -t 50 ``` ### 环境要求 - Go 1.15+ - 仅需标准库(无外部依赖) ### 字典格式 每行一个子域名的纯文本文件: ``` www mail ftp admin api cdn staging ``` ### 输出示例 ``` [*] DNS Reconnaissance starting for: example.com [*] ==================================== [+] A Records: [203.0.113.1] [+] AAAA Records: [2001:db8::1] [+] MX Records: [mxb.example.com. 20, mxa.example.com. 10] [+] NS Records: [ns1.example.com. ns2.example.com.] [+] TXT Records: [v=spf1 include:_spf.example.com ~all] [*] Starting subdomain brute force with 10 workers [+] Found: www.example.com -> [203.0.113.2] [+] Found: mail.example.com -> [203.0.113.3] [+] Found: staging.example.com -> [203.0.113.4] [*] Enumeration complete. Found 14 records. ``` ### 注意事项 - 子域名暴力破解可能会受到目标 DNS 服务器的限速 - NXDOMAIN 响应会被静默忽略(预期行为) - AAAA 查询在仅 IPv4 网络上可能会失败;这并非错误情况 - Worker 数量应与可用网络带宽匹配;通常为 10-20 个 - 包含 50k+ 条目的字典根据 DNS 响应时间可能需要 30 分钟以上 ### 性能建议 - 从较小的字典(1k 条目)开始,以评估 DNS 服务器的响应行为 - 仅在观察到线程利用率 <90% 时增加线程数 - 结合本地 DNS 缓存或使用公共 DNS (8.8.8.8) 以获得更快结果 - 过滤字典以保留相关模式(例如,删除明显不相关的条目,如 "xn--" IDN 编码) ### 局限性 - 无 DNS 区域传送 (AXFR) 实现 - 未执行 DNSSEC 验证 - 无速率限制;可能会在激进扫描时触发 IDS 告警
标签:AXFR, certspotter, DNSSEC验证, DNS侦察, ESC4, EVTX分析, GitHub, Golang, Go语言, OSINT, PoC, Sigma 规则, 二进制模式, 区域传送, 反向DNS查询, 域名分析, 域名系统, 子域名枚举, 安全编程, 并发扫描, 日志审计, 暴力破解, 特征匹配, 程序破解, 系统安全, 网络侦查, 网络安全, 隐私保护