Rootless-Ghost/HuntForge

GitHub: Rootless-Ghost/HuntForge

MITRE ATT&CK 威胁狩猎剧本生成器,离线提供多平台检测查询与工件模板。

Stars: 0 | Forks: 0

# HuntForge **威胁狩猎剧本生成器** — Nebula Forge 套件的一部分。 输入 MITRE ATT&CK 技术 ID → 输出完整的分析师可用狩猎剧本,包含多平台检测查询、预期工件与 MITRE 上下文。**完全离线** — 无需互联网连接。 ## 功能特性 - **MITRE ATT&CK 覆盖** — 内置数据集覆盖所有 10 个主要战术(初始访问、执行、持久化、权限提升、防御规避、发现、横向移动、收集、命令与控制、渗出)中的 60+ 种技术 - **多平台查询** — 为每种技术生成 Splunk SPL、Wazuh/Elasticsearch JSON、Sigma YAML、KQL(Microsoft Sentinel) - **狩猎假设** — 针对你的环境与可用日志来源进行范围限制的叙述性假设 - **工件** — 事件 ID、日志来源、字段名、进程名、注册表键、命令模式 - **MITRE 上下文** — 子技术、相关技术、检测说明、ATT&CK 链接 - **置信度评分** — 1–10 分,可根据可用日志来源调整 - **日志来源建议** — 必需/推荐/可选来源及其说明 - **剧本库** — 保存、浏览、筛选并导出所有生成的剧本 - **导出** — Markdown 与 JSON 格式导出每个剧本 - **LogNorm 集成** — `/api/enrich` 接受 ECS-lite 事件并推荐狩猎剧本 - **CLI** — 完整的命令行接口,支持管道与自动化使用 ## 快速开始 ``` # 安装依赖 pip install -r requirements.txt # 复制并可选编辑配置 cp config.example.yaml config.yaml # 启动 Web 服务器 python app.py ``` 打开 [http://127.0.0.1:5007](http://127.0.0.1:5007) ## CLI 使用 ``` # 生成剧本(Markdown 输出) python cli.py --technique T1059.001 --env windows --sources sysmon,wazuh # 保存到文件 python cli.py --technique T1059.001 --output playbook.md # JSON 格式 python cli.py --technique T1059.001 --format json --output playbook.json # 搜索技术 python cli.py --search powershell python cli.py --search "lateral movement" # 列出所有技术(可选按战术过滤) python cli.py --list python cli.py --list --tactic Execution # 列出所有战术 python cli.py --list-tactics ``` ## API 参考 ### 健康检查 ``` GET /api/health → {"status": "ok", "tool": "huntforge", "version": "1.0.0"} ``` ### 生成剧本 ``` POST /api/playbook/generate Content-Type: application/json { "technique_id": "T1059.001", "context": { "environment": "windows", "log_sources": ["sysmon", "wazuh", "splunk"] }, "output_format": "json", "save": true } ``` ### 列出剧本 ``` GET /api/playbooks?page=1&per_page=25&tactic=Execution&search=powershell ``` ### 获取剧本 ``` GET /api/playbook/ DELETE /api/playbook/ ``` ### 导出剧本 ``` GET /api/playbook//export?format=json GET /api/playbook//export?format=markdown ``` ### 技术搜索 ``` GET /api/techniques?q=powershell GET /api/techniques?tactic=Execution GET /api/technique/T1059.001 ``` ### LogNorm 增强 ``` POST /api/enrich Body: {"events": [...ECS-lite events from LogNorm...]} → {"suggestions": [...hunt playbook suggestions...]} ``` ## 剧本结构 每个生成的剧本包含: | 章节 | 内容 | |------|------| | **元数据** | 技术 ID、名称、战术、描述 | | **狩猎假设** | 叙述 — 对手正在做什么以及原因 | | **查询** | Splunk SPL、Wazuh JSON、Sigma YAML、KQL(Sentinel) | | **工件** | 事件 ID、字段名、进程、注册表键、网络端口 | | **MITRE 上下文** | 子技术、相关技术、ATT&CK 链接、检测说明 | | **日志来源** | 必需 / 推荐 / 可选来源及理由 | | **置信度** | 分数 1–10、覆盖率、标签及理由 | ## MITRE 覆盖范围 | 战术 | 覆盖技术 | |------|----------| | 初始访问 | T1566、T1566.001、T1566.002、T1190、T1133、T1078 | | 执行 | T1059、T1059.001、T1059.003、T1059.005、T1047、T1053.005 | | 持久化 | T1547.001、T1543.003、T1136.001、T1505.003 | | 权限提升 | T1548.002、T1055、T1068 | | 防御规避 | T1070.001、T1027、T1562.001、T1036、T1218.011 | | 凭据访问 | T1003.001、T1110.003 | | 发现 | T1082、T1087.001、T1046、T1016、T1057、T1135、T1069.002 | | 横向移动 | T1021.001、T1021.002、T1550.002 | | 收集 | T1005、T1056.001、T1560 | | 命令与控制 | T1071.001、T1071.004、T1105、T1572 | | 渗出 | T1041、T1048、T1567、T1020 | ## Nebula Forge 集成 HuntForge 在 **5007** 端口运行并集成: - **LogNorm**(5006)— 通过 `/api/enrich` 接受 ECS-lite 事件以提供上下文感知的剧本建议 - **Nebula Dashboard**(5010)— 注册为工具卡片 在 `nebula-dashboard/config.yaml` 中注册: ``` tools: huntforge: label: "HuntForge" url: "http://127.0.0.1:5007" health_path: "/api/health" description: "MITRE ATT&CK threat hunt playbook generator" category: "Detection" ``` ## 项目结构 ``` HuntForge/ ├── core/ │ ├── engine.py # Playbook generation engine │ ├── mitre_data.py # Embedded MITRE ATT&CK dataset (offline) │ ├── query_builder.py # Splunk / Wazuh / Sigma / KQL generators │ └── storage.py # SQLite persistence layer ├── templates/ │ ├── base.html # Layout + sidebar │ ├── index.html # Generator page │ ├── playbook.html # Playbook detail view │ └── library.html # Saved playbooks browser ├── static/ │ ├── css/style.css # Dark theme (Nebula Forge suite) │ └── js/main.js # Frontend logic ├── output/ # Exported playbooks ├── app.py # Flask application ├── cli.py # Command-line interface ├── requirements.txt ├── config.example.yaml └── README.md ``` ## 许可证 本项目采用 MIT License 授权 — 详细信息请参见 [LICENSE](LICENSE) 文件。
由 [Rootless-Ghost](https://github.com/Rootless-Ghost) 构建 属于 **Nebula Forge** 安全工具套件的一部分。
标签:ATT&CK链接, CLI命令行, Cloudflare, ECS-lite, Elasticsearch, KQL, Microsoft Sentinel, MITRE ATT&CK, Nebula Forge, Wazuh, Web界面, 事件ID, 多平台查询, 威胁情报, 子技术, 安全运营, 导出JSON, 导出Markdown, 工件, 开发者工具, 扫描框架, 文档结构分析, 日志来源, 日志规范化, 检测假设, 狩猎剧本生成器, 相关技术, 离线工具, 置信度评分, 逆向工具