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 增强分析。 ![Python](https://img.shields.io/badge/python-3.10%2B-blue) ![Flask](https://img.shields.io/badge/flask-3.x-lightgrey) ![License](https://img.shields.io/badge/license-MIT-green) ## 功能说明 输入 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, 哨兵, 威胁情报, 密码管理, 开发者工具, 插件系统, 无后门, 无线安全, 漏洞报告生成, 漏洞管理, 结构化查询, 网络安全, 自动化安全, 逆向工具, 隐私保护