tldr-it-stepankutaj/dnsutils

GitHub: tldr-it-stepankutaj/dnsutils

一款用 Go 编写的全功能 DNS 侦察与子域名发现工具,帮助安全研究人员一站式完成域名资产收集与安全配置审计。

Stars: 0 | Forks: 0

# DNS 侦察工具 一款使用 Go 编写的强大 DNS 侦察和子域名发现工具,专为渗透测试人员、红队成员和安全研究人员设计。执行全面的 OSINT 收集,包括 DNS 记录、多来源子域名枚举、WHOIS、DNSSEC 验证、DNS 区域传送测试、子域名接管检测、HTTP 安全头分析等。 [![GitHub release](https://img.shields.io/github/v/release/tldr-it-stepankutaj/dnsutils)](https://github.com/tldr-it-stepankutaj/dnsutils/releases) [![Go Report Card](https://goreportcard.com/badge/github.com/tldr-it-stepankutaj/dnsutils)](https://goreportcard.com/report/github.com/tldr-it-stepankutaj/dnsutils) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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 ``` ![TUI 示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/165c0f38e6171106.png) ## 安装 ### 预编译二进制文件 从 [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)。 [![GitHub](https://img.shields.io/github/followers/tldr-it-stepankutaj?label=Follow%20%40tldr-it-stepankutaj&style=social)](https://github.com/tldr-it-stepankutaj) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-blue?style=social&logo=linkedin)](https://www.linkedin.com/in/stepankutaj) [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-Support-orange?style=social&logo=buy-me-a-coffee)](https://buymeacoffee.com/stepankutae) *仅供教育和合法的安全研究目的使用。在对任何系统执行侦察之前,请务必获得适当的授权。*
标签:C2日志可视化, DNSSEC, DNS侦察, DNS区域传输, DNS缓存窥探, DNS记录枚举, ESC4, EVTX分析, GitHub, Go语言, HTTP安全头, OSINT, SSL证书分析, WHOIS查询, 二进制匹配, 动态插桩, 协议探测, 反取证, 反向DNS, 子域名接管, 子域名爆破, 安全评估, 实时处理, 指纹识别, 数据展示, 无线安全, 日志审计, 程序破解, 红队, 网络安全, 证书透明度, 隐私保护