aarocy/Recon-Scan

GitHub: aarocy/Recon-Scan

一款轻量级开源被动侦察扫描器,集成AI安全分析与PDF报告生成,帮助安全团队快速获取目标攻击面态势快照。

Stars: 5 | Forks: 0

# Recon-Scan image ReconScan 是一个开源被动侦察扫描器,采用 FastAPI 后端、async worker 管道以及单页面前端。 其核心在于快速信号获取:运行扫描,获取逐模块的发现结果,并获得现在可导出为精美 PDF 报告的 AI 总结。 ## 项目定位(与用途) - 这是被动侦察。它不进行端点暴力破解、模糊测试或运行主动利用逻辑。 - 适用于态势快照、分类甄别和报告生成。 - 不能替代完整的渗透测试。 ## 功能特性 - 13 个被动模块: - 安全标头 - SSL/TLS - DNS + 邮箱认证 (SPF/DMARC/MX) - WHOIS - Robots/sitemap - 子域名枚举 - 技术指纹识别 - WAF 检测 - CORS 检查 - Cookie 安全检查 - JS 暴露检查 - 目录暴露检查 - 信誉检查 - 基于 Redis + ARQ worker 的异步执行。 - 如果队列入队失败,回退到进程内后台执行。 - 通过 OpenRouter / Anthropic / OpenAI 提供可选的 AI 总结。 - 基于扫描 + AI 总结生成 PDF 报告。 - 前端直接由 FastAPI 服务(单一 URL,单一应用)。 ## 单命令启动(本地开发) 如果你只想快速运行: ``` ./start.sh ``` 执行内容: - 如果缺少 `.env`,则从 `.env.example` 创建。 - 如果需要,创建 `.venv`。 - 从 `requirements.txt` 安装依赖。 - 在 `http://localhost:8000` 上启动带热重载的 FastAPI。 - 强制设置 `USE_ARQ_QUEUE=false` 以便在本地更轻松地无 Redis 启动。 使用 `Ctrl+C` 停止。 ## 单命令启动(Docker) ``` ./start-docker.sh ``` 执行内容: - 如果缺少 `.env`,则从 `.env.example` 创建。 - 通过 Docker Compose 启动 API + worker + Redis。 ## Docker 启动(手动) ``` cp .env.example .env docker compose up --build ``` ## 本地开发(不使用 Docker) 1. 安装依赖: ``` pip install -r requirements.txt ``` 2. 创建环境文件: ``` cp .env.example .env ``` 3. 启动 API: ``` uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` 4. 在另一个终端中启动 worker(推荐): ``` arq app.worker.WorkerSettings ``` 5. 打开: `http://localhost:8000` ## 运行测试 安装测试依赖: ``` pip install -r requirements-dev.txt ``` 运行完整套件: ``` pytest -q ``` ## PDF 报告 扫描完成后,在 UI 中点击 `Download PDF`。 后端端点: - `GET /scans/{scan_id}/report.pdf` 报告包含: - 目标和扫描元数据 - AI 执行摘要(简版 + 完整叙述,如果可用) - 严重程度快照表 - 详细的逐模块发现结果 ## API - `GET /health` - `POST /scans` - 请求体示例: - `{ "target": "example.com" }` - `{ "target": "example.com", "byoapi_key": "...", "byoapi_provider": "your_provider" }` - 备注: - 除非 `ALLOW_BYO_API_KEY=true`,否则拒绝 `byoapi_key` - 私有 / 环回 / 保留目标被阻止 - `user_id` 是可选的,保留是为了兼容性 - `GET /scans/{scan_id}` - `GET /scans/{scan_id}/report.pdf` ## 配置 来自 `.env.example`: - `DATABASE_URL`(默认值:`sqlite:///./reconscan.db`) - `REDIS_URL`(默认值:`redis://localhost:6379`) - `USE_ARQ_QUEUE`(默认值:`true`) - `RATE_LIMIT_PER_MINUTE`(默认值:`10`) - `RATE_LIMIT_PER_DAY`(默认值:`200`) - `ALLOWED_HOSTS`(默认值:`localhost,127.0.0.1`) - `CORS_ALLOWED_ORIGINS`(默认值:本地开发源) - `ALLOW_BYO_API_KEY`(默认值:`false`) - `OPENROUTER_API_KEY`, `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`(可选) - `VIRUSTOTAL_API_KEY`, `GOOGLE_SAFE_BROWSING_API_KEY`(可选) ## 注意事项 - 如果未配置外部 AI 密钥,ReconScan 会存储本地回退摘要。 - SQLite 是默认存储引擎,便于本地使用。 - 此代码库有意保持轻量级且易于自托管。 ## 许可证 MIT。参见 [LICENSE](./LICENSE)。
标签:AI安全分析, Anthropic, ARQ, AV绕过, CIS基准, DevSecOps, DNS安全, Docker, FastAPI, HTTP/HTTPS抓包, OpenAI, PDF报告, Python, Redis, SSL/TLS分析, 上游代理, 内存规避, 大模型, 威胁情报, 子域名枚举, 安全工具库, 安全防御评估, 实时处理, 密码管理, 开发者工具, 开源安全工具, 异步任务, 态势感知, 情报收集, 技术栈识别, 搜索引擎查询, 数据可视化, 数据统计, 无后门, 渗透测试辅助, 漏洞研究, 端口扫描, 系统安全, 网络安全, 网络安全, 被动侦察, 请求拦截, 逆向工具, 逆向工程平台, 隐私保护, 隐私保护