kahz12/ScannUs
GitHub: kahz12/ScannUs
ScannUs 是一个 AI 驱动的模块化 OSINT 框架,用于自动化开源情报收集、分析和报告生成。
Stars: 0 | Forks: 0
```
____ _ _
/ ___| ___ __ _ _ __ _ __ | | | |___
\___ \ / __/ _` | '_ \| '_ \| | | / __|
___) | (_| (_| | | | | | | | |_| \__ \
|____/ \___\__,_|_| |_|_| |_|\___/|___/
```
**高级 OSINT 与网络情报框架**
[](https://python.org)
[](LICENSE)
[]()
[]()
## 目录
1. [概述](#overview)
2. [架构](#architecture)
3. [功能](#features)
4. [安装](#installation)
5. [配置](#configuration)
6. [使用](#usage)
7. [项目结构](#project-structure)
8. [缓存与存储](#cache--storage)
9. [免责声明](#disclaimer)
## 概述
**ScannUs** 是一个模块化 OSINT 框架,它将多引擎搜索、AI 辅助规划、泄露情报查询、域名侦察、深度 PII 提取和证据收集统一到一个交互式终端背后。
它能将原始线索——一个邮箱、一个用户名、一个域名——转化为结构化、可重复的调查:可缓存、可导出、并随时准备分享。
### 亮点
| 能力 | 您将获得 |
|---|---|
| **多引擎搜索** | Google CSE · DuckDuckGo · Brave —— 持久化 SQLite 缓存 |
| **四家 AI 提供商** | Gemini · GPT-4o · Claude Sonnet 4.6 · 本地 Ollama —— 令牌流式传输 |
| **AI 查询规划器** | 使用 22 个白名单工具的 ReAct 风格多步调查计划 |
| **泄露情报** | Have I Been Pwned —— 账户、域名、泄露、k-匿名密码 |
| **域名侦察** | WHOIS + DNS + TLS + 安全头 + crt.sh 子域名 + Shodan |
| **PII 与密钥提取** | AWS/GitHub/Slack/Stripe 密钥 · JWT · BTC/ETH · IBAN · SSN/CPF/SIN |
| **用户名枚举** | Sherlock / Maigret —— 400+ 社交网站 |
| **Wayback Machine** | 快照获取 · PII 提取 · 日期间统一差异比较 |
| **反向图像搜索** | TinEye + Bing Visual + Yandex + 手动回退 |
| **证据收集** | 全页截图 · 媒体下载器 (yt-dlp 级别) · 文件元数据 |
| **导出** | Excel · CSV · JSON · HTML 报告 —— 可点击、样式化 |
## 架构
```
┌──────────────────────────────────────────────────────────────────────┐
│ Entry Point │
│ main.py │
└────────────────────────────┬─────────────────────────────────────────┘
│
┌──────────────────▼──────────────────┐
│ CLI Layer │
│ parser.py · menus.py · ui.py │
│ actions.py │
└──────────────────┬───────────────────┘
│
┌───────────────────────▼────────────────────────┐
│ Core Layer │
│ config · ai_agent (4 providers + planner) │
│ cache (SQLite) · case_manager · state │
└──────┬───────────────┬──────────────────────────┘
│ │
┌────────▼──────┐ ┌─────▼─────────────────────────┐
│ Search Layer │ │ Analysis Layer │
│ engines/ │ │ web_analyzer · tech_scanner │
│ smart_search │ │ advanced_osint · domain_osint│
│ reverse_* │ │ hibp │
│ username_enum│ │ │
└───────────────┘ └────────────────┬──────────────┘
│
┌────────────▼────────────┐
│ Utils Layer │
│ media_downloader │
│ results_parse │
│ file_download │
└─────────────────────────┘
```
### 设计模式
| 模式 | 位置 | 目的 |
|---|---|---|
| 策略 | `core/ai_agent.py` | 可切换的 AI 后端 (Gemini · OpenAI · Claude · Ollama) |
| ReAct | `IAAgent.plan` / `execute_plan` | 带迭代重新规划的白名单工具目录 |
| 工厂 | `search/engines/` | 运行时引擎实例化 |
| DAO | `core/database.py` · `core/cache.py` | SQLite 案例存储 + 持久化 TTL 缓存 |
| 单例 | `core/cache.get_cache()` | 使用 WAL 日志模式的进程范围缓存 |
| 状态 | `core/state.py` | 跨模块运行时状态 |
## 功能
### 🔍 搜索与情报
- **多引擎搜索** —— Google Custom Search、DuckDuckGo (HTML 爬虫)、Brave Search。带命名空间 TTL 的持久化 SQLite 缓存(SERP 24小时,HTTP 文本 6小时,WHOIS 7天)。
- **AI 查询规划器** —— 描述目标;LLM 生成一个仅由白名单工具组成的 3-8 步计划。每一步都可交互确认,规划器可根据观察结果重新规划 (ReAct)。
- **AI Dork 生成器** —— 自然语言 → 精确的 Google Dork 语法。
- **引导式搜索** —— 姓名 · 用户名 · 邮箱 · 电话 → 复合 `AND` 查询。
- **用户名枚举** —— Sherlock (纯 Python, 400+ 站点) 或 Maigret (3000+, 仅限 Linux/macOS)。
- **反向图像搜索** —— TinEye API → Bing Visual API → Yandex 爬虫 → 手动 URL 回退。多层回退确保总有结果返回。
### 🤖 AI 分析(流式传输)
| 提供商 | 模型 | 成本 | 用途 |
|---|---|---|---|
| Google Gemini | `gemini-2.0-flash` | 免费层 | 默认 —— 快速、免费、强大 |
| OpenAI | `gpt-4o` | 付费 | 最高品质 |
| Anthropic | `claude-sonnet-4-6` | 付费 | 出色的分析推理能力 |
| Ollama | `llama3` (可配置) | 免费 (本地) | 隔离环境、注重隐私 |
- **令牌流式传输** —— 输出增量显示;无需等待完全生成。
- **网页摘要与深度 OSINT 分析** —— 实体提取、关系发现、线索生成。
- **长文本分块** —— 对于超出模型上下文的内容,使用 12 KB 重叠窗口。
- **实体关系图** —— Pyvis 渲染的交互式 HTML 图,保存至 `outputs/graphs/`。
### 🔒 泄露与泄露情报 (HIBP)
- **账户查询** —— 包含某个邮箱的每次泄露及粘贴内容(需付费 HIBP 密钥)。
- **域名泄露** —— 影响某个域名的所有泄露(免费)。
- **泄露详情** —— 单个命名泄露的完整元数据(免费)。
- **被泄露密码** —— k-匿名 SHA-1 查询;明文 **永不离开进程** —— 仅发送前 5 个十六进制字符。
### 🌐 域名与网络 OSINT
- **WHOIS** —— 注册商、创建/过期日期、联系人、域名服务器(7 天缓存)。
- **DNS 记录** —— A、AAAA、MX、NS、TXT、SOA、CNAME、CAA(1 小时缓存)。
- **邮件安全** —— SPF、DMARC、DKIM 选择器提示。
- **TLS 证书** —— 主体、SAN、有效期窗口、密码套件。
- **HTTP 安全头** —— HSTS、CSP、COOP、COEP、CORP 评分。
- **子域名枚举** —— 通过 crt.sh 证书透明度日志被动查询。
- **Shodan 主机查询** —— 服务横幅、开放端口(可选,需要密钥)。
### 🕰 Wayback Machine
- **快照时间线** —— 查询 URL 的存档历史 CDX。
- **快照获取** —— 特定时间戳的原始存档内容。
- **快照 PII 提取** —— 从旧版本中提取出线上站点已清除的标识符。
- **快照差异比较** —— 两个时间戳间可见文本的统一差异,带 SHA-256 指纹。
### 🎯 PII 与密钥提取
从任何页面或文本中检测并验证 25+ 种标识符类型:
| 类别 | 示例 |
|---|---|
| **云/API 密钥** | AWS (`AKIA…`)、GitHub PAT、GitLab、Slack、Stripe、Google、Discord、Telegram |
| **加密钱包** | Bitcoin (base58check + Bech32)、Ethereum (EIP-55 Keccak) |
| **国家 ID** | 美国 SSN、阿根廷 DNI/CUIT、墨西哥 RFC、巴西 CPF (mod-11)、加拿大 SIN (Luhn) |
| **金融** | IBAN、信用卡 (Luhn) |
| **网络** | 公共 IPv4/IPv6 (过滤掉私有/回环/多播)、MAC 地址 |
| **令牌** | JWT (头部验证)、PEM 私钥 |
| **标准 PII** | 邮箱 (解码混淆)、电话 (通过 libphonenumber 实现国际格式) |
### 🖼 证据与媒体
- **三级媒体下载器** —— yt-dlp (1000+ 平台) → Selenium 点击播放 → 静态 HTML。
- **全页截图** —— Playwright (首选) → Selenium Firefox 回退。
- **文件下载器** —— 按扩展名批量下载;自动提取 PDF/EXIF/DOCX/XLSX 元数据。
### 📤 导出
| 格式 | 详情 |
|---|---|
| **Excel** | 样式化表头、交替行、可点击超链接、自动列宽 |
| **CSV** | 纯逗号分隔,便于电子表格导入 |
| **JSON** | 结构化对象数组,便于程序化处理 |
| **HTML** | 自包含的样式化报告,便于分享 |
## 安装
```
# 1. 克隆
git clone https://github.com/kahz12/scannus.git
cd scannus
# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. 安装
pip install -r requirements.txt
```
### 平台说明
| 平台 | 状态 |
|---|---|
| **Linux / Windows** | 主要支持平台 —— 所有功能可用 |
| **macOS** | 支持 |
| **Termux / Android (aarch64)** | 替代方案 —— Maigret 不可用 (无 `aiohttp==3.8.x` 轮子);Sherlock 可用 |
**要求:** Python 3.10+,Firefox (用于 Selenium 功能),Ollama 守护进程 (仅当使用本地 LLM 时)。
## 配置
运行交互式向导以填充 `.env` 文件:
```
python main.py -c
```
### 环境变量
| 变量 | 服务 | 所需用于 |
|---|---|---|
| `API_KEY_GOOGLE` · `SEARCH_ENGINE_ID` | Google Cloud / Programmable Search | Google Custom Search |
| `BRAVE_API_KEY` | Brave Search API | Brave 引擎 |
| `GOOGLE_API_KEY_FOR_GEMINI` | Google AI Studio | Gemini 提供商 |
| `OPENAI_API_KEY` | OpenAI Platform | GPT-4o 提供商 |
| `ANTHROPIC_API_KEY` | Anthropic Console | Claude 提供商 |
| `OLLAMA_HOST` · `OLLAMA_MODEL` | 本地 Ollama 守护进程 | Ollama 提供商 |
| `HIBP_API_KEY` | Have I Been Pwned | 账户 + 粘贴查询 (付费) |
| `SHODAN_API_KEY` | Shodan | 主机服务横幅查询 |
| `SCANNUS_CACHE_DISABLE` | — 设置为 `1` 以绕过缓存 | 调试 |
## 使用
### 交互式 TUI
```
python main.py # interactive by default
python main.py -i # explicit
```
**主菜单:**
```
Guided Search Name · Username · Email · Phone
Direct Search Raw query or Google Dork
AI Dork Generator LLM-assisted dork creation
AI Query Planner ReAct-style multi-tool plan
Reverse Image Lookup TinEye · Bing · Yandex · manual URLs
Web Technology Scan Tech stack fingerprinting
Username Enumeration Sherlock · 400+ sites
Domain Recon WHOIS · DNS · TLS · headers · subdomains
Breach & Leak Check HIBP: accounts · domains · passwords
Load Saved Case Resume a previous investigation
Configure API Keys Edit .env credentials
```
### 命令行示例
```
# 基础与引导式搜索
python main.py -q 'site:linkedin.com "project manager" "New York"'
python main.py -n "John Doe" -u "jdoe88" -e "john@corp.com"
python main.py -gd "Find exposed admin panels on .gov domains"
# AI驱动的多步骤调查
python main.py -p "Investigate breaches affecting acme.com and dump PII leads"
# 域名侦察
python main.py --recon example.com
# 泄露情报
python main.py --hibp-account target@example.com
python main.py --hibp-domain example.com
python main.py --hibp-breach Adobe
python main.py --hibp-password # interactive, hidden input
# Wayback Machine
python main.py -q "site:archive.org"
# (交互菜单提供快照获取、PII 提取、差异对比)
# 用户名枚举
python main.py --username-enum jdoe88 --enum-backend sherlock
# 反向图像搜索
python main.py -rev https://example.com/photo.jpg
# 缓存管理
python main.py --cache-stats
python main.py --cache-clear wayback # or omit for full wipe
# 导出
python main.py -q "query" --excel out.xlsx --json out.json
```
### 完整 CLI 标志参考
| 分组 | 标志 |
|---|---|
| **主要** | `-h` · `-q` · `-c` · `-i` |
| **搜索** | `-n` · `-u` · `-e` · `-t` · `-b` · `--engine` · `--deep` · `--pages` · `--start-page` · `--lang` |
| **AI / NLP** | `-gd "描述"` · `-p "目标"` |
| **侦察** | `--recon 域名` · `--username-enum 用户名` · `--enum-backend` |
| **泄露 (HIBP)** | `--hibp-account` · `--hibp-domain` · `--hibp-breach` · `--hibp-password` |
| **媒体/图像** | `--media-scrape URL` · `-rev URL` |
| **缓存** | `--cache-stats` · `--cache-clear [NS]` |
| **案例** | `--load-case` |
| **导出** | `--excel` · `--csv` · `--json` · `--html` · `--download 类型` · `--metadata` |
### 结果导航
| 输入 | 动作 |
|---|---|
| `
由 **Ale** 开发
标签:AI查询规划, AI集成, AI风险缓解, DInvoke, ESC漏洞, Python, ReAct规划, SQLite, 个人身份信息提取, 人工智能, 域名侦察, 多引擎搜索, 威胁情报, 开发者工具, 情报框架, 数据泄露情报, 无后门, 特征检测, 用户定义反射加载器, 用户模式Hook绕过, 系统分析, 网络分析, 自动化分析, 证据收集, 跨站脚本, 逆向工具