vamp-penreport
Professional pentest report aggregator for VampSecure Labs toolkit.
vamp-penreport reads JSON output files from any VSL tool, normalizes and deduplicates all findings, computes a global risk score, and produces polished HTML, PDF, and Markdown reports ready for client delivery.
It is not a scanner — it is a report aggregator and generator. It has no finding prefix of its own; it works with findings produced by other VSL tools.
Features
- Ingests multiple VSL JSON output files in a single run
- Normalizes severity labels and deduplicates findings across tools
- Computes global risk score (0–100) with qualitative label (Low / Moderate / High / Critical)
- Executive summary with inline SVG gauge and category bar chart
- Prioritized remediation roadmap (4 phases: Immediate / Urgent / Planned / Continuous)
- MITRE ATT&CK coverage section: auto-detected from
vamp-log-analyzerFORA-NNN findings — 25 detectors mapped to 12 tactics; rendered as an interactive table with severity badges and technique tooltips - Detailed technical findings section with estimated CVSS range
- Local logo embedding:
--logo-file PATHembeds any PNG/JPG/SVG as a base64 data URI — the HTML is fully self-contained with no external requests - Printable HTML with full CSS
@media printsupport - Native PDF via
fpdf2(no browser required) - Markdown output for integration into wikis or documentation systems
- Consolidated JSON export for pipeline integration
Installation
cd vamp-penreport
pip install -r requirements.txt
fpdf2 is only required for PDF output. HTML and Markdown generation work with Python stdlib alone.
Usage
Basic — HTML only
python3 vamp_penreport.py scan1.json \
--client "Acme Corp" \
--engagement "External Pentest Q3 2026"
Full report — HTML + PDF + Markdown
python3 vamp_penreport.py scan1.json scan2.json scan3.json \
--client "Acme Corp" \
--engagement "External Pentest Q3 2026" \
--auditor "VampSecure Labs Red Team" \
--scope "Perimeter web applications and exposed APIs" \
--start-date 2026-07-01 \
--end-date 2026-07-31 \
--logo-file /path/to/client_logo.png \
--report-html report.html \
--report-pdf report.pdf \
--report-md report.md \
--report-json consolidated.json
Executive summary only (no detailed technical findings)
python3 vamp_penreport.py scan1.json scan2.json \
--client "Acme Corp" \
--engagement "Quick Assessment" \
--executive-only \
--report-html executive_summary.html
Forensic log report with MITRE ATT&CK coverage
When the input includes output from vamp-log-analyzer, the report automatically adds a MITRE ATT&CK coverage section showing which tactics and techniques were observed:
python3 vamp_penreport.py \
recon.json ssl.json http.json logs_forensic.json \
--client "Acme Corp" \
--engagement "Full Perimeter Assessment" \
--report-html full_report.html
All options
usage: vamp-penreport [-h] --client NOMBRE [--engagement DESC]
[--auditor NOMBRE] [--scope TEXTO]
[--start-date FECHA] [--end-date FECHA]
[--report-html FILE] [--report-pdf FILE]
[--report-md FILE] [--report-json FILE]
[--logo-url URL] [--logo-file FICHERO]
[--executive-only] [--verbose]
INPUT [INPUT ...]
positional arguments:
INPUT One or more VSL JSON output files
options:
--client NOMBRE Client name (required)
--engagement DESC Engagement description
--auditor NOMBRE Auditor name/team (default: VampSecure Labs)
--scope TEXTO Engagement scope
--start-date FECHA Start date (YYYY-MM-DD)
--end-date FECHA End date (YYYY-MM-DD)
--report-html FILE HTML output file (default: report.html)
--report-pdf FILE PDF output file (requires fpdf2)
--report-md FILE Markdown output file
--report-json FILE Consolidated JSON output file
--logo-url URL Client logo URL (HTML only, optional)
--logo-file FILE Local logo file embedded as base64 (PNG/JPG/SVG)
--executive-only Executive summary only, no technical findings
--verbose Verbose/debug output
Input JSON schema
VSL tools produce output files in the following standard schema. All fields are optional except findings.
| Field | Type | Description |
|---|---|---|
tool |
string | Tool name (e.g. vamp-docker-audit) |
version |
string | Tool version |
target |
string | Scan target (hostname, IP, path…) |
timestamp |
string | ISO 8601 scan timestamp |
findings |
array | Array of finding objects (see below) |
summary |
object | Count by severity (optional, for reference) |
Finding object
| Field | Type | Description |
|---|---|---|
id |
string | Finding identifier (e.g. DOCK-001, FORA-001) |
severity |
string | CRITICAL, HIGH, MEDIUM, LOW, or INFO |
title |
string | Short finding title |
description |
string | Technical description |
evidence |
string | Raw evidence / proof of concept |
remediation |
string | Recommended fix |
references |
array | External references (CVEs, CWEs, URLs…) |
Alternative field names are also accepted: results/issues/vulnerabilities instead of findings; risk/level instead of severity; detail/details instead of description; output/proof instead of evidence; fix/recommendation instead of remediation.
Report sections
| Section | Description |
|---|---|
| Cover page | Client name, dates, auditor, CONFIDENTIAL classification, optional logo |
| Table of contents | Navigable index with dynamic numbering |
| Executive summary | Risk gauge (SVG), severity table, top 5 findings, tool distribution chart |
| Remediation roadmap | 4-phase plan: Immediate (0–7d), Urgent (7–30d), Planned (30–90d), Continuous |
| MITRE ATT&CK coverage | Auto-generated when FORA-NNN findings are present — tactics matrix with severity badges and technique tooltips |
| Technical findings | Full detail per finding: description, evidence, remediation, CVSS estimate, references |
| Methodology | Tools used, severity classification table |
| Disclaimer | Confidentiality notice |
The MITRE ATT&CK section only appears when the report contains findings from
vamp-log-analyzer(FORA-NNN prefix). Section numbers adjust automatically.
MITRE ATT&CK Coverage
When vamp-log-analyzer output is included, vamp-penreport automatically maps the 25 FORA-NNN detectors to MITRE ATT&CK tactics and renders a coverage matrix. Example:
| Tactic | Detected | Detectors |
|---|---|---|
| Credential Access | CRITICAL×2, HIGH×1 | FORA-001 FORA-002 FORA-022 |
| Reconnaissance | HIGH×1 | FORA-009 |
| Initial Access | MEDIUM×1 | FORA-007 |
| … | … | … |
The 25 detectors cover 12 tactics: Reconnaissance, Initial Access, Execution, Persistence, Privilege Escalation, Defense Evasion, Credential Access, Discovery, Lateral Movement, Collection, Command & Control, Exfiltration.
Compatible VSL tools
vamp-penreport works with JSON output from any tool in the VampSecure Labs toolkit:
vamp-log-analyzer— Forensic log analysis — 25 MITRE ATT&CK detectors, STIX 2.1 (triggers ATT&CK section)vamp-docker-audit— Docker container and daemon securityvamp-k8s-audit— Kubernetes cluster security reviewvamp-ssl-audit— TLS/SSL certificate and configuration analysisvamp-secrets-scanner— Hardcoded secrets and credential detectionvamp-http-audit— HTTP headers and web security checksvamp-wp2shell-audit— WordPress vulnerability assessmentvamp-passive-recon— OSINT and passive reconnaissancevamp-subdomain-takeover— Subdomain takeover detectionvamp-cve-oracle— CVE correlation and vulnerability lookupvamp-jwt-audit— JWT token security analysisvamp-k8s-audit— Kubernetes cluster security reviewvamp-llm-probe— LLM endpoint security assessmentvamp-mail-audit— Email security (SPF/DKIM/DMARC)vamp-arp-sentinel— ARP spoofing and network analysisvamp-entropy-watch— Entropy-based anomaly detectionvamp-forticheck— Multi-vendor edge device CVE scannervamp-cloud-enum— Cloud asset enumeration
License
MIT — See LICENSE file.
© VampSecure Studios — VampSecure Labs Security Research Division
Authorized use only in environments with explicit written permission.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vamp_penreport-2.1.tar.gz.
File metadata
- Download URL: vamp_penreport-2.1.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6ab8e66e8f5b1693293398796c33bcd4aa16961c7310eeb6beeb49545859c65
|
|
| MD5 |
74d06f0258a374042ac63378e22ffb9f
|
|
| BLAKE2b-256 |
c6fd20200a190748c892cb864154face63e30a1144a2288db3e46685963a11e8
|
File details
Details for the file vamp_penreport-2.1-py3-none-any.whl.
File metadata
- Download URL: vamp_penreport-2.1-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc632f37666695134db66a8baabe26e22ad474e1dd8bfb7fc81ba329a9cffbe1
|
|
| MD5 |
9dbd4e0034ba6c670be20cdb1bf58633
|
|
| BLAKE2b-256 |
f10181e66a9d8143ee0c90c5afdf04650f3444923207a59327bb8e46262df9ff
|