alancontreras-mx/haak-anvil

GitHub: alancontreras-mx/haak-anvil

一款现代 Python 构建的渗透测试报告生成器,可将 Nmap、Nessus 等多种扫描工具的原始输出转化为统一、专业的多格式报告,并支持项目范围管理与 CVE/CWE 丰富化。

Stars: 0 | Forks: 0

# Haak Anvil [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org) [![Status: Alpha](https://img.shields.io/badge/status-alpha-orange)]() **Haak Anvil** 可将原始扫描器输出(Nmap、Nessus,以及更多即将支持的格式)转化为 **专业的、多格式的渗透测试报告**,包含一致的严重性评分、 项目范围元数据、CVE/CWE 丰富化,以及可直接发送给客户的模板。 专为交付**真实测试项目**而非仅包含项目符号的 PDF 的 进攻性安全团队而构建。 ## 为什么还需要另一个报告工具? 现有工具要么: - 仅输出 Excel,缺乏项目背景信息。 - 硬编码单一工具的格式,在您更换扫描器时就会失效。 - 是无人维护的 Python 2 遗留代码。 - 将所有功能隐藏在 SaaS 付费墙之后。 Haak Anvil 则是: - **现代 Python 3.10+**(带有类型提示、pydantic v2、支持异步)。 - **多工具优先**:目前支持 Nmap 和 Nessus,接下来将支持 Burp / Nuclei / ZAP / sqlmap / Subfinder。 - **多格式输出**:JSON(机器可读)、Markdown(人类可读)、HTML(面向客户),即将支持 PDF + DOCX。 - **项目范围限定**:每份报告都关联到一个由 YAML 定义的测试项目(客户、范围、日期、方法论、分析师)。 - **支持 CVE/CWE**:从标签字段和自由文本中提取 ID,为 NVD/EPSS 丰富化做好准备 (v0.2)。 - **Apache 2.0 许可证**:可商用,无任何附加义务。 ## 快速开始 ``` git clone https://github.com/alancontreras-mx/haak-anvil.git cd haak-anvil python -m pip install -e . ``` ### 解析 Nmap 扫描并生成 HTML ``` nmap -sV -oX out.xml 10.0.0.0/24 haak-anvil nmap out.xml --format html --output report.html ``` ### 解析 Nessus 导出文件 ``` haak-anvil nessus client.nessus --format md --output report.md ``` ### 范围限定的测试项目 创建 `engagement.yaml`: ``` id: HK-2026-001 client: name: Acme Corp contact: ciso@acme.example scope: "External perimeter + corporate WLAN" methodology: PTES period: start: 2026-05-10 end: 2026-05-20 analyst: Alan Contreras language: es-MX ``` 然后执行: ``` haak-anvil nmap out.xml -e engagement.yaml -f html -o reports/ haak-anvil nessus client.nessus -e engagement.yaml -f json -o reports/ ``` ### 合并多工具结果 ``` haak-anvil nmap out.xml -e engagement.yaml -f json -o reports/nmap.json haak-anvil nessus client.nessus -e engagement.yaml -f json -o reports/nessus.json haak-anvil merge reports/nmap.json reports/nessus.json -e engagement.yaml -f html -o reports/final.html ``` ## 架构 ``` haak_anvil/ ├── core/ # Engagement, Asset, Port, Finding, CVSS, Severity, ReportBundle ├── parsers/ # ParserBase + nmap, nessus (burp, nuclei, zap, sqlmap... v0.2) ├── renderers/ # RendererBase + json, markdown, html (pdf, docx... v0.2) ├── enrichers/ # CVE/EPSS enrichment via NVD 2.0 API (stub v0.1, full v0.2) ├── templates/ # Jinja2 HTML templates └── cli.py # Typer CLI ``` 每个解析器都将特定工具的输出映射为一个统一的 `ReportBundle`。每个 渲染器则消费一个 `ReportBundle` 并输出某种格式。添加一个新工具只需要一个 约 150 行代码的模块,继承自 `ParserBase`。 ## 支持的工具 (v0.1) | 工具 | 状态 | 备注 | |-------------|--------|----------------------------------------------------| | Nmap | ✅ | XML 输出 (`-oX`);已测试 7.x 版本 | | Nessus | ✅ | `.nessus` v2 导出;优先使用 CVSS v3 而非 v2 | | Burp Suite | 🚧 v0.2 | XML 导出 | | Nuclei | 🚧 v0.2 | JSONL 输出 | | OWASP ZAP | 🚧 v0.2 | JSON/XML 报告 | | sqlmap | 🚧 v0.2 | 输出目录解析 | | Subfinder | 🚧 v0.2 | JSON 输出 | | Gowitness | 🚧 v0.2 | SQLite 资产丰富化 | ## 输出格式 (v0.1) | 格式 | 状态 | 用例 | |-------------|--------|-------------------------------------------| | JSON | ✅ | 机器摄取 (TheHive, SIEM, 自定义) | | Markdown | ✅ | GitHub 维基,内部文档 | | HTML | ✅ | 客户交付物 (Tailwind CDN,单文件) | | PDF | 🚧 v0.2 | 可打印,WeasyPrint | | DOCX | 🚧 v0.2 | 可编辑的客户交付件 | ## 路线图 - **v0.2** (目标 Q3-2026):Burp + Nuclei + ZAP + sqlmap 解析器,CVE/EPSS 丰富化,PDF + DOCX 渲染器,HTML 模板变体。 - **v0.3**:可选的 FastAPI + HTMX Web UI,通过入口点实现的插件系统,多语言报告模板 (es-MX / en-US / pt-BR)。 - **v0.4**:AI 驱动的执行摘要 (Claude API),TheHive / Wazuh / MISP 推送集成,证据链签名 (Ed25519)。 有关完整的发布历史,请参阅 [CHANGELOG.md](CHANGELOG.md)。 ## 开发 ``` python -m pip install -e ".[dev]" ruff check src tests pytest --cov=haak_anvil --cov-report=term-missing ``` 欢迎提交 PR。如果是重大更改,请先开一个 Issue。 ## 许可证 Apache License 2.0。详见 [LICENSE](LICENSE)。 ## 作者 **Alan Contreras** — 首席执行官兼联合创始人,[Haak Cybersecurity Consulting](https://haak.com.mx) 墨西哥 · [contacto@haak.com.mx](mailto:contacto@haak.com.mx) · [LinkedIn](https://mx.linkedin.com/in/alan-contreras-) 秉承渗透测试报告工具 (dradis-ce, faraday-ng, secutils) 的传统, 针对 2026 年的工作流使用现代 Python 从头构建。
标签:CVE, HTML, JSON, Markdown, Nessus, Nmap, PTES, Pydantic, Python, Web安全, 元数据管理, 反取证, 多格式输出, 安全测试, 安全评估, 开源安全工具, 异步, 报告生成器, 攻击性安全, 数字签名, 数据展示, 无后门, 类型提示, 红队, 网络安全, 自动化报告, 蓝队分析, 虚拟驱动器, 逆向工程平台, 隐私保护