KonstiJo/pentest-report-skill

GitHub: KonstiJo/pentest-report-skill

将渗透测试原始发现转化为符合多种国际安全标准(BSI、OWASP、PCI-DSS 等)的审计就绪报告的合规性处理工具,支持 Claude 插件和独立 Python 流水线两种使用方式。

Stars: 0 | Forks: 0

# pentest-report **一个用于渗透测试报告的合规性层。** 将原始发现或扫描器输出转化为审计就绪的报告 —— 支持德语或 英语 —— 并根据您实际需要满足的报告标准进行验证。 [![status](https://img.shields.io/badge/status-beta-yellow)]() [![python](https://img.shields.io/badge/python-3.8%2B-blue)]() [![license](https://img.shields.io/badge/license-MIT-green)](LICENSE) ![pentest-report 演示](https://static.pigsec.cn/wp-content/uploads/repos/cas/89/89bf54bbc7e6ac163ee4668d4f51c617b2e229e1548b5bc94964925aad634e90.gif) ## 为什么开发此工具 大多数渗透测试工具都处于以下两个极端之一: - **渲染工具**(SysReptor, Ghostwriter, PwnDoc)能让报告*看起来*很棒,但 不检查内容是否满足监管标准。 - **测试工具**(nmap, Burp, Nuclei, Nessus, BloodHound)能发现问题,但止步于原始输出。 `pentest-report` 填补了介于两者之间的空白:它是一个 **polish 层**,能够产出 BSI 审计员、DiGA 评审员或 OSCP 考官真正会接受的内容。 它**不会**进行任何扫描、漏洞利用或测试 —— 它假设发现结果已经通过 授权的测试存在。 ## 功能 - **提取** 原始扫描器输出,并将其规范化为统一的发现 schema。 - **丰富** 发现内容,包含 CVSS(3.1/4.0)、CWE、OWASP Top 10 / WSTG 和 MITRE ATT&CK 交叉引用;跨主机进行去重。 - **合规检查** 对照所选标准 —— 每个必需的章节、发现 字段和映射都会通过 PASS / FAIL / MISSING 检查清单进行验证。 - **渲染** 输出为 Markdown、PDF(WeasyPrint)以及 SysReptor 导入 JSON。 - **双语** 德语 / 英语,一等公民支持 —— 绝非机器翻译。 - **复测 / 差异报告** 对照之前的测试项目。 ## 支持的报告标准(配置文件) | 配置文件 | 标准 | 语言环境 | |---|---|---| | `bsi-praxisleitfaden-de` | BSI Praxis-Leitfaden für IS-Penetrationstests | de | | `bsi-durchfuehrungskonzept-de` | BSI Durchführungskonzept (5-Phasen-Modell) | de | | `owasp-wstg-en` | OWASP Web Security Testing Guide | en | | `owasp-asvs-l2-en` | OWASP ASVS Level 2 | en | | `ptes-en` | Penetration Testing Execution Standard | en | | `nist-800-115-en` | NIST SP 800-115 | en | | `pci-dss-v4-en` | PCI-DSS v4 (Req. 11.4) | en | | `diga-bfarm-de` | DiGA / BfArM (DVPMG) | de | | `oscp-en` | OffSec OSCP 24h exam format | en | ## 支持的工具解析器 | 输入 | 解析器 | 生成真实内容的命令 | |---|---|---| | nmap XML | `nmap_xml.py` | `nmap -sV -oX nmap.xml ` | | Burp Suite issue export | `burp_xml.py` | Burp → Target → *Report issues* → XML | | Nuclei JSONL | `nuclei_json.py` | `nuclei -u -jsonl -o out.jsonl` | | Tenable Nessus | `nessus.py` | Nessus → *Export* → `.nessus` | | Trivy SARIF | `trivy_sarif.py` | `trivy image --format sarif -o t.sarif ` | | BloodHound JSON | `bloodhound_json.py` | BloodHound → run query → *Export graph* | 解析器会生成 **draft** 发现(`findings.draft.yaml`)。提升至最终的 `findings.yaml` 是显式的 —— 这样扫描器的误报就永远不会被静默地输出。 ## 环境要求 ``` pip install pyyaml jinja2 markdown weasyprint ``` `weasyprint` 是可选的 —— 没有它(或其系统库),pipeline 依然 会生成 Markdown 并写入中间的 HTML 而非 PDF,并且永远不会崩溃。 Python 3.8+。 ## 快速开始 ``` # 1. 根据标准验证发现(PASS/FAIL/MISSING 清单) python3 scripts/compliance_check.py \ --findings examples/example-findings.yaml \ --profile owasp-wstg-en --profiles-dir profiles # 2. 编译完整报告(Markdown + compliance.txt,可选 PDF) python3 scripts/compile_report.py \ --findings examples/example-findings.yaml \ --profile bsi-praxisleitfaden-de --locale de \ --out out/ --pdf # 3. 导出至 SysReptor python3 scripts/export_sysreptor.py \ --findings examples/example-findings.yaml -o out/sysreptor-import.json # 将原始 scanner 输出解析为草稿发现 python3 parsers/nmap_xml.py scan.xml -o findings.draft.yaml # 运行内置 parser 自测 python3 scripts/selftest.py ``` ## Pipeline ``` Ingest ─► Enrich ─► Compliance-check ─► Render (parsers) (CVSS/CWE/ (profile-driven (Markdown / ATT&CK, PASS/FAIL/MISSING) PDF / SysReptor) dedupe) ``` ## 仓库布局 ``` pentest-report/ ├── SKILL.md # Claude skill manifest ├── README.md # this file ├── references/ # finding schema, CVSS guide, voice/style, crosswalk ├── profiles/ # 9 compliance profiles (one per standard) ├── templates/ # Jinja2 report templates + print CSS ├── parsers/ # 6 tool-output parsers (+ samples/ self-test inputs) ├── scripts/ # compile_report, compliance_check, render_pdf, export_sysreptor, selftest └── examples/ # example-findings.yaml ``` ## 它不会做的事情 - 运行扫描、漏洞利用或任何主动探测 —— 由您提供发现结果。 - 虚构发现。如果配置文件要求一个没有数据的章节,它会发出一个 TODO 占位符,而不是捏造内容。 - 自动在德语和英语之间翻译 —— 审计级别的翻译需要人工完成。 - 在未选择配置文件的情况下输出 —— 您必须自觉选择一个标准。 ## 安装 **作为 Claude Code 插件(推荐):** ``` /plugin marketplace add KonstiJo/pentest-report-skill /plugin install pentest-report@pentest-report-skill ``` **作为普通 skill:** 将此目录放入您的 skills 文件夹中(Claude Code: `~/.claude/skills/`,或您的 Cowork skills 文件夹),或安装打包好的 `pentest-report.skill` 包。 ## 作为 Claude / Cowork skill 使用 然后询问,例如: ## 许可证 基于 [MIT 许可证](LICENSE) 发布。 ## 免责声明 此工具仅用于对**授权的**安全测试进行报告的格式化和验证。 您有责任确保对于任何您处理其结果的测试项目,均已获得书面授权。
标签:Python, 恶意代码分类, 文档自动化, 无后门, 逆向工具, 防御加固