heanczko311299/recon-osint

GitHub: heanczko311299/recon-osint

遵循 eWPTX 方法论的被动 OSINT 侦察框架,整合多源情报收集与 AI 报告生成,用于 Web 渗透测试前期资产测绘。

Stars: 0 | Forks: 0

# Recon-OSINT ![Python](https://img.shields.io/badge/Python-3.10+-blue?style=flat-square&logo=python) ![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20Windows-lightgrey?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![Version](https://img.shields.io/badge/Version-2.0.0-red?style=flat-square) ![Languages](https://img.shields.io/badge/Languages-EN%20%7C%20ES%20%7C%20DE%20%7C%20FR%20%7C%20NL-orange?style=flat-square) 专为 Web 渗透测试初始侦察阶段设计的被动 OSINT 侦察框架,遵循 **eWPTX 方法论**。 该工具仅从**公开来源**收集开源情报 —— 它不会与目标系统进行任何直接接触。 ## 法律声明 ## 功能介绍 Recon-OSINT 用于在任何主动测试开始之前,描绘目标的公开足迹。 | 内容 | 方式 | 被动? | |------|-----|----------| | 子域名枚举 | Sublist3r, crt.sh, Wayback CDX | ✅ 是 | | 历史 URL 与文件泄露 | Wayback Machine CDX API | ✅ 是 | | 已索引的敏感文档 | DuckDuckGo dorks | ✅ 是 | | 暴露的邮箱 | DuckDuckGo `"@domain"` dork | ✅ 是 | | 公共仓库中的 Secrets | GitHub search API | ✅ 是 | ## 快速开始 ``` # 1. 安装 sudo python3 install.py # 2. 域名侦察 (子域名) recon-osint run example.com --module domain # 3. 敏感文件暴露 recon-osint run example.com --module sensitive # 4. 全面侦察 + AI 报告 recon-osint run example.com --module all ``` ## 模块 ### `--module domain` 从三个独立来源进行被动子域名枚举。 | 来源 | 发现内容 | 输出文件 | |--------|--------------|-------------| | Sublist3r | 通过搜索引擎与 DNS 获取子域名 | `sublist3r.md` | | crt.sh | 来自 TLS 证书日志的子域名 | `crtsh.md` | | Wayback Machine CDX | 历史存档 URL 中出现的子域名 | `wayback_subdomains.md` | | AI (OpenAI) | 面向渗透测试的解读 | `domain_report_{domain}.pdf` | ### `--module sensitive` 被动发现暴露的文件、凭证和敏感数据。 | 来源 | 发现内容 | 输出文件 | |--------|--------------|-------------| | Wayback Machine CDX | 10 000 条历史存档 URL 中按扩展名筛选的文件及敏感路径 | `wayback_sensitive.md` | | DuckDuckGo dorks | 按文件类型索引的文件、敏感关键词、暴露的邮箱 | `dorks.md` | | GitHub | 公共仓库及代码中的 Secrets/敏感文件 | `github.md` | | AI (OpenAI) | 面向渗透测试的解读 | `sensitive_report_{domain}.pdf` | ### `--module all` 按顺序运行上述两个模块。Wayback Machine 仅查询一次(结果复用)。生成一份额外的 AI 综合执行报告。 | 输出 | |--------| | 所有单独的 `.md` 文件 | | `domain_report_{domain}.pdf` | | `sensitive_report_{domain}.pdf` | | `full_report_{domain}.pdf` — AI 渗透测试路线图 | **结果保存至:** `results/recon//` ## AI 分析 在每个模块结束时,AI 会读取所有生成的 `.md` 文件并生成面向渗透测试的解读: - 在主动阶段应优先测试哪些子域名 - 敏感发现揭示了基础设施的哪些信息 - 暴露的数据如何在 Web 渗透测试中被利用 - 具体的 eWPTX 对齐渗透测试路线图 需要在 `.env` 中设置 `OPENAI_API_KEY`。如果没有,工具仍可完全运行 —— 只是会跳过 AI 分析部分。 ## 配置 在项目根目录创建一个 `.env` 文件: ``` # AI 分析所需 OPENAI_API_KEY=sk-... OPENAI_MODEL=gpt-4o-mini AI_TEMPERATURE=0.3 # GitHub 代码搜索所需 GITHUB_TOKEN=ghp_... ``` ### GitHub token 生成地址:**GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)** 最小权限范围:**`public_repo`**(对公共仓库的只读访问权限) 如果没有 token,GitHub 模块将仅运行仓库搜索 —— 该功能不需要身份验证。 ## OSINT 标准 编辑 `config/osint_criteria.md` 以自定义工具的搜索目标。无需修改代码。 ``` [wayback] extensions = .sql, .env, .bak, .log, .xml, .json, .pem... sensitive_paths = /admin, /backup, /.git, /.env, /api... [dorks] filetypes = pdf, doc, xlsx, xml, sql, env, pem, key... sensitive = password, credentials, apikey, token... [github] secrets = api_key, password, token, aws_key, ssh_key... filetypes = .env, .pem, docker-compose.yml, id_rsa... ``` ## 技术说明 ### Wayback Machine 使用带有 `matchType=prefix` 参数的 CDX API —— 这与 `waybackpy --known-urls` 使用的查询策略相同。对于大多数域名,`matchType=domain` 通配符查询返回 0 个结果;前缀匹配(prefix)才是正确的方法。每次扫描最多获取 10 000 个 URL,并根据敏感扩展名和路径进行过滤。 ### DuckDuckGo Dorks 使用 `ddgs` 包(`duckduckgo_search` 的重命名后续版本)。`requirements.txt` 和 `install.py` 直接引用 `ddgs` 以避免弃用警告。DuckDuckGo 对 `filetype:` 的支持不如 Google 精确 —— 结果因域名而异,对于较小的目标可能较为稀少。 ## 语言 首次运行时,工具会询问使用哪种语言: ``` [1] English [2] Español [3] Deutsch [4] Français [5] Nederlands ``` 偏好设置保存在 `.lang` 中。可随时使用 `recon-osint lang` 更改。 报告和 AI 分析将以选定的语言生成。 ## 项目结构 ``` recon-osint/ ├── recon.py Entry point ├── install.py Bootstrap installer ├── uninstall.py Clean uninstaller ├── pyproject.toml ├── requirements.txt ├── .gitignore ├── lang/ │ ├── en.yml │ ├── es.yml │ ├── de.yml │ ├── fr.yml │ └── nl.yml ├── config/ │ └── osint_criteria.md Edit to customise what to look for ├── core/ │ ├── banner.py │ ├── lang.py │ └── utils.py └── modules/ ├── mod_sublist3r.py ├── mod_crtsh.py ├── mod_wayback.py Subdomains + sensitive (single CDX query, reused) ├── mod_dorks.py DuckDuckGo via ddgs ├── mod_github.py ├── ai_analyzer.py ├── cli.py ├── config.py ├── criteria.py ├── reporter.py └── scanner.py ``` ## 面向开发者 ### 添加新语言 1. 复制 `lang/en.yml` → `lang/sv.yml` 2. 设置 `language_name` 和 `language_code` 3. 翻译所有值 —— 切勿翻译键 4. 完整保留所有 `{variable}` 占位符 5. 该语言将自动出现在菜单中 —— 无需修改代码 ### 向模块添加新来源 1. 在相关的 `mod_*.py` 中添加您的函数 2. 从 `run()` 调用它并将结果合并到字典中 3. 将您的来源添加到 `to_markdown()` ### 添加新模块 1. 创建 `modules/mod_newmodule.py`,包含 `run(domain)` 和 `to_markdown(data, lang_t)` 2. 在 `modules/scanner.py` 中注册它 3. 将新的 CLI 键添加到所有 `lang/*.yml` 文件中 ## 贡献 欢迎提交 Pull request。 - **新语言** —— 翻译 `lang/en.yml` 并提交 PR - **新来源** —— 附带测试结果扩展现有模块 - **Bug 报告** —— 提交 issue 并附上复现步骤 - **标准更新** —— 更新 `config/osint_criteria.md` ## 许可证 MIT —— 详见 [LICENSE](LICENSE) *为安全专业人员打造。被动侦察,专业结果。* *围绕 eWPTX Web 渗透测试方法论设计。*
标签:AI报告生成, DuckDuckGo Dorks, ESC4, eWPTX, GitHub Secrets, IPv6支持, OSINT, Petitpotam, Python, Wayback Machine, Web安全, 反汇编, 子域名挖掘, 子域名枚举, 安全工具库, 实时处理, 对称加密, 敏感文件泄露, 无后门, 系统安全, 网络安全, 自动化审计, 蓝队分析, 被动侦察, 证书透明度日志, 逆向工具, 隐私保护