Joe8K/VHunt
GitHub: Joe8K/VHunt
VHunt 是一个自托管的 Flask 威胁情报平台,融合 38+ 个情报源并提供 AI 攻击预测、变异引擎、主动欺骗和 AI/智能体威胁监控等前沿防御能力。
Stars: 0 | Forks: 0
# 🎯 VHunt
### 网络威胁情报融合与预测平台
[](https://python.org)
[](https://flask.palletsprojects.com)
[]()
[]()
[](LICENSE)
**521 个 API 路由 · 71 个仪表盘页面 · 89 个数据库表 · 69 个后端模块 · 38+ 个情报源**
*融合威胁情报,预测未来攻击,生成新型攻击变体,并欺骗攻击者 —— 所有这些都来自一个自托管的 Flask 应用。*
## 问题所在
安全团队从十几个互不相连的来源(如 VirusTotal、AbuseIPDB、abuse.ch、暗网论坛、泄露数据库、GitHub 泄露扫描器)提取威胁数据,但这些数据几乎都不能告诉你即将发生什么。它只会告诉你其他地方已经发生了什么。指标(Indicators)永不失效,因此仪表盘里充斥着陈旧的无效信息。而且,几乎没有工具会去监控最新的攻击面:暴露的 AI 基础设施、泄露的 LLM 密钥,以及当前正在公开分享的提示词注入(prompt-injection)技术。
## VHunt 的应对之道
VHunt 是一个单一的自托管 Flask 应用程序,它将 **38+ 个外部情报源**和 **24 个 RSS 订阅源**融合到一个标准化的 SQLite 数据库中,然后在此基础上分层提供了四个大多数免费 CTI 工具完全忽略的功能:
1. **AI 驱动的预测引擎**,可在攻击在现实中出现之前进行预测
2. **变异引擎**,从已知的模式生成逼真的新型攻击链变体
3. **主动欺骗层**,用于诱捕攻击者并进行指纹识别,而不仅仅是记录它们
4. 专门用于追踪 **AI/智能体威胁**的功能 —— 影子 AI、提示词注入、泄露的 LLM API 密钥
## 数据概览
| 指标 | 数量 |
|---|---|
| API 路由 | 521 |
| 仪表盘页面 | 71 |
| 数据库表 | 89 |
| 后端模块 | 69 |
| 情报源 | 38+ |
| 代码行数 (web/app.py) | 9,843 |
| 代码行数 (modules/) | 41,798 |
## 功能概览
| 功能 | 作用 |
|---|---|
| IOC 管理 | 从 38+ 个来源收集、规范化并对恶意的 IP/域名/哈希/URL 进行评分 |
| 预测引擎 | 使用 AI 从历史的 IOC/CVE/TTP 模式预测可能发生的未来攻击 |
| 变异引擎 | 将已知攻击分解为 ATT&CK 阶段,并生成前所未见的变体链 |
| 欺骗引擎 | 部署诱饵文件、Canary token 和虚假登录陷阱,以诱捕和追踪攻击者 |
| 暗网监控 v2 | 追踪勒索软件受害者、泄露论坛、内存池交易和窃密日志 |
| 凭据泄露监控 | 在泄露数据库和暗网中查找您组织的泄露的邮箱:密码组合 |
| 品牌仿冒监控 | 通过 7 个生成层检测 typo-squatting/同形字钓鱼域名 |
| 密钥扫描器 | 在与您的组织相关的公共 GitHub 仓库中查找暴露的 API keys/tokens |
| 影子 AI 发现 | 在公共互联网上发现不安全的 AI 基础设施(开放的 Ollama,暴露的 vector DB) |
| 提示词注入监控 | 追踪来自 Reddit、ArXiv、GitHub 的最新发布的越狱/注入技术 |
| AI 模型滥用追踪器 | 基于 CVE 风格的 AI/ML 漏洞馈送(目前在野外被利用) |
| VA 引擎 | 扫描资产的漏洞、错误配置,并映射攻击路径 |
| 沙箱集成 | 通过 CAPE/Hybrid Analysis/Any.Run 引爆恶意软件样本 |
| GRC 引擎 | 风险评分(可能性 × 影响)、合规性、审计、TPRM 工作流 |
| SOCMINT | 跨平台转换用户名,以构建交叉引用的威胁行为者画像 |
| IOC 衰减评分 | 通过基于类型的半衰期,自动降低老化指标的置信度 |
| 攻击活动聚类 | 根据共享的基础设施将相关的 IOC 归组为命名的攻击活动 |
| 插件系统 | 无需触及核心应用即可添加新的收集器/导出器 |
| STIX/TAXII 导出 | 行业标准共享格式,与 MISP/OpenCTI 互操作 |
## 架构
VHunt 是一个刻意的单体 Flask 应用程序 —— 几乎所有的路由和页面渲染都位于 `web/app.py`(9,843 行)中,该文件调用由 69 个专门的后端模块组成的库以执行实际的情报逻辑。一个进程,一个端口,一个 systemd 单元。
```
Browser request
→ Flask route in web/app.py matches URL
→ @login_required checks session (modules/auth.py)
→ Route calls into modules/*.py for business logic
→ Module queries SQLite (WAL mode, retry-with-backoff)
→ Module may call external API or local AI provider
→ Result rendered as Jinja2 template or returned as JSON
```
vhunt/
├── web/app.py → 单个 Flask 入口点,包含所有 521 个路由
├── web/templates/ → 73 个 Jinja2 HTML 模板
├── modules/ → 69 个文件,每个功能域一个
├── plugins/ → 10 个独立的插件,支持热发现
├── core/config.py → API key 注册表,源注册表,共享的 get_db()
├── cli/ → 独立的 CLI 工具(3,638 行)
├── config/config.yaml → 订阅源,调度器间隔
├── config/targets.yaml → 分组织的监控目标
└── data/vhunt.db → SQLite,89 个表,WAL journal 模式
## 核心情报功能
### IOC 管理与衰减评分
将每个指标标准化为统一的 schema,并附带来源归属和置信度评分。大多数 CTI 工具的指标从不失效 —— 8 个月前被标记为恶意的 IP 仍然会永远显示为“活跃”。VHunt 为每种 IOC 类型分配了置信度半衰期(C2 IP 为 5 天,一般 IP 为 7 天,域名为 14 天,文件哈希为 30 天)并自动重新计算。
### 预测引擎
将当前的 IOC 数据库状态 —— 攻击活动活动、CVE 时间点、TTP 频率 —— 提供给 AI provider swarm,要求其预测近期的攻击活动。会根据实际发生的情况追溯性地对其准确性进行自我评分。
### 变异引擎 —— 真正的运作机制
1. 接收一个种子攻击模式(真实的、观察到的)
2. 将其分解为 MITRE ATT&CK 杀伤链阶段
3. 对于每个阶段,查找可实现相同目标的替代技术
4. 将各个阶段重新组合为新的、内部逻辑一致的攻击链
5. 根据您自己的资产数据对每个变体的新颖性、合理性和危险性进行评分
变异是基于真实的 ATT&CK 关系和您自己的环境的 —— 而不是漫无边际的 LLM 头脑风暴。
### 主动防御 —— 欺骗引擎
四个具体机制:
- **嵌套诱饵存档** —— zip 包中嵌套 zip 再嵌套 zip 的文件,浪费攻击者工具的时间
- **带有延迟回调的 Canary token** —— 触发时记录源 IP/时间戳,带有故意的延迟以避免惊动攻击者
- **虚假凭据填充 endpoint** —— 总是显示“成功”,静默收集所有尝试的凭据对
- **同形字内容指纹** —— 诱饵文本中不可见的跟踪 ID,如果出现在泄露论坛上则可进行追踪
### 暗网与暴露面监控
勒索软件受害者追踪、用于勒索软件支付信号的内存池交易监控、窃密日志摄取、凭据泄露交叉引用,以及 7 层品牌仿冒域名生成器(typosquatting、同形字、bitsquatting、soundsquatting、TLD 交换、子域插入、combosquatting)。
### AI / 智能体威胁面监控
一个目前几乎没有商业平台追踪的威胁类别:
- 影子 AI 发现 —— 通过 FOFA/ZoomEye 查找开放的 Ollama 实例和暴露的 vector DB
- 提示词注入监控 —— 追踪来自 Reddit/ArXiv/GitHub 的新越狱技术
- AI 模型滥用追踪器 —— 针对 AI/ML 漏洞的 CVE 风格馈送(MITRE ATLAS)
- AI 凭据监控 —— 专门搜索泄露的 LLM 提供商密钥
### SOCMINT —— 最大的 API 面(44 个路由)
身份转换:用户名 → 关联邮箱 → 关联网域 → 解析的 IP → 所属组织,记录每一跳以便保留推理痕迹。使用 NetworkX 构建社交图并计算中心性 —— 从而识别出协调者与边缘账户。
## AI Provider Swarm
七个后端,具有特定任务的路由:
| 任务类型 | 路由顺序 |
|---|---|
| 预测 / 变异 | Groq → Gemini → Mistral → Ollama(本地回退) |
| IOC 分析 / 对话 | **优先使用 Ollama**(出于隐私 —— 敏感数据保留在本地) → Groq → Gemini |
| MITRE 映射 | Mistral → Groq → Ollama |
| 新闻摘要 | Cohere → Gemini → Groq |
这是一个真正的隐私分级决策 —— 敏感的内部数据默认采用本地推理,而不仅仅是“调用任何配置好的 API”。
## 技术栈
| 层级 | 技术 |
|---|---|
| Web 框架 | Flask 2.3+ |
| WSGI 服务器 | Gunicorn (2 个同步 worker) |
| 数据库 | SQLite 3, WAL 模式, 89 个表 |
| 模板 | Jinja2 —— 服务器端渲染,无 JS 框架 |
| AI / LLM | Ollama, Groq, Gemini, Mistral, OpenRouter, Cohere, Anthropic |
| 威胁情报标准 | STIX 2.1,自定义 TAXII 2.1 服务器 |
| 文档 | WeasyPrint, ReportLab, fpdf2, python-docx |
| 网络 | ipwhois, dnspython, python-whois, aiohttp |
| ML / 数据 | pandas, numpy, scikit-learn, networkx |
| 匿名性 | 通过 SOCKS5 的可选 Tor 路由 |
| 任务调度 | 进程内 `schedule` 库,无 Celery/Redis |
## 快速开始
```
# 1. Clone
git clone https://github.com/Joe8K/VHunt.git
cd VHunt
# 2. Install
pip install -r requirements.txt
# 3. Configure
cp .env.example .env
cp config/config.example.yaml config/config.yaml
# 编辑 .env 和 config.yaml 并填入你的 API keys(设置帮助请参阅 API_KEYS_GUIDE.env)
# 4. 设置 SECRET_KEY(production 必需)
echo "SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_hex(32))')" >> .env
# 5. Launch
python3 web/app.py
# Dashboard → http://localhost:5000
```
**首次运行:** 应用程序会自动生成一个随机的管理员密码,并在控制台打印一次。请立即保存它,并在首次登录后通过设置进行更改。
VHunt 开箱即用,无需任何 API 密钥即可使用免费源(ThreatFox、URLHaus、MalwareBazaar、NVD、CISA KEV、Feodo Tracker、SSLBL、MITRE ATT&CK)。配置 API 密钥可解锁更深度的丰富信息。
## CLI 工具
```
python3 cli/main.py # Main CLI (3,638 lines of tooling)
python3 cli/vhunt.py # VHunt operations CLI
python3 cli/mutate_cli.py # Mutation engine CLI
```
## 已知局限性(坦诚记录)
这是一个快速迭代、由 AI 辅助的个人构建项目。在此坦陈其权衡之处:
- **路由级别验证,而非全局验证**:身份验证是通过 `@login_required` 按路由执行的,而不是全局拦截。如果在 localhost 之外进行自托管,请检查您暴露了哪些路由,并考虑添加 `before_request` 白名单拦截。
- **单体结构**:几乎所有的路由都位于一个文件中(`web/app.py`,约 9,800 行)。在当前规模下运行良好;如果进一步扩展,将受益于 Flask Blueprints。
- **无 JS 框架**:前端是服务器端渲染的 Jinja2 + 带有 `fetch()` 调用的原生 JavaScript —— 这是一个刻意的轻量级选择,而不是 React/Vue。
- **进程内调度器**:后台作业与 Web 应用程序在同一个 Gunicorn worker 中运行 —— 在当前规模下是可以接受的,但长时间运行的作业可能会暂时争抢 SQLite 连接。
## 免责声明
VHunt 是为**防御性安全和威胁情报研究**而构建的。仅监控您拥有或获得明确授权评估的资产。欺骗/蜜罐模块旨在用于记录和追踪,而不是对攻击系统进行反击。
**由 [Jithu Mohan K](https://linkedin.com/in/jithumohank18) 构建**
*网络安全爱好者 · CTI 平台开发者*
[LinkedIn](https://linkedin.com/in/jithumohank18) · [GitHub](https://github.com/Joe8K)
标签:AI风险缓解, Flask, GitHub, Python, 威胁情报, 实时处理, 密码管理, 开发者工具, 攻击预测, 无后门, 网络安全, 蜜罐技术, 逆向工具, 隐私保护