ReconScan 是一个开源的被动侦察扫描器,采用 FastAPI 后端、异步 worker 流水线和单页前端。你可以在 https://recon-scan.vercel.app/ 查看已部署的站点。
其核心在于快速信号:运行一次扫描,获取逐模块的发现结果,并获得一份 AI 摘要,该摘要现已可导出为精美的 PDF 报告。
如果你只想快速运行:
./start.sh
该脚本会执行以下操作:
.env,则从 .env.example 创建。.venv。requirements.txt 安装依赖。http://localhost:8000 上以热重载方式启动 FastAPI。USE_ARQ_QUEUE=false,以便无 Redis 的本地启动更简单。使用 Ctrl+C 停止。
./start-docker.sh
该脚本会执行以下操作:
.env,则从 .env.example 创建。cp .env.example .env
docker compose up --build
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
arq app.worker.WorkerSettings
http://localhost:8000
安装测试依赖:
pip install -r requirements-dev.txt
运行完整测试套件:
pytest -q
扫描完成后,在界面中点击 Download PDF。
后端端点:
GET /scans/{scan_id}/report.pdf报告包括:
GET /healthPOST /scans
{ "target": "example.com" }{ "target": "example.com", "byoapi_key": "...", "byoapi_provider": "your_provider" }ALLOW_BYO_API_KEY=true,否则拒绝 byoapi_keyuser_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(默认:)欢迎贡献,尤其是围绕被动侦察模块、报告、前端 UX 和测试覆盖方面。
在提交拉取请求之前,请阅读完整的贡献指南:
MIT。参见 LICENSE。
falseOPENROUTER_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY(可选)VIRUSTOTAL_API_KEY、GOOGLE_SAFE_BROWSING_API_KEY(可选)