9. August 2026
pwn-scenarios: Ein offenes AI-Ready Dataset für Pentesting & Bug Bounty
IT Security for fun & profit – dieses Motto steht nicht ohne Grund oben auf dieser Seite. Es war auch der Ausgangspunkt für mein bisher größtes Open-Source-Projekt: pwn-scenarios, ein öffentliches Dataset, das reale, disclosed Bug-Bounty-Reports und CTF-Writeups in strukturierte, wiederverwendbare Angriffs-Playbooks verwandelt.
Die Ausgangslage
Wer sich mit LLM-gestütztem Pentesting oder AI-Security-Tooling beschäftigt, stößt schnell auf ein Problem: Es gibt tausende gute Writeups im Netz, aber kaum strukturierte Trainings- oder RAG-Daten daraus. Jeder Report ist anders formuliert, unterschiedlich detailliert, und das eigentliche Muster dahinter – Preconditions, Vorgehen, Impact, Remediation – muss man sich mühsam selbst zusammenreimen.
pwn-scenarios löst genau das: ein generisches, wiederverwendbares Playbook pro Schwachstellenklasse, jeweils verknüpft mit einer echten, öffentlich disclosed Instanz zur Erdung – nie der volle Text des Original-Writeups, nur Metadaten und ein Link zurück zur Quelle.
Ein Beispiel-Record
{
"vulnerability": { "class": "Insecure Direct Object Reference (IDOR)", "cwe": "CWE-639" },
"scenario": {
"preconditions": ["Anwendung exponiert Objekt-IDs direkt in Requests", "..."],
"process": [
{ "step": 1, "action": "Alle Endpunkte mit Objekt-IDs mappen", "tools": ["Burp Suite"] },
{ "step": 2, "action": "..." }
],
"impact": ["Unautorisierter Lesezugriff auf fremde Daten", "..."],
"remediation": ["Server-seitige Ownership-Prüfung bei jedem Objektzugriff erzwingen", "..."]
},
"source": { "platform": "hackerone", "url": "https://hackerone.com/reports/..." }
}
Der Attack Decision Graph
Der eigentlich interessante Teil ist nicht die flache Liste, sondern der Attack Decision Graph: 293 States, 271 Actions, darunter 17 reale CVE-Chains (Log4Shell, Spring4Shell, Zerologon, EternalBlue, MOVEit, Citrix Bleed und weitere – jede einzelne gegen NVD verifiziert). Der Graph modelliert Pentesting so, wie eine Schach-Engine Züge bewertet: Gegeben, was bereits etabliert ist – was ist der stärkste nächste Schritt, und wohin führt er?
Ein simulate_graph.py-Skript sampled daraus synthetische Trainingsepisoden
per Bellman Value Iteration. Eine Greedy-Policy erreicht damit in 18,1 % der
Fälle vollständige Kompromittierung, gegenüber 6,7 % bei zufälligem
Vorgehen – ein messbarer Beleg, dass der Graph tatsächlich sinnvolle
Pfade abbildet.
Zahlen
- 30.293 Records über 42 Schwachstellenklassen
- Quellen: HackerOne Hacktivity, GitHub CTF-/TryHackMe-/HackTheBox-Writeups, Pentester Land, kuratierte GitHub-Listen, RSS-Feeds von Security-Blogs
- 9 zusätzliche Klassen speziell für AI/LLM-Schwachstellen (Prompt Injection, Excessive Agency, Insecure Output Handling, …), nach dem OWASP Top 10 for LLM Applications
- Wächst automatisch weiter über tägliche/wöchentliche GitHub-Actions-Jobs
Warum Open Source
Das Dataset ist komplett öffentlich, unter MIT (Code) und CC BY 4.0 (Daten)
lizenziert, und liegt sowohl auf GitHub
als auch auf dem Hugging Face Hub
zum direkten Laden mit datasets.load_dataset(). Contributions – eigene
Writeups, neue Schwachstellenklassen, neue CVE-Chains im Graph – sind
ausdrücklich willkommen, siehe CONTRIBUTING.md im Repo.
Wer selbst an AI-gestütztem Pentesting-Tooling baut oder einfach nur ein sauber strukturiertes Nachschlagewerk für Schwachstellenklassen sucht, darf sich gerne bedienen.