Ujjwaljain4u/reconagent

GitHub: Ujjwaljain4u/reconagent

一个仅限被动数据源的 OSINT 侦察框架,通过 26 个免费收集器聚合公开信息并进行跨源关联分析和 AI 增强处理,生成带置信度评分和 OPSEC 防御建议的侦察报告。

Stars: 0 | Forks: 0

# ReconAgent - 被动 OSINT 侦察框架 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](pyproject.toml)
ReconAgent - Home

ReconAgent - Live Scan

ReconAgent - Results
自动化侦察工具,可跨域名、用户名、邮箱、电话和文件元数据向量聚合**公开且仅限被动**的数据。 它对发现的结果进行交叉关联以获取更高置信度的信号(例如位置聚类),通过 OPSEC 层标记目标在不知情情况下暴露的信息,并生成由 LLM 总结的侦察报告。 该项目是 LLM 提示注入与红队测试框架(尚未发布,上线后会在此处添加链接)的配套项目。两个项目共享相同的模块化插件架构和“宁求诚实不求确定性”的检测理念,只是将其应用于 OSINT,而非对抗性 LLM 测试。 ## 为什么它“不是玩具” - **26 个真实的收集器**,涵盖域名、用户名、邮箱、电话、图像和 PDF 目标。大多数是免费的,不需要密钥;少数为可选密钥(VirusTotal、Abstract Phone Intelligence、Telegram Bot API)。每一个来源都是真正免费且当前可用的,由真实的公开 API 或离线库提供支持,已于 2026 年 7 月验证(请参阅 `docs/SOURCES.md` 获取完整的审计报告,包括刻意排除的来源及其原因。例如,OpenCorporates 在被错误地认为是免费的之后,结果发现需要付费计划,因此被移除)。 - **仅限被动**。没有登录墙抓取,没有泄露数据库凭证查询,没有暗网访问。这里的每一个来源都是未经身份验证的访问者或公开 API 可以访问的。这是一条刻意的法律和道德边界,而不是技术上能够构建的内容的限制。请参阅 `docs/SCOPE.md`。 - **跨源关联,而不仅仅是转储数据**。`correlator.py` 将相互一致的信号(例如 WHOIS 国家/地区、IP 地理位置和电话区域相互吻合)聚类为带有置信度评分的位置估计。 - **OPSEC 框架**。每一个代表暴露的发现都会被映射到补救建议,从而将其从纯粹的侦察工具转变为防御性安全工具。 - **针对公共部署进行安全加固**。具有基于 IP 的速率限制、上传大小上限、任务存储过期保护,以及可阻止向私有、内部和云元数据 IP 范围发起请求的 SSRF 保护。请参阅 `docs/SCOPE.md`。 - **LLM 无关的摘要器**。Ollama(本地)或 Groq(API)生成叙述性摘要并建议下一步的突破口。如果没有配置 LLM 后端,它会优雅地降级为确定性模板,因此该工具绝不会发生硬故障。 ## Web UI 深色控制台 Web UI(`webapp/`)通过 FastAPI 封装了相同的 pipeline,因此您可以通过浏览器而不是终端运行扫描。它支持拖放上传图像和 PDF,以便进行 EXIF 和元数据分析。 ``` git clone cd osint-recon-agent python3 -m venv .venv source .venv/bin/activate pip install -e ".[web]" cp .env.example .env # optional, fill in keys for the optional-key collectors uvicorn reconagent.web:app --reload # 打开 http://127.0.0.1:8000 ``` ### 可选的 API 密钥 如果缺少密钥,所有依赖密钥的收集器都会干净地跳过并显示明确的消息。没有任何程序会崩溃,您只会获得该来源较少的发现结果。将您想要的任何密钥添加到 `.env` 中(切勿提交此文件,它已被加入 gitignore): ``` ABSTRACTAPI_PHONE_KEY=... # abstractapi.com - free, 100 req/month, no card TELEGRAM_BOT_TOKEN=... # message @BotFather on Telegram, /newbot - free, instant VIRUSTOTAL_API_KEY=... # virustotal.com/gui/join-us - free, 500 req/day, no card GROQ_API_KEY=... # console.groq.com - free tier, for --llm-backend groq ``` ### 免费部署 **Render.com(推荐)**。已包含 `render.yaml`。 1. 将此仓库推送到 GitHub。 2. 在 render.com 上,进入 New,然后选择 Blueprint,接着连接该仓库。它会自动读取 `render.yaml`。选择免费计划并进行部署。 3. 在 Render 的控制面板中的 Environment 选项卡下添加您的环境变量,而不是放在仓库本身中。 4. 上线后的 URL 看起来类似于 `https://reconagent-web.onrender.com`。 为什么后端不使用 GitHub Pages 或 Vercel:GitHub Pages 仅提供静态文件服务,根本没有服务端代码。Vercel 对 Python 的支持仅限 serverless-function,存在冷启动和较短的执行时间限制,而此工具需要跨多个收集器并行运行长达数秒的实时网络扫描。这需要一个真正长期运行的进程,而 Render 或 Railway 的免费层级可以为您提供。如果您想分享 `yourname.github.io` 或 `yourname.vercel.app` 的 URL,您仍然可以在 GitHub Pages 或 Vercel 上托管一个静态落地页,并链接到处于活动状态的 Render 后端。 如果您愿意,**Railway** 的工作方式与 Render 相同。只需从 `render.yaml` 中获取相同的 buildCommand 和 startCommand,并将它们粘贴到 Railway 的服务设置中即可。 ## 快速开始 (CLI) ``` pip install -e . reconagent list-collectors reconagent run --target example.com --type domain --out report --format html --format json reconagent run --target octocat --type username --out report ``` ## AI/ML 增强(真正的技术,而非 LLM 摘要的噱头) - **基于 NER 的 PII 提取** (spaCy)。自动从个人简介和 OCR 文本中提取姓名、组织、位置、电话和电子邮件。 - **头像图像相似度匹配**(感知哈希)。标记两个不同账户何时使用相同的个人资料照片,这是一种独立于用户名的真实跨平台身份信号。 - **OCR 文本提取**(Tesseract,带有真实的图像预处理)。将上传的屏幕截图、文档和名片转换为可搜索的文本,然后再将其输入到 PII 提取中。 - **文体学写作风格比较**(经典 NLP)。这是一种跨账户比较简介写作模式的软信号。 - **模糊关联** (rapidfuzz)。能够捕获精确字符串比较遗漏的位置和实体匹配。 老实说,这其中只有一项(spaCy NER)是真正的机器学习。其余的都是真正有价值的经典算法:信号处理、字符串相似度、特征工程。它们在训练模型的意义上不是“AI”,而且在这里被准确地标记,没有被过度夸大。曾经实际上构建过一个面部检测模块,并通过修复一个真实的 OpenCV 5.0 API 移除 bug 解决了问题,但在得出它对该工具的单图像上传界面毫无价值的结论后,被刻意移除了(请参阅 `docs/SOURCES.md` 了解完整的推理过程)。 ## 架构 ``` Collector layer (26 pluggable modules, one per source) | v Aggregator (parallel run, per-collector fault isolation, timeouts) | v Correlator (cross-source agreement -> confidence-scored location clusters) | v OPSEC layer (finding -> exposure title + severity + remediation) | v LLM summarizer (Ollama/Groq/template fallback) | v Reporting (JSON + dark-themed HTML report, or the web UI) ``` 请参阅 `docs/ARCHITECTURE.md` 获取完整的设计文档。 ## 范围和法律边界 此工具刻意不实现暗网抓取、在没有授权付费 API 的情况下进行泄露数据库凭证查询、登录墙下的社交媒体抓取或人员搜索代理聚合。这些不是缺失的功能。它们是已记录的边界。请参阅 `docs/SCOPE.md`。 ## 文档 - `docs/ARCHITECTURE.md`:完整的设计文档和关键决策的依据 - `docs/SOURCES.md`:对每个数据源的审计、验证为免费的状态,以及被刻意排除的内容及其原因 - `docs/SCOPE.md`:该工具所坚持的法律和道德边界解释 ## 许可证 MIT。请参阅 LICENSE。
标签:AI特征提取, AI风险缓解, ESC4, OSINT, Python, 安全侦察, 实时处理, 情报收集, 无后门, 漏洞研究, 自动化报告