own2pwn-fr/pwn2report

GitHub: own2pwn-fr/pwn2report

一款本地优先、加密存储的安全评估报告撰写桌面应用,支持渗透测试、代码审计和红队报告的结构化发现管理与多格式导出。

Stars: 2 | Forks: 0

# pwn2report [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/70ea273c9e020625.svg)](https://github.com/own2pwn-fr/pwn2report/actions/workflows/ci.yml) [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-7c5cff.svg)](./LICENSE) ![Platforms: Linux · Windows · macOS](https://img.shields.io/badge/platforms-Linux%20%C2%B7%20Windows%20%C2%B7%20macOS-555) `pwn2report` 是一个 [Tauri](https://tauri.app) 桌面应用程序(Linux · Windows · macOS),用于 编写并导出专业的安全报告。你的发现永远不会离开你的机器: 所有内容都存储在 **SQLCipher 加密** 的本地数据库中,通过主密码短语解锁。报告通过内嵌的 [Typst](https://typst.app) 引擎渲染为 **PDF** —— 对于 PDF 而言无需外部二进制文件,且在每个 OS 上的输出完全一致。 (DOCX 导出使用 `pandoc`;详见安装说明。) ## 设计理念 一个严谨且有着自身坚持的核心;一个由 **数据驱动而非选项驱动** 的开放外围。 发现的数据模型和渲染引擎是固定且持续维护的;不同测试人员所期望的多样性,全部存在于 **你拥有的模板和内容中** —— 而不是数以千计的配置开关里。 如果两个人想要不同的报告,那是模板的区别,而不是设置的差异。 ## 状态 **功能完备、经过强化和审计。** 支持三种报告类型,配备包含交互式 CVSS 3.1/4.0 计算器的完整发现编辑器, 多格式导出(PDF / DOCX / Markdown / HTML),可编辑的 Typst 模板,可重用的漏洞知识库,扫描器导入器, 证据 pipeline(图库 + 标注/脱敏工具),可选的插拔式 AI 辅助,运行时 EN/FR 本地化,新手引导, 以及端到端加密的本地优先同步。 ## 功能 - 🔐 **本地优先与加密** — SQLCipher 数据库,密码短语解锁,可选 OS keychain, 应用内修改密码短语 + 保险库备份。 - 📝 **完整的结构化发现** — 严重程度,交互式 CVSS 3.1/4.0,CWE/CVE,描述 维度,修复建议,证据,PoC,引用/标签,分类筛选。 - 📄 **多格式导出** — PDF(内嵌 Typst,品牌风格),DOCX(通过 pandoc),Markdown, 独立的 HTML。 - 🧩 **三种报告类型 + 可编辑模板** — Web 渗透测试、代码审计、红队对抗;可在 应用内编辑 Typst 模板。 - 📚 **知识库** — 可重用的发现模板(内置目录 + 你自己的);一键 添加到报告。 - 📥 **导入器** — SARIF, Nuclei, ZAP, Burp, Nessus 和 secai/EASM 原生 JSON。 - 🖼️ **证据 pipeline** — 附加截图,进行标注和脱敏(内置),内嵌于 每次导出。 - 🤖 **可选 AI 辅助** — Ollama(本地)或云端 API;默认关闭,除非你启用,否则 不会向外部发送任何数据。 - 🌍 **EN / FR** 界面,支持运行时切换 · 首次运行新手引导。 - 🔁 **端到端加密同步** — 便携式加密 bundle,无冲突合并,无需服务器。 - 🎨 **own2pwn 外观** — 暗色/亮色,紫罗兰色调,流畅的微交互。 除了最初的路线图外,它还包括:受影响资产/范围模型,项目元数据和报告级品牌设置,报告/发现克隆, 重测工作流,自定义字段,合规性映射,CSV/SARIF 导出,Azure/Gemini AI 提供商,以及强化的安全性和无障碍审查。 ## 安装说明 **Linux / macOS — 一行命令**(下载适合你 OS/架构的最新版本): ``` curl -fsSL https://raw.githubusercontent.com/own2pwn-fr/pwn2report/main/install.sh | sh ``` 或者从 [Releases](https://github.com/own2pwn-fr/pwn2report/releases) 页面获取适合你操作系统的安装程序 (Linux 上是 `.deb`/`.rpm`/AppImage,Windows 上是 `.msi`,macOS 上是 `.dmg`)。 - **DOCX 导出**需要 [`pandoc`](https://pandoc.org/installing.html) —— 发布版本中已将其捆绑; 如果你从源码运行,请安装 pandoc 或将 `PWN2REPORT_PANDOC` 设置为其路径。 - **Linux** 还需要 WebKitGTK 运行时(`webkit2gtk-4.1`)。 ## 使用说明 **无需账户且没有服务器** —— “登录”意味着解锁你本地的加密保险库。 1. **首次运行** → 使用主密码短语 *创建你的保险库*(可选择在 OS keychain 中记住它)。 ⚠️ **无法恢复密码短语** —— 如果你丢失了它,保险库将无法找回。 2. **新建报告**(Web 渗透测试 / 代码审计 / 红队对抗)→ 填写范围、资产、项目元数据。 3. **添加发现** —— 手动添加,**从知识库中添加**,或者通过 **导入** 扫描器输出 (SARIF / Nuclei / ZAP / Burp / Nessus / CSV / secai)。附加证据并标注/脱敏。 4. **导出** 为 PDF / DOCX / Markdown / HTML / CSV / SARIF;选择报告的语言(EN/FR)。 5. **同步** 通过设置在不同机器间进行 → 生成一个端到端加密的 `.p2r` bundle。 ## 未来增强 - 用于同步的实时中继 / P2P 传输(目前:便携式加密 bundle)。 - 外部集成(推送到 Jira / DefectDojo / GitLab issues)。 ## 故障排除 - **DOCX 导出失败** → 安装 `pandoc`(或设置 `PWN2REPORT_PANDOC`)。 - **忘记密码短语** → 设计上无法恢复;如果你有备份/同步 bundle,请从中恢复。 - **Linux:空白窗口 / 启动错误** → 安装 `webkit2gtk-4.1`。 - **从源码构建:cargo 错误** → 使用 rustup(仓库固定使用 Rust 1.89);不要使用发行版的系统 rust。 ## 技术栈 | 层级 | 选择 | |---|---| | Shell | Tauri v2 | | Frontend | Vite + React + TypeScript + shadcn/ui + Tailwind, `motion` | | Storage | SQLite + SQLCipher (rusqlite, bundled), 用于 OS keychain 的 `keyring` | | PDF | Typst,进程内嵌入(`typst-as-lib`) | | 数据模型 | 映射 secai-core `Finding` 结构 | ## 开发 需要 Node ≥ 20 + pnpm,以及 Rust(工具链通过 `src-tauri/rust-toolchain.toml` 固定,以匹配 Typst 的 MSRV)。在 Linux 上你还需要 WebKitGTK 开发包(`webkit2gtk-4.1`,`javascriptcoregtk-4.1`)。 ``` pnpm install bash scripts/fetch-pandoc.sh # fetch the pandoc sidecar for your OS (gitignored) pnpm tauri dev # run the app pnpm tauri build # produce installers # 测试 pnpm test # frontend (Vitest) cd src-tauri && cargo test # backend (incl. end-to-end integration tests) ``` DOCX 导出需要 `pandoc`:在发布构建中作为 sidecar 被捆绑(`scripts/fetch-pandoc.sh`), 否则将从 `PATH`(或 `PWN2REPORT_PANDOC` 环境变量)中解析。CI 在 Linux、macOS 和 Windows 上构建/测试;标记 `v*` 会通过发布工作流构建已签名的安装程序。 ## 贡献与安全 有关开发设置和 PR 检查清单,请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md), 有关威胁模型及如何私下报告漏洞,请参阅 [SECURITY.md](./SECURITY.md)。 ## 许可证 [AGPL-3.0](./LICENSE)。请注意 AGPL §13 网络条款:如果你通过网络向用户提供修改后的版本, 你必须向他们公开你修改后的源代码。
标签:SQLCipher, Tauri, Typst, 可视化界面, 安全报告工具, 本地优先, 桌面应用, 通知系统