tldr-it-stepankutaj/dnsutils
GitHub: tldr-it-stepankutaj/dnsutils
一款用 Go 编写的全功能 DNS 侦察与子域名发现工具,帮助安全研究人员一站式完成域名资产收集与安全配置审计。
Stars: 0 | Forks: 0
# DNS 侦察工具
一款使用 Go 编写的强大 DNS 侦察和子域名发现工具,专为渗透测试人员、红队成员和安全研究人员设计。执行全面的 OSINT 收集,包括 DNS 记录、多来源子域名枚举、WHOIS、DNSSEC 验证、DNS 区域传送测试、子域名接管检测、HTTP 安全头分析等。
[](https://github.com/tldr-it-stepankutaj/dnsutils/releases)
[](https://goreportcard.com/report/github.com/tldr-it-stepankutaj/dnsutils)
[](https://opensource.org/licenses/MIT)
## 功能
### DNS 与基础设施
- 🔍 **DNS 记录枚举** — A, AAAA, MX, TXT, CNAME, NS, SOA
- 🔓 **DNS 区域传送 (AXFR) 测试** — 测试所有权威名称服务器是否存在配置错误
- 🛡️ **DNSSEC 验证** — 检查 DNSKEY、DS、RRSIG 记录并验证信任链
- 🕵️ **DNS 缓存窥探** — 通过非递归查询检测名称服务器上的缓存记录
- 📋 **WHOIS 查询** — 通过原始 WHOIS 协议获取注册商、日期、名称服务器、DNSSEC 状态
### 子域名发现
- 📜 **证书透明度 (Certificate Transparency)** — 通过 crt.sh 进行子域名枚举
- 🌐 **被动来源** — HackerTarget、AlienVault OTX、URLScan.io、Wayback Machine、RapidDNS
- 🔨 **暴力破解** — 约 500 个内置前缀或自定义字典
- 🔄 **递归发现** — 从已发现的主机中查找子域名
- 🃏 **泛解析 DNS 检测** — 自动检测并过滤泛解析响应
- 🔙 **反向 DNS (PTR)** — 对所有发现的 IP 进行 PTR 查询
### 安全分析
- ⚡ **子域名接管检测** — 20 多个服务指纹 (GitHub Pages、Heroku、S3、Azure、Shopify、Fastly 等)
- 🔒 **HTTP 安全头** — 检查 HSTS、CSP、X-Frame-Options、CORP、COOP、Referrer-Policy 等
- 🏷️ **技术指纹识别** — 检测 CMS、框架、CDN、WAF、分析工具 (WordPress、React、Cloudflare 等)
- 📧 **邮件安全** — SPF、DMARC、DKIM、MX、CAA 分析,并提供评分和建议
- ☁️ **云基础设施检测** — AWS、Azure、GCP、DigitalOcean 服务识别及孤立资源检测
### 输出与报告
- 📊 **清晰、彩色化的控制台输出**,带有格式化的表格
- 💾 **JSON 导出**,用于脚本编写和自动化
- 📄 **HTML 报告** — 用于渗透测试交付物的自带暗色主题报告
- 🔧 **端口扫描和服务指纹识别**
- 🌐 **ASN 查询**,用于发现的 IP 地址
## 🔳 终端 UI (TUI)
DNSUtils 包含一个由 [`rivo/tview`](https://github.com/rivo/tview) 驱动的内置**文本用户界面 (TUI)**。
### 启动:
```
dnsutils -tui
```

## 安装
### 预编译二进制文件
从 [Releases 页面](https://github.com/tldr-it-stepankutaj/dnsutils/releases)下载最新版本。
### 从源码构建
#### 前置条件
- Go 1.24 或更高版本
#### 构建
1. 克隆仓库:
git clone https://github.com/tldr-it-stepankutaj/dnsutils.git
cd dnsutils
2. 构建二进制文件:
make build
这将在 `bin` 目录下创建一个二进制文件。
3. 或构建所有平台版本:
make build-all
这将为以下平台创建二进制文件:
- Linux (amd64, arm64)
- macOS (amd64, arm64)
- Windows (amd64)
## 使用方法
```
./bin/securitydns [options] domain
```
### 选项
| 选项 | 描述 | 默认值 |
|--------|-------------|---------|
| `-c int` | 扫描的并发级别 | 40 |
| `-dns string` | 用于查询的 DNS 服务器 | `8.8.8.8:53` |
| `-o string` | 结果的输出文件 (JSON) | |
| `-html string` | HTML 报告的输出文件 | |
| `-p value` | 要扫描的端口 (可重复) | 80,443,22,21,25,8080,8443,53 |
| `-t int` | 超时时间 (秒) | 1 |
| `-v` | 详细输出 | |
| `-w string` | 用于暴力破解的自定义字典 | |
| `-tui` | 启动终端 UI 模式 | |
| `-no-certs` | 跳过 CT 日志子域名发现 | |
| `-no-bruteforce` | 跳过暴力破解子域名发现 | |
| `-no-passive` | 跳过被动子域名来源 | |
| `-no-recursive` | 跳过递归子域名发现 | |
| `-no-whois` | 跳过 WHOIS 查询 | |
| `-no-axfr` | 跳过 DNS 区域传送测试 | |
| `-no-dnssec` | 跳过 DNSSEC 验证 | |
| `-no-takeover` | 跳过子域名接管检测 | |
| `-no-headers` | 跳过 HTTP 安全头分析 | |
| `-no-reverse` | 跳过反向 DNS 查询 | |
| `-no-cachesnoop` | 跳过 DNS 缓存窥探 | |
| `-no-security` | 跳过邮件安全分析 | |
| `-no-cloud` | 跳过云基础设施检测 | |
### 示例
基础全面扫描:
```
./bin/securitydns example.com
```
输出 JSON 和 HTML 的全面扫描:
```
./bin/securitydns -o results.json -html report.html example.com
```
快速扫描(跳过缓慢的模块):
```
./bin/securitydns -no-bruteforce -no-passive -no-headers -no-reverse example.com
```
自定义字典和端口:
```
./bin/securitydns -w wordlist.txt -p 80 -p 443 -p 8080 -c 100 -t 2 example.com
```
仅 DNS + WHOIS + 区域传送(不进行子域名枚举):
```
./bin/securitydns -no-certs -no-bruteforce -no-passive -no-recursive example.com
```
## 项目结构
```
.
├── cmd
│ ├── main.go # Application entry point
│ └── security/main.go # Standalone email security binary
├── internal
│ ├── asn/lookup.go # ASN lookup (ipapi.co, ip-api.com)
│ ├── cloud/detector.go # Cloud infrastructure detection
│ ├── dns
│ │ ├── resolver.go # DNS record retrieval
│ │ ├── zonetransfer.go # AXFR zone transfer testing
│ │ ├── dnssec.go # DNSSEC chain validation
│ │ └── cachesnoop.go # DNS cache snooping
│ ├── httpinfo
│ │ ├── headers.go # HTTP security header analysis
│ │ └── techdetect.go # Technology fingerprinting
│ ├── models/ # Data structures
│ ├── output
│ │ ├── console.go # Colorized console output
│ │ ├── json.go # JSON export
│ │ ├── html.go # HTML report generator
│ │ └── cloud.go # Cloud results formatting
│ ├── scanner/portscanner.go # Port scanning & service detection
│ ├── security/analyzer.go # Email security (SPF/DMARC/DKIM/MX/CAA)
│ ├── ssl/certificate.go # SSL certificate extraction
│ ├── subdomain
│ │ ├── certs.go # CT log discovery
│ │ ├── passive.go # Passive source aggregator
│ │ ├── bruteforce.go # Brute-force enumeration
│ │ ├── takeover.go # Subdomain takeover detection
│ │ ├── wildcard.go # Wildcard DNS detection
│ │ └── reverse.go # Reverse DNS (PTR) lookups
│ ├── tui/ # Terminal UI (rivo/tview)
│ └── whois/lookup.go # WHOIS protocol client
└── pkg/utils/utils.go # Utility functions
```
## 更新日志 (v2.0.0)
- **WHOIS 查询** — 通过原始 WHOIS 协议获取注册商、日期、名称服务器(无外部依赖)
- **DNS 区域传送 (AXFR)** — 测试所有 NS 是否存在配置错误的区域传送
- **DNSSEC 验证** — DNSKEY/DS/RRSIG 信任链验证
- **DNS 缓存窥探** — 检测目标名称服务器上的缓存记录
- **子域名接管检测** — 20 多个服务指纹 (GitHub Pages、Heroku、S3、Azure、Shopify、Fastly、Ghost、Zendesk、Fly.io 等)
- **HTTP 安全头** — HSTS、CSP、X-Frame-Options、CORP、COOP、Referrer-Policy、Permissions-Policy
- **技术指纹识别** — CMS、框架、CDN、WAF、分析工具检测 (WordPress、React、Cloudflare、Akamai 等)
- **被动子域名来源** — HackerTarget、AlienVault OTX、URLScan.io、Wayback Machine、RapidDNS
- **泛解析 DNS 检测** — 自动检测并过滤泛解析响应
- **递归子域名发现** — 从 CT 日志中查找子域名
- **反向 DNS (PTR)** — 对所有发现的 IP 进行 PTR 查询
- **HTML 报告生成** — 用于渗透测试交付物的自带暗色主题报告
- **扩展的暴力破解字典** — 约 500 个内置前缀(原为 57 个)
- **云基础设施检测** — AWS、Azure、GCP、DigitalOcean 服务和孤立资源检测
- **邮件安全评分** — SPF、DMARC、DKIM、MX 备份、CAA 分析
## 许可证
本项目基于 MIT 许可证授权 - 详情请参见 LICENSE 文件。
## 致谢
- [miekg/dns](https://github.com/miekg/dns) - Go 的 DNS 库
- [olekukonko/tablewriter](https://github.com/olekukonko/tablewriter) - Go 中的 ASCII 表格
- [rivo/tview](https://github.com/rivo/tview) - 终端 UI 库
## 作者
本工具由 Stepan Kutaj (TLDR-IT) 开发。如需了解更多信息或有任何问题,请通过 [stepan.kutaj@tldr-it.com](mailto:stepan.kutaj@tldr-it.com) 联系我,或访问我的网站 [www.tldr-it.com](https://www.tldr-it.com)。
[](https://github.com/tldr-it-stepankutaj)
[](https://www.linkedin.com/in/stepankutaj)
[](https://buymeacoffee.com/stepankutae)
*仅供教育和合法的安全研究目的使用。在对任何系统执行侦察之前,请务必获得适当的授权。*
标签:C2日志可视化, DNSSEC, DNS侦察, DNS区域传输, DNS缓存窥探, DNS记录枚举, ESC4, EVTX分析, GitHub, Go语言, HTTP安全头, OSINT, SSL证书分析, WHOIS查询, 二进制匹配, 动态插桩, 协议探测, 反取证, 反向DNS, 子域名接管, 子域名爆破, 安全评估, 实时处理, 指纹识别, 数据展示, 无线安全, 日志审计, 程序破解, 红队, 网络安全, 证书透明度, 隐私保护