tkMONK/Reconx

GitHub: tkMONK/Reconx

Go 编写的单二进制域名侦察工具,一次运行聚合 DNS、WHOIS、子域名、SSL/TLS、邮件安全、Web 指纹、Geo-IP 及历史 URL 等多维信息并输出结构化 JSON 报告。

Stars: 0 | Forks: 0

# ReconX v1.0 ReconX 是一个单二进制域侦察工具,它将 DNS 记录、WHOIS 数据、子域枚举、SSL/TLS 分析、电子邮件安全状况、Web 技术指纹识别、Geo-IP/ASN 查询以及 Wayback Machine 历史记录聚合成结构化的 JSON 报告 —— 只需运行一次即可完成。 ## 功能 | 模块 | 类型 | 描述 | |---|---|---| | DNS 侦察 | 被动 | 查询 A、AAAA、NS、MX、TXT、SOA、CNAME、SRV、CAA、PTR、HINFO 记录 | | WHOIS 查询 | 被动 | 跟随 IANA 重定向至权威注册商 WHOIS 服务器 | | 区域传送检查 | 主动 | 尝试对每个发现的 NS 记录进行 AXFR | | 子域枚举 | 被动 + 主动 | 并发查询 10 个来源(见下文) | | SSL/TLS 分析 | 被动 | 证书详情、SAN、密码套件、协议版本、过期警告 | | 电子邮件安全侦察 | 被动 | SPF、DMARC、DKIM(常见选择器)、BIMI、MX 安全备注 | | Web 技术发现 | 主动 | HTTP 头部、安全头部审计(分数/6)、技术指纹识别、robots.txt、sitemap.xml | | Geo-IP 和 ASN 查询 | 被动 | 通过 ip-api.com / ipapi.co 查询国家、地区、城市、ISP、组织、ASN | | Wayback Machine URL | 被动 | 从 CDX API 检索多达 200 个历史 URL | ### 子域来源 crt.sh · SecurityTrails · HackerTarget · RapidDNS · AlienVault OTX · CertSpotter · AnubisDB · C99 · Wayback URLs · BufferOver 所有来源均通过 goroutines 并发运行,并在导出前对结果进行去重处理。 ### 安全头部审计 ReconX 根据六个关键头部对目标进行评分,并返回满分 6 分的得分: - `Strict-Transport-Security` - `Content-Security-Policy` - `X-Content-Type-Options` - `X-Frame-Options` - `Referrer-Policy` - `Permissions-Policy` ## 安装 ### 前置条件 - Go 1.21 或更高版本 ### 从源码构建 ``` git clone https://github.com/tkMONK/Reconx.git cd Reconx go mod init Reconx go mod tidy go build -o reconx main.go ``` ## 使用方法 ``` ./reconx [flag] ``` ### 参数标志 | 标志 | 默认值 | 描述 | |---|---|---| | `-h --help` | | ./reconx 的用法 | | `-d ` | _(交互提示)_ | 目标域名,例如 `example.com` | | `-o ` | `recon_results/_.json` | 自定义 JSON 输出路径 | | `-passive` | `false` | 跳过主动模块(区域传送和 Web 侦察) | | `-json-only` | `false` | 抑制所有终端输出;仅写入 JSON | | `-version` | — | 打印版本并退出 | ### 示例 ``` # Interactive (提示输入 domain) ./reconx # Full scan ./reconx -d example.com # Passive only (无 active probing) ./reconx -d example.com -passive # CI/pipeline 用法 — 静默、结构化 output ./reconx -d example.com -json-only -o ./results/example.json # 打印 version ./reconx -version ``` 如果省略了 `-d`,ReconX 将以交互方式提示。URL 方案(`https://`、`http://`)和末尾的斜杠会被自动去除。域名会根据基本的正则表达式进行验证;格式异常会产生警告,但不会中止扫描。 ## 输出 ReconX 将两个文件写入 `recon_results/` 目录(如不存在则会创建): | 文件 | 内容 | |---|---| | `_.json` | 完整的结构化报告(所有模块) | | `_subdomains.txt` | 唯一子域的平面列表,每行一个 | ### JSON Schema(顶层字段) ``` { "target": "example.com", "timestamp": "2025-08-01 12:00:00", "dns_records": [...], "whois": "...", "zone_transfers": [...], "subdomains": [...], "all_subdomains_unique": [...], "ssl_info": { ... }, "geoip": { ... }, "web_info": { ... }, "email_recon": { ... }, "wayback_urls": [...] } ``` 使用 `-passive` 运行时,`zone_transfers` 和 `web_info` 将被省略。 ## 架构 ``` main() ├── runDNSRecon() → []DNSRecord ├── runWHOIS() → string ├── runEmailRecon() → *EmailRecon ├── runSSLRecon() → *SSLInfo ├── runGeoIP() → *GeoIPInfo ├── runWayback() → []string ├── runSubdomainEnum() → []SubdomainSource (10 goroutines, concurrent) ├── runZoneTransfers() → []ZoneTransferResult [active only] ├── runWebRecon() → *WebInfo [active only] └── exportJSON() + exportSubdomainsTxt() ``` HTTP 客户端在所有模块间共享。它使用 15 秒超时,跳过 TLS 验证(对于配置错误的目标是故意为之),将响应主体限制为 5 MB,并且不会盲目跟随超过 5 次重定向。 DNS 查询使用系统解析器(`/etc/resolv.conf`),当其不可用时回退到 Google(`8.8.8.8`)和 Cloudflare(`1.1.1.1`)的 53 端口,每次查询的超时时间为 5 秒。 ## 道德与法律声明 ReconX 旨在用于**授权的安全评估、漏洞赏金计划,以及对您拥有或获得明确测试权限的基础设施的研究**。 - 区域传送尝试(AXFR)是主动探测 —— 它们会向名称服务器发送数据包。 - Web 侦察会从目标获取实时的 HTTP 响应。 - 在扫描第三方系统之前,请务必获得书面授权。 如果您需要较低影响的模式,`-passive` 标志会将 ReconX 限制为仅针对公共 API 和 DNS 解析器进行纯粹的被动、只读查询。 ## 许可证 MIT —— 详见 `LICENSE`。
标签:CDX API, DKIM, DMARC, DNS解析, GitHub, Go语言, HTTP指纹识别, JSON格式输出, SPF, SSL/TLS分析, Wayback Machine, WHOIS查询, 二进制发布, 协议探测, 反汇编, 域名侦察, 子域名枚举, 开源工具, 开源项目, 日志审计, 程序破解, 系统安全, 网络安全, 邮箱安全, 隐私保护, 黑盒测试