shelvinjohn/cve-hunt-tool
GitHub: shelvinjohn/cve-hunt-tool
一款本地化的CVE威胁情报OSINT流水线工具,聚合13个数据源自动生成包含IOC、漏洞利用状态、MITRE ATT&CK映射和KQL狩猎查询的完整威胁情报报告。
Stars: 0 | Forks: 0
# CVE 情报与狩猎工具
一个本地基于 Web 的 OSINT 流水线,输入 CVE ID 即可生成完整的威胁情报报告——包含 IOC、漏洞利用状态、暴露数据、MITRE ATT&CK 映射、KQL 狩猎查询以及 AI 增强分析。
  
## 功能说明
输入 CVE ID → 跨 13 个来源运行流水线 → 获取结构化的 HTML + DOCX 报告,可直接用于 Sentinel / Defender XDR。
**查询的数据源:**
| 数据源 | 数据 |
|---|---|
| NVD | CVSS 评分,CWE,受影响的产品 |
| CISA KEV | 已知被利用状态,勒索软件标志 |
| EPSS (CIRCL) | 被利用概率评分 |
| GitHub | 公开 POC 仓库 |
| Exploit-DB | 公开漏洞利用代码 |
| ThreatFox | 实时 IOC(IP、域名、哈希) |
| AlienVault OTX | 威胁情报 pulse + ATT&CK ID |
| Shodan | 暴露的脆弱主机数量 + 主要国家 |
| GreyNoise | 活跃扫描/利用活动 |
| Nuclei | 检测模板可用性 |
| Google CSE | 研究人员文章和博客帖子 |
| Reddit | 社区讨论和分析 |
| MSRC | Microsoft 安全响应中心公告 + KB 补丁 |
**报告输出包括:**
- 15 个部分的 DOCX / 17 个部分的 HTML — 编号统一,专为管理层优化
- CVSS 细分,CWE,受影响产品(CPE 名称已美化)
- 通俗易懂的解释(无生涩术语)
- 技术深入分析,带有加粗/代码块/列表,在 Word 中正确渲染
- 漏洞利用时间线(披露 → POC → KEV 收录 → KEV 截止时间 → 补丁)
- MITRE ATT&CK 热力图 — 通过 30 多个关键词推理规则 + OTX + NVD 参考 + Claude 映射的技术
- Microsoft 安全更新部分(严重程度、受影响产品、KB 文章)
- 漏洞利用可用性 + 包含 Star 数量的 GitHub POC 链接
- 实时 IOC 表格(IP、域名、文件哈希)— 跨所有来源去重
- Shodan + GreyNoise 暴露摘要(带有智能区分“无密钥 vs 无数据”的空状态提示)
- 适用于 Microsoft Sentinel 和 Defender XDR 的 KQL 查询
- 研究人员文章 — 根据针对 35 个以上优先安全域的 NVD 参考自动展示,并并行获取真实页面标题 + 元描述
- Claude AI 增强:威胁行为者上下文,攻击链,检测指南
- 报告视图上的深色/浅色模式切换
- `/health` 的数据源健康仪表板 — 查看配置了哪些密钥、上次成功获取时间、调用/失败计数
## 设置
### 1. 克隆并安装
```
git clone https://github.com/shelvinjohn/cve-hunt-tool.git
cd cve-hunt-tool
pip install -r requirements.txt
```
### 2. 配置 API 密钥
```
cp .env.example .env
```
编辑 `.env` 并填入您的密钥。仅 `ANTHROPIC_API_KEY` 是必填项——所有其他数据源在没有密钥的情况下也可工作(但速率限制会降低)。
| 密钥 | 必需 | 获取地址 |
|---|---|---|
| `ANTHROPIC_API_KEY` | 是(用于 AI 增强) | [console.anthropic.com](https://console.anthropic.com) |
| `NVD_API_KEY` | 否 | [nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key) |
| `GITHUB_TOKEN` | 否 | [github.com/settings/tokens](https://github.com/settings/tokens) |
| `OTX_API_KEY` | 否 | [otx.alienvault.com](https://otx.alienvault.com) |
| `THREATFOX_API_KEY` | 否 | [threatfox.abuse.ch](https://threatfox.abuse.ch/api/) |
| `SHODAN_API_KEY` | 否 | [account.shodan.io](https://account.shodan.io) |
| `GREYNOISE_API_KEY` | 否(自 2024 年起仅限付费) | [greynoise.io](https://www.greynoise.io/) |
| `GOOGLE_API_KEY` + `GOOGLE_CSE_ID` | 否 | [console.cloud.google.com](https://console.cloud.google.com) |
Reddit 搜索和 MSRC 无需密钥即可运行。
### 3. 运行
```
python app.py
```
在浏览器中打开 [http://localhost:5000](http://localhost:5000)。
## 用法
1. 输入 CVE ID(例如 `CVE-2024-21413`)
2. 点击 **Analyze** — 流水线在后台运行(使用 Claude AI 时约 30–60 秒)
3. 通过终端日志实时查看 13 个数据源的数据填充情况
4. 查看内联报告,切换深色/浅色模式,或下载为 `.docx` / `.html`
5. 最近的搜索记录保存在本地,并显示在搜索框下方
6. 访问 `http://localhost:5000/health` 查看数据源健康仪表板 — 显示配置了哪些密钥、调用/失败计数、每个数据源上次成功获取的时间
## 环境要求
- Python 3.10+
- 参见 `requirements.txt`
## 项目结构
```
cve-hunt-tool/
├── app.py # Flask web app + pipeline orchestration
├── main.py # CLI entry point
├── fetch/ # One module per intel source (13 total)
│ ├── nvd.py # NVD CVSS, CWE, affected products
│ ├── cisa.py # CISA KEV
│ ├── circl.py # EPSS score
│ ├── github.py # GitHub POC repos
│ ├── exploitdb.py # Exploit-DB
│ ├── threatfox.py # ThreatFox IOCs
│ ├── otx.py # AlienVault OTX
│ ├── shodan.py # Shodan
│ ├── greynoise.py # GreyNoise
│ ├── nuclei.py # Nuclei templates
│ ├── websearch.py # Google CSE + Reddit
│ ├── msrc.py # Microsoft MSRC advisory
│ └── attck.py # MITRE ATT&CK technique mapping
├── report/ # Report building, Claude AI enrichment, HTML/DOCX export
├── utils/ # Search history (thread-safe)
├── templates/ # Web UI (single-page, Matrix rain background)
└── data/ # Local history store (gitignored)
```
## 注意事项
- 专为**本地使用**设计 — 绑定到 `127.0.0.1`,无身份验证,无速率限制
- 所有报告数据均保存在内存中;除 `data/history.json` 外,不向磁盘写入任何内容
- Claude AI 增强需要 Anthropic API 密钥,并会使流水线运行时间增加约 30 秒
- MSRC 数据仅针对 Microsoft 的 CVE 返回 — 对于非 Windows 漏洞将返回空
- KQL 查询为草稿狩猎逻辑 — 在部署为生产分析规则之前,请进行审查、调整阈值并添加基线排除项
## 安全性
- 所有外部 URL 均通过 SSRF 防护进行验证(拒绝 RFC1918、环回地址、链路本地 169.254.x、云元数据、非 HTTP 方案)
- 域名白名单使用精确/子域匹配(无子字符串绕过)
- 报告 HTML 在沙盒 iframe 中渲染(仅限 `allow-same-origin`,无脚本),并具有严格的 CSP
- 所有注入的用户/外部数据均通过 `_esc()` 进行 HTML 转义;URL 由 `_safe_url()` 过滤
- CVE-ID 在任何流水线调用之前,均严格按照 `^CVE-\d{4}-\d{4,7}$` 正则表达式进行验证
- API 密钥仅从 `.env` 中读取;从不记录日志,也从不发送到第三方端点
## 贡献
`main` 分支受保护。工作流:
```
git checkout -b feature/your-change
# 编辑,提交
git push -u origin feature/your-change
# 在 GitHub 上发起 PR,合并,删除分支
```
## 许可证
MIT
标签:AI安全分析, CISA KEV, CISA项目, Cloudflare, CVE分析, Defender XDR, EPSS, ESC4, Flask, Google, GPT, GreyNoise, IOC提取, IP 地址批量处理, KQL查询, MITRE ATT&CK, MSRC, Nuclei, OSINT, POC监控, Python, ThreatFox, 哨兵, 威胁情报, 密码管理, 开发者工具, 插件系统, 无后门, 无线安全, 漏洞报告生成, 漏洞管理, 结构化查询, 网络安全, 自动化安全, 逆向工具, 隐私保护