Findings en Rapportage met Incompetent Bastard
Een van de belangrijkste onderdelen van een penetratietest is het documenteren van bevindingen en het genereren van een professioneel rapport. Incompetent Bastard (IB) biedt een compleet systeem voor het aanmaken van findings, het scoren met CVSS 4.0, het beheren van bewijsmateriaal en het automatisch genereren van rapporten in meerdere formaten.
IB – Het findings- en rapportagesysteem is ontworpen om direct vanuit het pentestdashboard te werken, zonder externe tools.
Vereisten
- Een werkende IB-installatie met Flask
- IB draait op
http://127.0.0.1:5000/ - Voor PDF-generatie:
xelatexgeinstalleerd - Voor DOCX/ODT/EPUB:
pandocgeinstalleerd
flask --app app:create_app run --host 127.0.0.1 --port 5000Finding templates
IB wordt geleverd met meer dan 200 finding-templates, gegroepeerd per categorie: Web Application, Active Directory, Windows, Network, Misconfiguration, CWE Top 25, Cloud, Infrastructure, Linux, Authentication, Physical Security en Email Security.
Elke template bevat: titel, NCSC richtlijn, OWASP 2025 mapping, CWE, MITRE ATT&CK technique, CVSS 4.0 vector en basescore, beschrijvingen in Nederlands en Engels, impact, aanbevelingen en referenties.
# Templates opvragen via de API
curl http://127.0.0.1:5000/api/findings/templatesIB – Laad standaard templates via de seed-functie op
/dashboard/findings. Dit overschrijft bestaande templates
met de meegeleverde set.
Een finding aanmaken
Navigeer naar /dashboard/findings en selecteer een
template of maak een lege finding aan. Vul de volgende velden in:
- Naam – beschrijvende titel, bijv. “SQL Injection in zoekfunctie”
- Template referentie – de template met standaardbeschrijving, impact en aanbeveling
- CVSS 4.0 vector – de volledige vectorstring
- Basescore – automatisch berekend op basis van de vector
- Locatie – het getroffen systeem of de URL
- Uitwerking – jouw specifieke bevindingen en reproductiestappen
- Status –
draftoffinal(alleen final komt in het rapport)
Remediation tracking
| Veld | Opties |
|---|---|
| Remediation status | open, in_progress, fixed, verified, accepted |
| Target date | Streefdatum voor herstel |
| Owner | Verantwoordelijke persoon |
| Affected assets | Getroffen systemen |
| Data classification | Classificatie van betrokken data |
| Business impact | Zakelijke impact |
CVSS 4.0 Calculator
IB bevat een ingebouwde CVSS 4.0 calculator:
curl "http://127.0.0.1:5000/api/cvss4/calculate?vector=CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"Response:
{"ok": true, "score": 9.3, "severity": "critical"}. De
severity mapping: 9.0-10.0 = critical, 7.0-8.9 = high, 4.0-6.9 = medium,
0.1-3.9 = low, 0.0 = none.
IB – De 11 verplichte base metrics zijn: AV, AC, AT, PR, UI, VC, VI, VA, SC, SI, SA.
Bewijsmateriaal beheren
# Evidence uploaden (max 10 MB; PNG, JPEG, PDF, TXT, JSON, etc.)
curl -X POST http://127.0.0.1:5000/api/findings/1/evidence -F "file=@screenshot.png"
# Evidence per finding bekijken
curl http://127.0.0.1:5000/api/findings/1/evidence
# Evidence downloaden
curl -O http://127.0.0.1:5000/api/findings/evidence/1/download
# Alle evidence exporteren als ZIP
curl -O http://127.0.0.1:5000/api/findings/evidence/exportIB – Afbeeldingen die als evidence zijn geupload, worden automatisch opgenomen in het rapport.
Finding relaties
Koppel findings aan elkaar om ketens en duplicaten aan te geven:
# Types: chain, duplicate, related
curl -X POST http://127.0.0.1:5000/api/findings/1/relations \
-H "Content-Type: application/json" \
-d '{"related_id": 2, "relation_type": "chain"}'
# Relaties opvragen
curl http://127.0.0.1:5000/api/findings/1/relationsFindings API
# Alle findings (met filtering)
curl "http://127.0.0.1:5000/api/findings?severity=critical&status=final"
# Status updaten
curl -X POST http://127.0.0.1:5000/api/findings/1/status \
-H "Content-Type: application/json" -d '{"status":"final"}'
# Remediation updaten
curl -X POST http://127.0.0.1:5000/api/findings/1/remediation \
-H "Content-Type: application/json" \
-d '{"status":"fixed","target_date":"2026-04-01","owner":"IT Security"}'
# Batch-actie
curl -X POST http://127.0.0.1:5000/api/findings/batch-action \
-H "Content-Type: application/json" \
-d '{"ids":[1,2,3],"action":"set_status","value":"final"}'Notes voor het rapport
Notes zijn aanvullende rapportsecties voor verkenningsresultaten of methodologische opmerkingen:
curl http://127.0.0.1:5000/api/notes
curl -X POST http://127.0.0.1:5000/api/notes/1/toggle-rapportNotes met rapport: true verschijnen in de sectie
“Verkenning & ontdekking”.
Rapport genereren
Stap 1: Metadata instellen
curl -X POST http://127.0.0.1:5000/api/settings \
-H "Content-Type: application/json" \
-d '{
"rapport_titel": "Penetratietest Rapport - Acme B.V.",
"rapport_auteur": "CertifiedHacker Security",
"rapport_subtitel": "Webapplicatie Assessment",
"rapport_classificatie": "TLP:RED",
"rapport_taal": "nl",
"rapport_testtype": "pentest",
"rapport_testscope": "greybox",
"rapport_isdraft": false,
"rapport_versie": "1.0",
"rapport_versie_status": "definitief"
}'Beschikbare opties: taal (nl/en), testtype
(pentest/redteam), testscope
(blackbox/greybox/whitebox),
classificatie (TLP 2.0), variant
(detailed/executive/board).
Stap 2: Valideren en genereren
# Valideer of alle data compleet is
curl http://127.0.0.1:5000/api/report/validate
# Asynchroon genereren
curl -X POST http://127.0.0.1:5000/api/report/generate \
-H "Content-Type: application/json" -d '{"include_draft":false}'
# Status pollen
curl http://127.0.0.1:5000/api/report/generate/RUN_IDOf synchroon via de browser:
GET /dashboard/report/generate.
Stap 3: Downloaden
curl -O http://127.0.0.1:5000/api/report/download/pdf # PDF (vereist xelatex)
curl -O http://127.0.0.1:5000/api/report/download/docx # DOCX (vereist pandoc)
curl -O http://127.0.0.1:5000/api/report/download/html # HTML
curl -O http://127.0.0.1:5000/api/report/download/tex # LaTeX bron
curl -O http://127.0.0.1:5000/api/report/download/md # Markdown
curl -O http://127.0.0.1:5000/api/report/download/stix # STIX 2.1
curl -O http://127.0.0.1:5000/api/report/download/sarif # SARIF 2.1.0
curl -O http://127.0.0.1:5000/api/report/download/pptx # PowerPoint
curl -O http://127.0.0.1:5000/api/report/download/epub # EPUB
curl -O http://127.0.0.1:5000/api/report/download/odt # ODTExportformaten
# CSV export voor spreadsheets
curl -O http://127.0.0.1:5000/api/findings/export/csv
# JSON export met volledige catalogusdata
curl http://127.0.0.1:5000/api/findings/export
# Import vanuit JSON
curl -X POST http://127.0.0.1:5000/api/findings/import \
-H "Content-Type: application/json" -d @findings_export.jsonPraktische workflow
- Finding aanmaken – selecteer de juiste template op
/dashboard/findings - Details invullen – naam, locatie, uitwerking, reproductiestappen
- CVSS 4.0 scoren – gebruik de calculator met de juiste vector
- Evidence toevoegen – upload screenshots en tool-output
- Relaties leggen – koppel gerelateerde findings
- Status op final – markeer als definitief
- Rapport genereren – stel metadata in, valideer en genereer
Samenvatting
Het IB findings- en rapportagesysteem biedt een complete workflow:
- Meer dan 200 finding-templates met OWASP 2025, NCSC, CWE en MITRE mapping
- Ingebouwde CVSS 4.0 calculator via
/api/cvss4/calculate - Evidence management per finding met gallery en ZIP-export
- Finding relaties voor aanvalsketens
- Remediation tracking met audit trail via
/api/changelog - Rapportgeneratie in 10 formaten: PDF, DOCX, HTML, LaTeX, Markdown, SARIF, STIX, PPTX, EPUB, ODT
- TLP 2.0 classificatie en meertalige rapporten (NL/EN)
De volledige broncode is beschikbaar op GitHub.