高级侦察引擎,能够发现真实秘密,实时验证它们,并从客户端情报构建利用路径。
Reconix 专为授权的安全测试、漏洞赏金计划和防御性研究而设计。
未经授权的扫描是非法的,将受到计算机欺诈法的惩罚。
请阅读 DISCLAIMER.md 中的完整免责声明。
与仅进行正则匹配并转储发现的普通扫描器不同,Reconix:
实时验证密钥 — 调用实际 API(GitHub、Stripe、OpenAI、Supabase、SendGrid、Anthropic、HuggingFace、Linear)来确认密钥是 有效、无效、已过期 还是 长期有效 — 无需再猜测密钥是否真正有效
构建利用链 — 自动将相关发现连接成可操作的攻击路径,如 "JWT + Supabase + API 端点 → 未授权数据访问" 或 "已验证的密钥 + 管理面板 → 权限提升"
通过10层分析过滤误报 — 忽略 React 内部机制、CSS 类、文档 URL、占位符以及其他工具误报为密钥的混淆垃圾
还原源码映射 — 从 .map 文件和内联源码映射中恢复原始源码,然后扫描还原后的代码以查找隐藏在混淆包中的密钥
自愈浏览器 — 自动检测并重启扫描中崩溃的 Puppeteer 实例,不丢失进度
提取客户端情报 — 汇总所有 JavaScript 以查找 API 端点(用户/管理员/内部)、环境变量(NEXT_PUBLIC_*、REACT_APP_*)、第三方服务(Supabase、Stripe、Firebase、Clerk)和功能标志
优先级驱动的爬取 — 智能评分 URL(优先 JS 文件、API、源码映射),在浪费时间于静态资源之前找出高价值目标
实时 JWT 检查 — 解码 JWT 以揭示签发者、角色和有效期 — 将 长期有效(1年以上)和 无过期时间 的令牌标记为安全问题
Supabase service_role 检测 — 识别 JWT 是否具有 service_role 权限,该权限会绕过所有行级安全(RLS)—— 严重的数据库入侵路径
Firebase 实时数据库测试 — 检测 Firebase 凭据并测试 /.json 端点是否允许未认证的数据库导出
GraphQL 自省检测 — 自动探测 /graphql 端点,检查是否启用了模式自省(信息泄露)
CORS 配置错误扫描 — 检查 API 端点是否包含通配符 (*) 或反射的 Access-Control-Allow-Origin 头
WordPress 用户枚举 — 检测 /wp-json/wp/v2/users 是否暴露了用户 ID 和名称
Next.js 环境变量泄露 — 扫描 /_next/static/chunks/ 中的客户端包,查找嵌入的 process.env 引用
存档挖掘 — 从 Wayback Machine 获取历史 URL 并扫描存档内容,查找已从活动站点删除的密钥
代理故障转移 — 在连续 3 次代理失败后自动回退到直接连接,确保扫描不中断
可恢复扫描 — 每处理 10 个资源保存一次状态,中断后可从中断处继续
多格式报告 — 生成美观的 HTML 报告、结构化的 JSON 导出和纯文本 discovered_api_keys.txt 以便快速参考
680+ 技术指纹 — 从头部、HTML、JS、Cookie、TLS 证书和 DNS 中检测框架、托管提供商、CDN、分析工具、支付处理、认证系统和 UI 库
200+ 真实世界密钥检测模式 — 涵盖 API 密钥、令牌、私钥、OAuth 密钥、数据库凭据、CI/CD 令牌和 Webhook URL,跨主流平台进行高置信度匹配
浏览器网络捕获 — 在启用 --js 时,捕获所有出站网络请求以指纹识别其他服务和 API
速率限制感知 — 检测 429 响应和 Retry-After 头部,相应调整而不崩溃
# 全局安装
npm install -g @aquibk/reconix
# 或直接运行
npx reconix target.com
# 验证一切正常
reconix --self-test
--js 模式会自动安装)# 基础扫描(低足迹)
reconix example.com
# 全功率(最多发现)
reconix example.com --js --aggressive --deep --only-critical
# 漏洞赏金模式(平衡)
reconix target.com --js --deep --historical --delay=500 --output=report.json
# 隐身模式(避免检测)
reconix target.com --delay=2000 --jitter=1000 --threads=5 --proxy=socks5://127.0.0.1:9050
reconix <url> [options]
reconix scan <url> [options]
| 标志 | 描述 | 默认值 |
|---|---|---|
--output=<file> | 保存完整 JSON 报告 | 无 |
--html=<file> | 生成 HTML 报告 | 无 |
reconix example.com --output=scan.json --html=report.html
| 标志 | 描述 | 默认值 |
|---|---|---|
--no-subdomains | 禁用子域名发现 | - |
--historical | 获取存档 URL |
reconix example.com --historical --deep
# 快速但有风险
reconix example.com --threads=50 --delay=100 --jitter=50
# 礼貌爬取
reconix example.com --threads=10 --delay=2000 --jitter=1000
--no-js → 禁用无头浏览器 (Puppeteer)--aggressive → 深度全范围扫描--proxy=<host:port> → 代理支持--auth=<user:pass> → 身份验证 (Basic 或 Bearer)--cookie=<string> → 自定义 Cookie--user-agent=<string> → 自定义用户代理# 认证扫描
reconix api.example.com --auth="Bearer:sk_live_xxx" --js
# 代理使用
reconix example.com --proxy="http://user:pass@proxy:8080" --delay=1000
reconix example.com --only-critical --no-low
reconix target.com --deep --historical --threads=25 --delay=500 --output=bounty.json --html=report.html
reconix target.com --aggressive --deep --historical --threads=50 --delay=150 --jitter=50 --only-critical --output=full.json --html=full.html
reconix target.com --threads=5 --delay=2000 --jitter=1500 --no-subdomains --proxy=socks5://127.0.0.1:9050
reconix target.com --threads=30 --delay=200 --no-js --no-subdomains --only-critical
reconix --self-test
# 阶段 1:快速侦察
reconix target.com --only-critical
# 阶段 2:深度分析
reconix target.com --deep --delay=1000
# 阶段 3:激进扫描
reconix target.com --aggressive --deep --only-critical
| 问题 | 解决方案 |
|---|---|
| 浏览器超时 | 重新安装 Puppeteer |
| 打开文件过多 | 减少线程数 |
| 代理失败 |
| 文件 | 描述 |
|---|---|
discovered_api_keys.txt | 所有发现的密钥 |
*.json | 完整扫描报告 |
*.html | 可视化报告 |
.reconix-state.json |
欢迎提交 Issue 和 Pull Request。
reconix --self-test
请参见 LICENSE.txt
⚠️ 请负责任地使用。仅限授权目标。 ⚠️
| false |
--deep | 增加爬取深度 | false |
| 标志 | 描述 | 默认值 |
|---|
--threads=<n> | 并发请求数 (1–100) | 20 |
--delay=<ms> | 请求间基础延迟 | 500 |
--jitter=<ms> | 随机延迟变化 | 300 |
--max-bytes=<bytes> | 每个文件最大下载大小 | 4000000 |
--resume | 恢复之前的扫描 | false |
| 标志 | 描述 | 默认值 |
|---|
--only-critical | 仅显示关键发现 | false |
--no-low | 隐藏低置信度发现 | false |
--include-medium | 包含中等发现 | true |
--no-medium | 排除中等发现 | - |
| 目标类型 | 线程数 | 延迟 | 抖动 | JS |
|---|
| 生产环境 | 5–10 | 2000–3000 | 1000 | ❌ |
| 预发布环境 | 15–20 | 800–1200 | 500 | ✅ |
| 漏洞赏金 | 20–30 | 400–600 | 200 | ✅ |
| CTF/实验室 | 50–100 | 0–100 | 0 | ✅ |
| 检查代理 URL |
| 速率限制 (429) | 增加延迟和抖动 |
| 无发现 | 使用 --js --deep --historical |
| 恢复状态 |