
Stellt eine containerisierte Umgebung und signierte Nuclei-Vorlage bereit, um CVE-2025-32463, eine Sudo-Privilegieneskalations-Schwachstelle, sicher zu testen, einschließlich Erkennung und Vergleich mit der gepatchten Version.
Dies ist das erste Mal, dass ich einen bösartigen Exploit in eine Nuclei-Vorlage für einen nicht-intrusiven Schwachstellenscan portiert habe, der dennoch das zugrunde liegende Problem demonstriert.
Ich habe den Prozess ausdrücklich als Lernübung ausführlicher dokumentiert.
Meine größten Herausforderungen waren:
-itags local einzubeziehen, da das lokale Tag standardmäßig in den .nuclei-ignore-Einstellungen ignoriert wird.Es mag seltsam erscheinen, dass ich die Windows-Umgebung für diese Aktivität gewählt habe. Tatsache ist, dass Windows mein Standard-Betriebssystem ist, aus Gründen, auf die ich hier nicht eingehen werde.
docker-compose up --build -d
Diese Vorlage verwendet die code-Engine, die aus Sicherheitsgründen eine Signierung erfordert. Die Vorlage ist in diesem Repository bereits signiert.
Die docker-compose.yaml ist so konfiguriert, dass sie Ihre Windows-Nuclei-Signaturschlüssel aus %APPDATA%\nuclei\keys in die Container einbindet. Dadurch kann die signierte Vorlage verifiziert werden.
Auf dem Windows-Host (erfordert installiertes Nuclei).
nuclei -t cve-2025-32463.yaml -sign
Dies signiert die Vorlage und fügt ein Digest-Feld hinzu.
Hinweis: Beim ersten Ausführen dieses Befehls erstellt Nuclei Signaturschlüssel in %APPDATA%\nuclei\keys und fragt nach:
Linux/macOS/Git Bash:
docker exec -u testuser vulnerable-sudo-target sh -c 'nuclei -itags local -t /tmp/template.yaml -target localhost -code'
Windows PowerShell/CMD:
docker exec -u testuser vulnerable-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Alternative (funktioniert auf allen Plattformen):
docker exec -u testuser vulnerable-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Hinweise:
-code ist erforderlich, um code-protokollbasierte Vorlagen zu aktivierensh -c '...', um Probleme mit der Windows-Pfadkonvertierung bei MSYS2/Git Bash zu vermeiden[INF] Executing 1 signed templates from <your-username>Windows PowerShell/CMD:
docker exec -u testuser patched-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Alternative (funktioniert auf allen Plattformen):
docker exec -u testuser patched-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Hinweise:
-code ist erforderlich, um code-protokollbasierte Vorlagen zu aktivieren"..." oder den alternativen Befehl ohne sh -c[INF] Executing 1 signed templates from <your-username>Wenn Sie die Schwachstelle ohne Signieren der Nuclei-Vorlage verifizieren möchten, können Sie das Exploit-Skript direkt ausführen:
Kopieren und führen Sie das Exploit-Skript aus.
docker cp exploit.sh vulnerable-sudo-target:/tmp/exploit.sh
docker exec -u testuser vulnerable-sudo-target bash /tmp/exploit.sh
Erwartete Ausgabe: woot! gefolgt von einer Root-Shell (im interaktiven Modus).
[CVE-2025-32463] [code] [critical] localhost ["VULNERABLE UID=1000 EUID=0"]
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 140.454595ms. 1 matches found.
Erkennung bestätigt: UID=1000 EUID=0 beweist, dass Code von testuser (1000) mit Root-Rechten (0) ausgeführt wurde.
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 143.319373ms. No results found.
Keine Schwachstelle erkannt – Die gepatchte Sudo-Version verhindert das Laden der Bibliothek.
Für eine detaillierte technische Erklärung der Schwachstelle, der Angriffsvektoren und der Erkennungsmethodik lesen Sie das Dokument Technische Hinweise.