Reconator 是一个自动化侦察框架。添加一个目标(单独或批量添加),工作进程将对其运行约17个侦察模块(子域名枚举、目录爆破、JS/链接挖掘、WAF指纹识别、接管检查、GF分类等)。仪表板会实时显示各个模块的输出。
技术栈
| 层 | 技术 |
|---|
| API | FastAPI · SQLAlchemy 2 · Alembic · Pydantic v2 |
| 工作进程 | Python子进程运行器,支持超时和取消 |
| 数据库 | PostgreSQL 16 |
| 前端 | React 18 · TypeScript · Tailwind · shadcn/ui · 浅色/深色主题 |
| 认证 | 写入操作使用 API 密钥(X-API-Key);开发模式下开放 |
| 通知 | Telegram + 通用 / Slack / Discord webhook |
| 监控 | JSON 日志 · 请求 ID · Prometheus /metrics · 可选 Sentry |
| 部署 | Docker Compose · Heroku 容器栈 |
快速开始 — Docker Compose
git clone https://github.com/gokulapap/Reconator
cd Reconator
cp .env.example .env # 可选:添加 Telegram / webhook 密钥 / API 密钥
docker compose up --build
快速开始 — Heroku

或通过 CLI(使用 heroku.yml 容器栈 — 单个镜像同时提供 UI 和 API,工作进程 dyno 运行队列):
heroku create my-reconator --stack=container
heroku addons:create heroku-postgresql:essential-0
heroku config:set ADMIN_API_KEY=$(openssl rand -hex 32) # 推荐
heroku config:set TELEGRAM_API_KEY=... TELEGRAM_CHAT_ID=... # 可选
git push heroku master
heroku ps:scale web=1 worker=1
本地开发
# API
cd backend && pip install -r requirements.txt
uvicorn app.main:app --reload
# 工作进程(新终端)
python -m app.worker
# 前端(新终端)
cd frontend && npm install && npm run dev # 将 /api 代理到 :8000
# 测试 + 代码检查
cd backend && pytest && ruff check .
功能特性
- 批量添加 — 粘贴最多 500 个域名;逐行显示错误/冲突报告
- 标签 + 过滤 — 为目标打标签,按标签过滤列表
- 模块选择 — 为每个目标仅调度所需的模块
- 取消 + 重新扫描 — 在模块运行之间停止正在运行的目标;一键重新扫描
- 逐模块结果 — 每个检查的输出为独立行,包含状态、耗时、错误信息
- 结果内搜索 + 高亮 — 就地过滤庞大的子域名转储
- CSV / JSON 导出 — 通过 API 导出整个队列
- 实时仪表板 — 计数、平均扫描时长、最近活动
- 可选 API 密钥认证 — 设置
ADMIN_API_KEY 后,所有变更操作需要 X-API-Key
- 速率限制 — slowapi 限制写入(默认:单次 20/分钟,批量 5/分钟)
- Prometheus 指标 — 请求速率、延迟、扫描次数、队列深度
- Telegram + webhook 广播 — 通知器抽象,两者可同时运行
- 浅色 + 深色 UI — 偏好按浏览器存储
API 接口
OpenAPI 文档位于 /docs。
配置
从 v1 的变更
- Flask → FastAPI;SQL 注入向量已消除(参数化 SQLAlchemy)
- 嵌入式 HTML → React + shadcn/ui 仪表板
- 数据库中单个 base64 数据块 → 带状态/时间戳/错误的逐模块行
cron.py 轮询循环 → 带行锁定、优雅关闭、取消功能的工作进程
- 手动 Heroku buildpacks → 通过
heroku.yml 的容器栈
- 新增:API 密钥认证、速率限制、请求 ID、Prometheus、Sentry 钩子、
批量导入、标签、重新扫描、取消、webhook 通知器、CSV/JSON 导出
免责声明
仅用于授权测试。请仅在你拥有或有权评估的系统上使用。
根据 GPL-3.0 许可发布。