# 🔍 OSINT 侦察套件
**被动资产发现 · Threat Intel · Fingerprinting · CVEs · INCIBE-CERT · Dark Web**
[](https://python.org)
[](https://github.com/Textualize/rich)
[](LICENSE)
[](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** 创建 · 仅限授权和合规使用。