🏆 Professional Penetration Testing Report Generator with AI
Hasilkan laporan penetration testing client-ready dengan bantuan Claude AI. Streaming real-time, multi-format export, dan CVSS v3.1 calculator.
- Tambah/hapus finding secara dinamis
- Field lengkap: vuln name, severity (Critical/High/Medium/Low/Informational), CVSS score + vector string, affected asset, steps to reproduce, evidence, impact
- Tombol CVSS Calculator per finding untuk hitung vector interaktif
- Generate laporan lengkap: Executive Summary, Risk Matrix, Detailed Findings, Remediation Roadmap, Appendix
- Streaming real-time — laporan muncul progresif, bukan nunggu selesai
- Pause/Resume/Cancel selama generation
- Format laporan profesional dengan severity badges
- Interactive calculator dengan semua metrik CVSS v3.1 (AV/AC/PR/UI/S/C/I/A)
- Live score & severity display
- Auto-fill ke form finding
- Upload logo perusahaan (PNG, JPG, SVG)
- Pilih warna primary & accent
- PDF report otomatis menggunakan logo + warna tema
- Custom report title
- PDF — dengan logo, branded colors, header/footer
- DOCX — format dokumen profesional
- Markdown — untuk version control & kolaborasi
- Auto-save engagement setelah generate
- Lihat semua engagement tersimpan
- Load kembali engagement sebelumnya
- Version tracking (v1, v2, ...)
- Supabase integration + localStorage fallback
| Teknologi | Kegunaan |
|---|---|
| Next.js 16 | Framework (App Router) |
| TypeScript | Type safety |
| Tailwind CSS v4 | UI styling |
| Claude API (Anthropic) | AI report generation |
| jsPDF | Export PDF |
| docx | Export DOCX |
| Supabase | Database & storage |
| react-markdown | Preview markdown |
git clone https://github.com/muadzie/PENTEST-REPORTER.git
cd pentest-reporternpm installBuat file .env.local di root project:
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx
# Optional: Supabase untuk persistence
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=xxxxxnpm run devBuka http://localhost:3000.
npm run build
npm startsrc/
├── app/
│ ├── api/
│ │ ├── generate-report/route.ts # Claude API streaming
│ │ └── export/route.ts # Server-side export
│ ├── report/page.tsx # Halaman preview report
│ ├── page.tsx # Halaman utama (form + generate)
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles
├── components/
│ ├── BrandingSettings.tsx # Modal branding (logo + warna)
│ ├── CvssCalculator.tsx # Modal CVSS v3.1 calculator
│ ├── EngagementHistory.tsx # Modal daftar history
│ ├── FindingForm.tsx # Form per finding
│ ├── Header.tsx # Navigasi header
│ └── ReportPreview.tsx # Preview + export buttons
├── lib/
│ ├── branding.ts # Branding config (localStorage)
│ ├── claude.ts # Claude API client (streaming)
│ ├── cvss.ts # CVSS v3.1 scoring engine
│ ├── export.ts # Export PDF, DOCX, Markdown
│ ├── history.ts # Engagement CRUD (Supabase + fallback)
│ └── supabase.ts # Supabase client
└── types/
└── index.ts # Type definitions
- Isi Engagement Details — Client name, assessment type, tester, tanggal
- Tambah Findings — Klik "Add Finding", isi detail temuan
- Gunakan CVSS Calculator (opsional) — Klik tombol "CVSS" di finding card
- Atur Branding (opsional) — Klik "Branding", upload logo, pilih warna
- Generate Report — Klik "Generate Report with AI"
- Streaming — Laporan muncul real-time, bisa di-pause atau di-cancel
- Export — PDF (branded), DOCX, atau Markdown
- History — Engagement otomatis tersimpan, bisa di-load kembali
| Variable | Required | Deskripsi |
|---|---|---|
ANTHROPIC_API_KEY |
Ya | API key dari Anthropic untuk Claude |
NEXT_PUBLIC_SUPABASE_URL |
Optional | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Optional | Supabase anonymous key |
Tanpa Supabase, data history tetap tersimpan di localStorage browser.
MIT