botinaround/IOCHunter
GitHub: botinaround/IOCHunter
一款利用 Claude AI 从威胁情报文章中自动提取、分类 IOC 并输出标准化格式的命令行与 Web 工具。
Stars: 0 | Forks: 0
# IOC Hunter — AI 驱动的威胁情报抓取器
IOC Hunter 是一款命令行工具,用于抓取威胁情报页面(博客文章、安全公告、报告),并使用 Claude AI 提取和分类入侵威胁指标 (IOC),以用于威胁狩猎操作。
## 功能特性
- **无头浏览器抓取** — 使用 Playwright/Chromium 渲染重度依赖 JavaScript 的页面,提取完整页面内容,包括威胁报告中常见的代码块和 `
` 标签。 - **正则预提取** — 在调用 Claude 之前,工具运行正则模式识别 15 种以上类型的 IOC 候选,减少漏报。 - **AI 驱动深度分析** — 将抓取的内容和正则候选发送给 Claude (Opus 4.6),进行智能 IOC 分类并附带置信度评分。 - **Defang/Refang 支持** — 自动还原经过脱敏处理的 IOC(例如 `hxxps://`、`1[.]2[.]3[.]4`)为标准形式。 - **多种输出格式** — 打印到终端,导出为 JSON、CSV 或两者兼有。 - **适配 SIEM/TIP 的 CSV** — 扁平化 CSV 导出包含威胁行为者、恶意软件家族、源 URL 和时间戳,可直接导入。 ## 提取的 IOC 类型 | 类别 | 类型 | |---|---| | **Network** | IPv4, IPv6, Domains, URLs | | **File Hashes** | MD5, SHA1, SHA256, SHA512 | | **Endpoint** | Registry keys, File paths, Mutexes, User agents | | **Identity** | Email addresses | | **Vulnerability** | CVEs | | **Threat Intel** | MITRE ATT&CK techniques, YARA rules | | **Financial** | Bitcoin addresses, Monero addresses | | **Metadata** | Threat actor, Malware families, Campaigns, Targeted sectors/countries, TLP, Source reliability | ## 环境要求 - Python 3.8+ - Anthropic API key ### Python 依赖 ``` anthropic playwright ``` 安装依赖: ``` pip install -r requirements.txt ``` 安装 Playwright 后,安装 Chromium 浏览器: ``` playwright install chromium ``` ### API Key 设置 IOC Hunter 需要 Anthropic API key。运行前请将其设置为环境变量: **Linux / macOS:** ``` export ANTHROPIC_API_KEY="sk-ant-..." ``` **Windows (Command Prompt):** ``` set ANTHROPIC_API_KEY=sk-ant-... ``` **Windows (PowerShell):** ``` $env:ANTHROPIC_API_KEY="sk-ant-..." ``` ## Web 界面 (Streamlit) IOC Hunter 包含一个 Streamlit Web UI 作为 CLI 的替代方案。 ``` streamlit run app.py ``` 这将在 `http://localhost:8501` 打开浏览器,功能包括: - 侧边栏 URL 输入、可选上下文字段和输出格式复选框 - 抓取和分析期间的实时状态更新 - 结果显示在 **Summary / IOCs / MITRE ATT&CK / Raw JSON** 标签页中 - 一键 **Download JSON / CSV / Markdown** 按钮 ## CLI 使用方法 ### 基础用法 — 抓取 URL 并将报告打印到终端 ``` python scraper_bot.py https://example.com/threat-report ``` ### 保存输出为 JSON ``` python scraper_bot.py https://example.com/threat-report --output iocs.json ``` ### 保存输出为 CSV ``` python scraper_bot.py https://example.com/threat-report --output iocs.csv --format csv ``` ### 同时保存 JSON 和 CSV ``` python scraper_bot.py https://example.com/threat-report --output iocs --format both ``` ### 保存为 Markdown ``` python scraper_bot.py https://example.com/threat-report --output iocs --format markdown ``` ### 保存所有格式 (JSON + CSV + Markdown) ``` python scraper_bot.py https://example.com/threat-report --output iocs --format all ``` ### 添加威胁狩猎上下文(改善 Claude 的分析) ``` python scraper_bot.py https://example.com/threat-report --context "Lazarus Group campaign targeting finance sector" ``` ### 省略 `https://` — 将自动补全 ``` python scraper_bot.py example.com/threat-report ``` ## 命令行参数 | 参数 | 简写 | 描述 | 默认值 | |---|---|---|---| | `url` | — | 要抓取的威胁情报 URL *(必填)* | — | | `--output` | `-o` | 输出文件路径(例如 `iocs.json`、`iocs.csv`,或仅 `iocs` 表示两者) | None (仅打印) | | `--format` | `-f` | 输出格式:`json`、`csv`、`markdown`、`both` (json+csv) 或 `all` (json+csv+markdown) | `json` | | `--context` | `-c` | 自由文本形式的威胁狩猎上下文,用于指导 Claude 的分析 | *(空)* | ## 输出 ### 终端报告 终端报告以结构化格式打印: ``` ====================================================================== IOC THREAT INTELLIGENCE REPORT Source : https://example.com/report Generated: 2026-03-12 14:00 UTC ====================================================================== SUMMARY Lazarus Group deployed a new RAT targeting financial institutions... THREAT ACTOR Lazarus Group MALWARE FAMILIES BlindingCan, COPPERHEDGE TARGETED SECTORS Financial Services, Banking CVEs (1) [HIGH ] CVE-2024-12345 Exploited for initial access MITRE ATT&CK TECHNIQUES (3) T1566.001 Spearphishing Attachment Used in initial intrusion T1055 Process Injection Evades AV detection T1071.001 Web Protocols C2 communication IPv4 ADDRESSES (2) [HIGH ] 192.0.2.1 C2 server [MEDIUM] 198.51.100.4 Staging server SHA256 HASHES (1) [HIGH ] a1b2c3d4... Dropper binary TLP : AMBER Reliability : high ====================================================================== ``` ### JSON 输出 JSON 文件包含完整的结构化结果,包括所有 IOC 列表及其 value、context 和 confidence 字段,以及 `threat_actor`、`malware_families`、`mitre_techniques`、`tlp` 和 `source_reliability` 等元数据字段。 ### CSV 输出 CSV 是一个扁平表格,包含以下列: | 列名 | 描述 | |---|---| | `type` | IOC 类型(例如 `ipv4`、`sha256`、`domain`、`mitre_technique`) | | `value` | IOC 值 | | `context` | IOC 在报告中的使用或描述方式 | | `confidence` | `high`、`medium` 或 `low` | | `threat_actor` | 归属的威胁行为者(如有) | | `malware_family` | 关联的恶意软件家族 | | `source_url` | 提取该 IOC 的 URL | | `extracted_at` | ISO 8601 时间戳 | ## 工作原理 1. **抓取** — Playwright 启动无头 Chromium 浏览器,导航至 URL,等待页面完全加载,提取可见文本内容以及任何 code/pre 块。移除 Scripts、styles 和 SVG。内容上限为 60,000 个字符。 2. **正则预提取** — 对抓取的文本运行 15 个正则模式以识别 IOC 候选。过滤掉私有/环回 IP。结果作为提示传递给 Claude。 3. **Claude 分析** — 完整页面文本和正则候选发送至 `claude-opus-4-6`(启用 extended thinking)。Claude 对脱敏的 IOC 进行还原 (refang),分配置信度,并返回结构化 JSON 响应。 4. **输出** — 结果打印到终端,并可选保存为 JSON 和/或 CSV。 ## 注意事项 - **脱敏的 IOC (Defanged IOCs)** — 工具自动还原常见的混淆模式:`[.]` → `.`、`[:]` → `:`、`hxxp://` → `http://`、`hxxps://` → `https://`。 - **私有 IP** — RFC 1918 地址 (10.x.x.x, 172.16–31.x.x, 192.168.x.x) 和环回地址从 IPv4 结果中排除。 - **内容限制** — 页面在 60,000 个字符处截断,以保持在模型上下文限制内。 - **API 成本** — 每次运行调用一次 `claude-opus-4-6`,最多 8,096 个输出 token。IOC 较多的较长页面将使用更多 token。 - **TLP 处理** — Claude 根据报告自身声明的分类分配 Traffic Light Protocol (TLP) 级别,如果未指定则默认为 WHITE。
标签:AI安全工具, Claude AI, Cloudflare, CVE识别, DAST, Defang/Refang, DLL 劫持, DNS信息、DNS暴力破解, IOC提取, Kubernetes, MITRE ATT&CK, nuclei, Playwright, Python, SIEM集成, TIP, YARA规则, 大语言模型, 失陷指标, 威胁情报, 密码管理, 开发者工具, 恶意软件分析, 数据泄露, 数据清洗, 无后门, 无头浏览器, 特征检测, 网络安全, 自动化分析, 跨站脚本, 逆向工具, 隐私保护