lesmes333/OSINT-Prototype

GitHub: lesmes333/OSINT-Prototype

一款 Python 编写的被动 OSINT 侦察套件,通过整合数十个公开情报源实现域名资产发现、技术指纹识别、CVE 关联、数据泄露检测和暗网监控。

Stars: 1 | Forks: 0

# 🔍 OSINT 侦察套件 **被动资产发现 · Threat Intel · Fingerprinting · CVEs · INCIBE-CERT · Dark Web** [![Python](https://img.shields.io/badge/Python-3.9%2B-blue.svg)](https://python.org) [![Rich UI](https://img.shields.io/badge/UI-rich-ff69b4.svg)](https://github.com/Textualize/rich) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Docker](https://img.shields.io/badge/Docker-opcional-blue.svg)](https://www.docker.com/) *由 **Cristian & Luisber** 创建*
## 📌 它是做什么的? 这是一款 OSINT (Open Source Intelligence) 工具,用于**发现**域名在互联网上**暴露的资产**,**识别**它们使用的**技术**,**关联漏洞 (CVEs)** 和公开的 exploits,**参考 INCIBE-CERT** 🇪🇸 并**监控暗网** (Tor)。 ## 🎯 功能特性 | 阶段 | 功能描述 | 来源 | |------|----------|---------| | **1. 发现** | 子域名 + DNS + WHOIS + 主机活动 | crt.sh, certspotter, HackerTarget, RapidDNS, Anubis, OTX, Wayback, DNSdumpster, Subfinder | | **2. Threat Intel** | 信誉、端口、地理位置、电子邮件、提及 | 13 个 API (Shodan, VirusTotal, Censys, AbuseIPDB, Hunter…) | | **2.5. 技术 + CVEs** | Fingerprinting → CVEs → exploits → **INCIBE-CERT** | Wappalyzer, NVD, Exploit-DB, **INCIBE-CERT** | | **4. 暴露和泄露** | 数据泄露 + 开源情报中的泄露 + 暗网 + Pastebin (+ 可选 Tor) | XposedOrNot, URLScan, GitHub, Pastebin Pro, IntelX, Tor | | **3. 报告** | JSON · CSV · Markdown · **可视化 HTML** | — | ### ⚡ 设计快速的架构 所有包含独立调用的阶段都会**并行执行**(子域名、13 个 API、主机验证、fingerprinting、exploits)。HTTP 请求在面对瞬时错误 (429/5xx) 时带有**自动重试**机制。 ### 🛡️ 暴露和泄露监控 (阶段 4) 在**合法可访问的**公开来源、深层网络和暗网中检测域名暴露,分为六个层级(均为防御性且非侵入式的): | 层级 | 搜索内容 | 来源 | 需要 | |------|-----------|---------|----------| | **1. 数据泄露** | 已知泄露中该域名的邮箱和凭据 | XposedOrNot (免费) · HIBP · **LeakCheck** (付费, API v2) · **Dehashed** | — / `HIBP_API_KEY` / `LEAKCHECK_API_KEY` / `DEHASHED_*` | | **2. 暗网索引** | .onion 引擎中对该域名的提及 | **Ahmia .onion · OnionLand · DarkSearch · Haystak** (均通过 Tor) · IntelX (付费) | `--tor` + 运行于 `:9050` 的 Tor / `INTELX_API_KEY` | | **3. 开源情报泄露** | 公开历史 + 仓库 + Pastebin | URLScan · GitHub · **通过 Tor 的 Pastebin/archive** (免费) · Pastebin Pro · IntelX | `URLSCAN_API_KEY`, `GITHUB_TOKEN`, `PASTEBIN_API_KEY`* | | **4. Ransomware & 网络攻击** | 域名是否出现在活跃勒索软件群体的泄露站点上 + 域名信誉 | **ransomware.live · RansomLook · Maltiverse** (均免费,无需密钥) | — | | **5. Crawling .onion** | 深度分析包含威胁内容的 `.onion` 页面 | Tor + Ahmia .onion + Haystak + Torch + 15 个额外引擎 | `--tor` + 运行于 `:9050` 的 Tor | | **6. 论坛 / 泄露站点 / Infostealers** | 在已知暗网来源中主动搜索:凭据论坛,直接访问 80+ 勒索软件泄露站点,infostealers 情报,公开的 Telegram | **直接访问 80+ 个 .onion 泄露站点** · **BreachForums** (.onion+clearnet) · **XSS.is, Nulled.to, Cracked.io, exploit.in** · **Ahmia+OnionLand+Haystak+Torch+DarkSearch** (.onion 搜索引擎) · **Hudson Rock** (免费 infostealers) · **Pulsedive** (domain intel) · **14 个公开 Telegram 频道** · DeepPaste + Ghostbin + paste.ee + Justpaste.it | `--tor`(推荐以获得最大覆盖率) | **电子邮件:** 扫描期间会从 Hunter.io **自动**发现。无需配置 `MONITOR_EMAILS`。 **无需任何付费密钥**,阶段 4 即可使用:XposedOrNot + XposedOrNot domain-level + URLScan + GitHub + Pastebin/Tor + **所有 .onion 搜索引擎** (通过 Tor) + ransomware.live + RansomLook + Maltiverse + **完整的第 6 层** (80 个泄露站点 + 论坛 + infostealers + Telegram)。 ### 🔎 IOC 提取与导出 在暗网(论坛、泄露站点、paste 站点、Telegram 频道、`.onion` 搜索引擎)收集到的所有文本都会经过 **IOC 提取器** (`ioc_extractor.py`) 处理,该提取器可检测并去重可操作的指标: | 类型 | 检测内容 | |------|---------| | **电子邮件** | 散落的邮箱,并高亮属于目标域名的邮箱 | | **凭据** | `email:password` 和 `username:password` 对 (combolist 格式) | | **域名 / 子域名** | 被提及的域名及目标的子域名 | | **IPs** | **公开**的 IPv4 和 IPv6 (排除私有/保留地址) | | **Hashes** | MD5 · SHA1 · SHA256 · SHA512 | | **加密钱包** | Bitcoin (BTC) · Ethereum (ETH) · Monero (XMR) | | **其他** | CVEs · `.onion` 服务 | IOC 会包含在 JSON 报告中,此外还会导出为专属文件,方便导入到 **SIEM/TIP**: - `_iocs_.json` — 结构化数据,包含按类型统计的数量。 - `_iocs_.csv` — 每个 IOC 占一行 (`type,value`)。 ### 🕸️ 实体图 + 置信度评分 OSINT 不是孤立的表格,而是**关系**。扫描后,`entities.py` 会将所有发现的内容(子域名、IPs、电子邮件、凭据、`.onion`、钱包、哈希、CVEs 等)**全部标准化**为一个去重后的 **实体 + 关系** 图谱。 每个实体都会积累**其来源**,并由此根据有多少来源——以及来源的可靠性——对其进行印证,从而生成**置信度评级**: | 评级 | 含义 | |-------|-------------| | **A** 🟢 | 已确认 (≥3 个来源,或 ≥2 个来源且至少包含一个可靠来源) | | **B** 🟡 | 已验证 (1 个可靠来源,或 ≥2 个来源) | | **C** 🟠 | 单一中等来源 (一个论坛/paste) | | **D** ⚪ | 推断 (一个弱来源:`.onion` 搜索引擎/基于子串的 pivoting) | **来源的可靠性**会被赋予权重(精选的 CTI 和 DNS/WHOIS 记录 = `trusted`;论坛/市场/pastes = `mixed`;`.onion` 搜索引擎/pivoting = `unknown`),因此,在经过验证的泄露事件**以及**论坛**以及**通过 pivoting 中发现的电子邮件,其评级会提升至 A,而在搜索引擎中通过子串匹配的结果则保持为 D。该图谱在 HTML 和 Markdown 报告中以表格形式呈现(*关联实体*部分),并在 JSON 中提供完整数据。 此外,**HTML 报告包含一个交互式的可视化图表** (vis-network):节点 = 按置信度评级着色的实体 (🟢 A · 🔵 B · 🟠 C · ⚪ D),边 = 关系。如何操作图表: - **移动:** 拖动一个点可重新定位,或拖动背景可平移视图。 - **缩放:** 在 Mac/笔记本电脑的**触控板上捏合**,或在图表上按 **Ctrl/⌘ + 滚动**(普通滚动仍会滚动页面,不会被劫持)。你也可以使用 **+ / − / ⤢ 全屏适配** 按钮。缩放以光标为锚点。 - **高亮连接:** **单击**一个点可仅高亮该节点及其相邻节点,并淡化其他节点。单击背景或“全屏适配”可还原。 - **搜索:** 在**搜索框**中输入(子域名、IP、电子邮件、技术等),图表将高亮并聚焦于匹配的实体(基于完整数值搜索,而非截断后的标签)。 如果没有网络连接加载该库,则会显示警告,并保留包含相同数据的表格。 ### 🌐 激进的多语言搜索 泄露搜索会将域名与真实的**英语、西班牙语和俄语**泄露词汇表相结合 (`generate_breach_queries()`):`leak`, `dump`, `database`, `combolist`, `filtracion`, `contraseñas`, `слив`, `база`, `дамп`……以及带有年份、`www`、`@domain` 和 dump 文件模式的变体。这能挖掘出仅搜索域名时无法发现的 dump。 ### 🗂️ 论坛和市场登记(可配置) 在泄露论坛和凭据市场中的搜索由 `darkweb_forums.py` 中的**数据驱动**。 **原因:** 论坛的 `.onion` 地址会不断变化(查封、更名、镜像)。硬编码明天可能就会失效的地址只会导致超时和虚假的覆盖率。因此: - **稳定的元数据**(名称、语言、内容类型、clearnet 镜像、是否需要登录/Cloudflare)保存在代码中。 - **易变的 `.onion` 地址**从外部文件 **`darkweb_onions.json`**(已被 gitignore,绝不上传)加载,你需要使用当前验证过的地址自行填充它: ``` cp darkweb_onions.example.json darkweb_onions.json # 编辑 darkweb_onions.json 并粘贴每个论坛当前的 .onion # (或使用变量 DARKWEB_ONIONS_FILE 指向其他路径) ``` - 对于**未配置地址**的论坛,同样会通过 **`.onion` 搜索引擎** (Ahmia/Torch) 中的提及来发现。每个命中的论坛结果都会经过 IOC 提取器处理。 **🩺 `.onion` 健康状况与自动发现**(使用 `--tor`):由于 `.onion` 地址会不断轮换、更改或失效,在每次扫描时该工具都会: - **监控**已知 `.onion`(你配置的论坛 + 搜索引擎)的**健康状况**并进行分类:🟢 运行正常 · 🟡 被封锁 (captcha/反机器人) · 🔴 已失效(可能已轮换或被查封)。如果有任何地址失效或被封锁,报告会**发出警告**,提醒你更新 `darkweb_onions.json`。 - **通过爬取精选目录**(**The Hidden Wiki**、tortaxi 等)**发现新的 `.onion`**。找到的地址会在报告中作为*发现的种子*显示——你可以用它们替换掉已失效的地址。你可以通过复制 `darkweb_seeds.example.json` → `darkweb_seeds.json` 并粘贴当前有效地址来**添加更多目录**(推荐:**dark.fail** 和 **Daunt**,它们是经过 PGP 验证的镜像列表)。 这两项内容都会出现在 HTML 和 Markdown 报告中(*受监控的 .onion 健康状况*和*发现的 .onion 种子*部分)。 ### 📨 Telegram 监控 Telegram 是最活跃的泄露来源之一。该工具通过访问公开的网络历史记录 (`t.me/s/{channel}`,无需登录) 来监控 **14 个公开的**泄露/combolist 频道(以及你添加的任何频道): - 使用原生搜索器 (`?q=`) 在频道**历史记录**中搜索域名,而不仅仅是在最近的消息中。 - 解析每一条匹配的**消息**(包含其**日期**和**永久链接**),并对其应用 **IOC 提取器** → 按消息提取凭据、电子邮件、IPs、哈希等。 - **添加你自己的频道**,只需在 `.env` 文件中设置变量 `TELEGRAM_CHANNELS`(接受 `@channel`、`channel` 或 `t.me/channel` 格式,以逗号分隔): TELEGRAM_CHANNELS="@leakzone, t.me/breach_db, mychannel" 在 HTML 报中,消息将显示日期以及指向原帖的直接链接。 ### 🥷 OPSEC 与弹性 对 `.onion` 的访问是隐蔽的且具有容错能力 (`tor_utils.py`): - **轮换 User-Agents**(针对 `.onion` 使用 Tor Browser)。 - 按会话**隔离线路**(通过 SOCKS 认证实现 stream isolation):分散负载并隔离已失效的 `.onion` 服务。 - **带有 backoff + jitter 的重试机制**,并在超时时进行线路轮换(hidden services 经常失败;单次尝试会丢失真实命中)。 ### 🇪🇸 集成 INCIBE-CERT 每个检测到的 CVE 都会**链接到其西班牙语的 INCIBE-CERT *Alerta Temprana*(早期预警)详情页面**(并验证链接是否存在)。处于近期早期预警中的漏洞会用 ⚠️ 标记,此外还会将检测到的技术与近期 feed 进行交叉比对。 ### 🩺 自动诊断 扫描结束后,该工具会指出哪些 **API keys 已过期/无效或没有配额**(包含用于续订和更新 `.env` 的链接),以及缺少哪些**外部工具**(包含安装命令)。**扫描永远不会因为这些错误而停止**:它会继续执行并记录这些问题。 ## 🖥️ 终端可视化界面 ``` ╔═════════════════════════════ OSINT RECON SUITE ══════════════════════════════╗ ║ ███████ ███████ ██ ███ ██ ████████ ║ ║ ... ★ Created by Cristian & Luisber ★ ║ ╚══════════════════════════════════════════════════════════════════════════════╝ ``` 包含各阶段的面板、带颜色的表格、**着色的严重程度** (🔴 CRITICAL · 🟠 HIGH · 🟡 MEDIUM · 🟢 LOW)、需要续订的密钥警告以及最终的摘要面板。如果没有安装 `rich`,它会自动降级为纯文本。 **HTML 报告**是自包含的(暗色主题、摘要卡片、严重程度徽章),可以直接在浏览器中打开。最顶部包含一个 **📋 执行摘要**:一眼即可突出显示可操作的信息——严重/高危漏洞(以及其中有多少公开的 exploit)、需要续订的 API keys、在暗网中的暴露情况以及自上次扫描以来的新实体——每个点上都带有跳转到相应部分的链接。如果没有严重问题,它会明确说明 (✅),而不是留白。 ## 🚀 安装说明 安装分为**两个层级**: 1. **核心组件(必需)** → Python + `requirements.txt` 中的依赖。完成此步骤后,即可使用子域名发现、DNS、WHOIS、Threat Intel 和生成报告功能。 2. **外部工具(可选)** → Docker、Tor、subfinder 和 searchsploit。只有在需要使用 fingerprinting、暗网或 exploits 阶段时才需要安装。 ### 🧱 步骤 0 — 系统先决条件 首先,请确保你的机器上已安装: | 要求 | 版本 | 检查命令 | 如果缺失如何安装 | |-----------|---------|-----------|-------------------| | **Python** | 3.9 或更高版本 | `python3 --version` | macOS: `brew install python` · Ubuntu/Debian: `sudo apt install python3 python3-venv python3-pip` · Windows: [python.org](https://www.python.org/downloads/) (勾选 *“Add to PATH”*) | | **pip** | 较新版本 | `python3 -m pip --version` | 随 Python 一起提供;通过 `python3 -m pip install --upgrade pip` 更新 | | **git** | 任意版本 | `git --version` | macOS: `brew install git` · Ubuntu/Debian: `sudo apt install git` · Windows: [git-scm.com](https://git-scm.com/) | ### ⚙️ 步骤 1 — 安装核心组件(必需) #### 选项 A — 自动脚本 ``` git clone https://github.com/lesmes333/OSINT-Prototype.git cd OSINT-Prototype bash install.sh ``` 该脚本会创建虚拟环境、安装依赖并准备好 `.env`。 #### 选项 B — 手动安装 ``` # 1) 克隆仓库 git clone https://github.com/lesmes333/OSINT-Prototype.git cd OSINT-Prototype # 2) 创建并激活虚拟环境 python3 -m venv venv source venv/bin/activate # Windows (PowerShell): venv\Scripts\Activate.ps1 # Windows (CMD): venv\Scripts\activate.bat # 3) 更新 pip 并安装 Python 依赖项 python3 -m pip install --upgrade pip pip install -r requirements.txt # 4)(可选但推荐)配置 API keys cp .env.example .env # Windows: copy .env.example .env nano .env # añade tus claves: Shodan, VirusTotal, Hunter… ``` #### ▶️ 激活虚拟环境并检查是否正常工作 **每次**打开新的终端使用此工具时,请先激活虚拟环境: ``` cd OSINT-Prototype source venv/bin/activate # Windows (PowerShell): venv\Scripts\Activate.ps1 ``` 你会看到提示符变为 `(venv)`。之后你就可以使用 `python`(不需要加 `3`)。退出虚拟环境请使用:`deactivate`。 ``` # 在激活的 venv 下: python main.py -d ejemplo.com -y --no-darkweb --no-fingerprint ``` ### 🧰 步骤 2 — 外部工具(可选,根据你需要的阶段) 每个工具都会启用**特定的阶段**。只需安装你需要的。该工具会自动检测哪些可用,并在扫描结束后的诊断信息中告诉你缺少哪些以及如何安装。 | 工具 | 启用阶段 | macOS (Homebrew) | Linux (Debian/Ubuntu) | Windows | |-------------|----------|------------------|------------------------|---------| | **subfinder** | 发现更多子域名 | `brew install subfinder` | `sudo apt install subfinder` *(或通过下面的 Go 安装)* | `go install` (见下方) 或 [release](https://github.com/projectdiscovery/subfinder/releases) | | **Docker** | Fingerprinting (Wappalyzer) | [Docker Desktop](https://www.docker.com/products/docker-desktop/) | `sudo apt install docker.io` + `sudo usermod -aG docker $USER` | [Docker Desktop](https://www.docker.com/products/docker-desktop/) | | **searchsploit** | Exploits (Exploit-DB) | `brew install exploitdb` | 从 GitLab 克隆 (见下方) | [在 WSL 中使用 exploitdb](https://gitlab.com/exploit-database/exploitdb) | | **Tor** | Dark web | `brew install tor` + `brew services start tor` | `sudo apt install tor` + `sudo systemctl start tor` | [Tor Expert Bundle](https://www.torproject.org/download/tor/) | #### 🔍 配置 fingerprinting (Docker + wappalyzer-next) Fingerprinting 需要**运行 Docker** 并且已构建好 **wappalyzer-next** 容器: ``` # 1) 启动 Docker(macOS/Windows 上的 Docker Desktop,或 Linux 上的服务) docker info # debe responder sin error # 2) 在项目中克隆 wappalyzer-next 并构建镜像 git clone https://github.com/s0md3v/wappalyzer-next.git scripts/wappalyzer-next cd scripts/wappalyzer-next docker compose build cd ../.. ``` #### 🧅 验证 Tor 是否正在运行 暗网阶段需要 Tor 在 `127.0.0.1:9050` 上监听: ``` # macOS: brew services start tor # Linux: sudo systemctl start tor # 检查端口: nc -z 127.0.0.1 9050 && echo "Tor OK" || echo "Tor NO está corriendo" ``` ### ✅ 需要安装的内容快速摘要 | 为了实现这个… | 你需要 | |------------|-----------| | 基础功能 (子域名、DNS、WHOIS、Threat Intel、报告) | **Python 3.9+** + `pip install -r requirements.txt` | | 更多子域名 | **subfinder** | | 技术 + CVEs + INCIBE-CERT | **Docker** + **wappalyzer-next** *(以及 `nvdlib`,已包含在 requirements 中)* | | 公开 exploits | **searchsploit** (exploitdb) | | Dark web | 运行在 `:9050` 的 **Tor** *(以及 `osint-darkweb-pkg`,已包含在 requirements 中)* | ## ▶️ 用法 ### 交互式(会询问域名和阶段) ``` python main.py ``` ### 自动 / 非交互模式(适合侦察和批处理) ``` # 发现 + Threat Intel,无需提问 python main.py -d ejemplo.com -y # 所有阶段(fingerprint + CVEs + INCIBE + 暗网) python main.py -d ejemplo.com --all # 激活特定阶段 python main.py -d ejemplo.com --fingerprint --no-darkweb # 批量域名(每行一个),60个线程,无 ICMP/TCP 验证 python main.py -f dominios.txt -y --no-active -t 60 # 选择输出格式和文件夹 python main.py ejemplo.com --all --formats json,html -o resultados ``` ### 命令选项 (`python main.py -h`) | 选项 | 描述 | |--------|-------------| | `-d, --domain` | 要分析的目标域名(也支持作为位置参数)。 | | `-f, --file` | 包含域名列表的文件(每行一个)。 | | `-y, --yes` | 非交互模式:不询问任何问题。 | | `--all` | 运行所有阶段。 | | `--fingerprint / --no-fingerprint` | 启用/禁用 fingerprinting + CVEs + INCIBE。 | | `--darkweb / --no-darkweb` | 启用/禁用暴露监控(数据泄露、Ahmia、pastes)。 | | `--tor` | 高级层:通过 Tor 进行 `.onion` 爬取(需要在 `:9050` 上运行 Tor)。默认禁用。 | | `--browser` | 使用 Firefox/Playwright 渲染带有 JavaScript 的页面(作为暗网的备选方案,例如 Telegram)。默认禁用:消耗内存。需要运行 `playwright install firefox`。 | | `--pivot` | Pivoting:在暗网扫描后,使用发现的 IOC(相关的电子邮件、凭据和域名/`.onion`)作为新查询在论坛和 `.onion` 搜索引擎中重新搜索。会增加耗时。 | | `--no-active` | 跳过 ICMP/TCP 验证。 | | `--no-diff` | 不与上次扫描进行比较(禁用监控)。 | | `-t, --threads` | 并发线程数 (默认: 30)。 | | `--formats` | `json,csv,md,html` (默认: 全部)。 | | `-o, --output-dir` | 输出文件夹 (默认: `outputs`)。 | | `--max-fp-urls` | Fingerprinting 最大 URLs 数 (默认: 25)。 | | `-q / -v` | 最少输出 / 详细输出。 | ### ⚡ 性能与稳健性 - **阶段并行执行:** fingerprinting (阶段 2.5) 和暴露/暗网 (阶段 4) 是相互独立的,会**重叠执行**,因此总扫描时间实际上与两者中最慢的阶段耗时相同。 - **防卡死机制:** 每个并行扫描都有一个**全局时间预算**。如果某个响应缓慢的来源(例如已失效的 `.onion`)没有响应,将返回部分结果并放弃卡住的线程——该阶段绝不会卡死。可通过环境变量调整: | 变量 | 默认 | 控制内容 | |---|---|---| | `EXPOSURE_BUDGET_S` | `240` | 整个阶段 4 的全局时间预算。 | | `DARKWEB_BUDGET_S` | `150` | 暗网来源扫描。 | | `TOR_ENGINES_BUDGET_S` | `90` | 仅针对 `.onion` 搜索引擎。 | | `BROWSER_MIN_RAM_MB` | `700` | 启动 Firefox (`--browser`) 所需的最低空闲内存。如果低于此值,则不启动 (防 OOM 保护)。 | | `BROWSER_PAGE_TIMEOUT` | `30` | 每个页面渲染的最长时间。 | | `PIVOT_MAX_PER_TYPE` | `3` | Pivot (`--pivot`) 时每种类型 (邮箱/凭据/域名) 的最大种子数。 | | `DARKWEB_ONIONS_FILE` | `darkweb_onions.json` | 包含论坛已验证 `.onion` 地址的文件 (gitignored) 路径。 | ### 🔁 监控模式(扫描结果差异对比) 每次分析域名时,该工具都会自动与同一域名的上一次扫描进行**比较**(在 `outputs/` 中查找该域名最近的 JSON 资产文件,遍历每次扫描的子文件夹并按修改日期选择),并高亮显示: - 🆕 **新增**和 ➖ **消失**的**子域名** - 🔴 **新发现的 CVEs** - 🔌 **新开放的端口** 摘要会显示在屏幕上,并保存在 JSON 文件中 (`changes_since_last_scan`)。可以使用 `--no-diff` 禁用。 非常适合使用 **cron** 进行定期监控。示例:每天早上 8:00 扫描并将历史记录保存在 `outputs/` 中: ``` 0 8 * * * cd /ruta/OSINT-Prototype && venv/bin/python main.py -d ejemplo.com -y --all >> outputs/cron.log 2>&1 ``` 由于保留了所有带日期的 JSON,每次执行都会与前一次比较,你就能看到新出现的项。 ## 📄 生成的报告 每次扫描都会在 `outputs/`(或使用 `-o` 指定的文件夹)内创建**其专属的子文件夹**,日期采用欧洲格式:`outputs/_/`。文件夹内的文件名以域名开头,方便一目了然地识别: | 文件 | 内容 | |---------|-----------| | `_report_.html` | **可视化报告** (在浏览器中打开):包含可操作信息的**执行摘要**置顶、诊断、子域名、DNS、WHOIS、技术、包含严重程度和 INCIBE-CERT 链接的 CVEs、暗网以及**交互式实体图**(支持触控板捏合缩放、搜索和高亮连接)。 | | `_report_.md` | Markdown 格式的相同内容 (适合 GitHub/快速阅读)。 | | `_assets_.json` | 完整且结构化的数据 (用于自动化)。 | | `_subdomains_.csv` | 子域名列表及其来源。 | | `_iocs_.json` | 从暗网提取的 **IOCs**(电子邮件、凭据、IPs、哈希、钱包、onions),按类型统计。仅在检测到时生成。 | | `_iocs_.csv` | 相同的 IOCs,每个指标占一行 (`type,value`) — 可直接用于 SIEM/TIP。 | ## 🔑 配置 API keys (`.env`) 将 `.env.example` 复制到 `.env` 并填入你拥有的密钥。如果某个密钥过期或耗尽配额,该工具会在扫描结束时**提醒你**,并提供切的续订链接: **免费密钥**(无需付费): | 服务 | 变量 | 获取密钥 | |----------|----------|---------------| | Shodan | `SHODAN_API_KEY` | https://account.shodan.io | | VirusTotal | `VIRUSTOTAL_API_KEY` | https://www.virustotal.com/gui/my-apikey | | Censys | `CENSYS_PAT` | https://platform.censys.io — 见下方说明 | | AlienVault OTX | `ALIENVAULT_API_KEY` | https://otx.alienvault.com/settings | | Hunter.io | `HUNTER_API_KEY` | https://hunter.io/api-keys (每月免费 25 次搜索) | | IPinfo | `IPINFO_API_KEY` | https://ipinfo.io/account/token (每月免费 5 万次) | | AbuseIPDB | `ABUSEIPDB_API_KEY` | https://www.abuseipdb.com/account/api | | urlscan.io | `URLSCAN_API_KEY` | https://urlscan.io/user/profile/ | | NVD | `NVD_API_KEY` | https://nvd.nist.gov/developers/request-an-api-key | | GitHub | `GITHUB_TOKEN` | https://github.com/settings/tokens (scope: `public_repo`) | | GitLab | `GITLAB_TOKEN` | https://gitlab.com/-/profile/personal_access_tokens | **可选的付费密钥**(扩展阶段 4 — 暴露监控): | 服务 | 变量 | 成本 | 提供内容 | |----------|----------|-------|------------| | **Pastebin Pro** | `PASTEBIN_API_KEY` | $8.95/月 | 实时监控 Pastebin feed。获取地址:https://pastebin.com/pro | | **Intelligence X** | `INTELX_API_KEY` | 约 1800 USD/年起 | 搜索暗网、历史 paste 站点、暴露的 S3 buckets、黑客论坛。免费的开源计划**不包含** API 访问权限。获取地址:https://intelx.io/product | | **Have I Been Pwned** | `HIBP_API_KEY` | 约 3.50 USD/月起 | 按电子邮件搜索数据泄露(丰富免费的 XposedOrNot)。获取地址:https://haveibeenpwned.com/API/Key | | **Dehashed** | `DEHASHED_EMAIL` + `DEHASHED_API_KEY` | $5.49/月 | 最大的泄露凭据数据库(约 150 亿条记录)。按域名搜索可返回电子邮件、用户名、密码、IPs 和真实姓名。获取地址:https://dehashed.com/profile | | **LeakCheck** | `LEAKCHECK_API_KEY` | 付费计划 | 按域名搜索泄露凭据。⚠️ 注册是免费的并会提供有效密钥,**但 API v2 的域名搜索需要付费计划**(如果没有,会返回 403 `Active plan required`)。获取地址:https://leakcheck.io | ## 🧩 故障排除 | 症状 | 原因 / 解决方案 | |---------|------------------| | `Fingerprinting skipped: Docker not available` | 启动 Docker Desktop 并构建 wappalyzer-next (见安装说明)。 | | `Tor not running` | 运行 `brew services start tor` 或 `systemctl start tor`。检查 9050 端口。 | | 诊断中显示正常的 API 很少 | 没有密钥时属于正常现象;请在 `.env` 中添加。发现功能依然正常工作。 | | 找不到 `searchsploit` | `apt install exploitdb` 在 Ubuntu 上不存在。从 GitLab 克隆:`sudo git clone https://gitlab.com/exploit-database/exploitdb.git /opt/exploitdb && sudo ln -sf /opt/exploitdb/searchsploit /usr/local/bin/searchsploit`。在 macOS 上:`brew install exploitdb`。 | | Censys 返回 401/403 | 检查 `CENSYS_PAT` 和 `CENSYS_ORG_ID` 是否正确 (platform.censys.io 上的 Platform API)。除 token 外,Organization ID 也是必填项。 | | Shodan 不返回端口 | Shodan 的**免费 (OSS) 计划**不允许通过 API 进行主机查询;该工具使用 **InternetDB** (免费,无需密钥) 作为替代。如果依然为空,说明 **Shodan 没有该 IP 的数据** (这不是错误)。如果使用付费密钥,会自动使用完整的 endpoint。 | | DNS 记录为空 | 你的网络/resolver 封锁了出站的 53 端口;尝试更换其他网络。 | | CVE 搜索缓慢 | 如果没有 `NVD_API_KEY`,速率限制会非常严格(暂停 6 秒)。添加密钥以加快速度。 | | Ahmia 不返回结果 | Clearnet 上的 Ahmia.fi 在**没有结果**时会重定向到其主页(需要 Tor Browser)。该工具直接通过 Tor 访问 **Ahmia .onion** —— 请使用 `--tor` 来启用它。 | | IntelX 返回 403 | 免费的“Open Source Intelligence”计划**不包含 API 访问权限** (`/intelligent/search` 返回 403)。需要付费计划。 | | 使用 Pro key 但 Pastebin 无结果 | 验证你的 IP 是否在 Pro 账户的白名单中。如果没有 key,将使用通过 Tor 访问的公开文件(免费替代方案)。 | | Censys 返回 403 | Censys 的 Free Tier **不允许通过 API 进行搜索 endpoint**(仅限 Web UI)。扫描会继续使用其他来源。 | | LeakCheck 403 (`Active plan required`) | API v2 的域名搜索**需要付费计划**;免费注册不包含此功能。该工具会检测到此情况并继续执行而不使用此来源。 | | `playwright install chromium` 失败 | 在网络受限的 VMs 中,Chromium 的 CDN 可能被屏蔽。请改用 `playwright install firefox`。 | ## 🗂️ 项目结构 ``` OSINT-Prototype/ ├── main.py # CLI + orquestación de fases (interfaz rich) ├── requirements.txt ├── .env.example ├── install.sh └── scripts/modules/ ├── utils.py # Concurrencia, sesión HTTP con reintentos, logging ├── ui.py # Interfaz visual de terminal (rich) ├── discovery.py # Subdominios (9 fuentes en paralelo) + DNS + WHOIS ├── active_check.py # Actividad de hosts (ICMP/TCP concurrente) ├── threat_intel.py # 13 APIs de threat intelligence en paralelo ├── fingerprint.py # Wappalyzer (Docker) en paralelo ├── cve_exploit.py # CVEs (NVD) + exploits (Exploit-DB) + INCIBE ├── incibe.py # Integración con INCIBE-CERT (alerta temprana) ├── diffing.py # Modo monitorización: compara con el escaneo anterior ├── diagnostics.py # Estado de API keys y herramientas ├── exposure.py # Fase 4: brechas · dark web (6 capas) · ransomware · LeakCheck · IOCs ├── darkweb_monitor.py # Crawling .onion via Tor (Ahmia/Haystak/Torch + multi-motor) ├── darkweb_sources.py # Capa 6: leak sites de ransomware · foros · infostealers · Telegram ├── darkweb_forums.py # Registro data-driven de foros/mercados (.onion desde config externa) ├── tor_utils.py # OPSEC/resiliencia Tor: rotación UA · aislamiento de circuito · reintentos ├── ioc_extractor.py # Extracción y export de IOCs (emails, credenciales, IPs, hashes, wallets…) └── report.py # Informes JSON / CSV / Markdown / HTML ```
**OSINT Recon Suite** · 由 **Cristian & Luisber** 创建 · 仅限授权和合规使用。
标签:ESC4, GitHub, OSINT, Python, 威胁情报, 实时处理, 开发者工具, 无后门, 暗网监控, 请求拦截, 逆向工具