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
CVE-2023-25136-PoC — Minimale Docker-basierte Reproduktionsumgebung für die OpenSSH 9.1p1 Pre-Auth Double-Free-Schwachstelle (CVE-2023-25136), die Speicherkorruption und Denial-of-Service über einen Python-PoC-Client demonstriert. | Kitploit
Tools/GitHubGitHub/lane0218/cve-2023-25136-poc
SchwachstellenanalyseExploitationPenetrationstestsLernen & BildungBinary-Exploitation
GitHublane0218/cve-2023-25136-poc

CVE-2023-25136-PoC

Minimale Docker-basierte Reproduktionsumgebung für die OpenSSH 9.1p1 Pre-Auth Double-Free-Schwachstelle (CVE-2023-25136), die Speicherkorruption und Denial-of-Service über einen Python-PoC-Client demonstriert.

Repository anzeigen
vor 9 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-2023-25136 Reproduktion der Sicherheitslücke

Dieses Projekt stellt eine minimale lokale Testumgebung bereit, um die Pre-Auth Double-Free-Speicherfehler-Sicherheitslücke in OpenSSH 9.1p1 (CVE-2023-25136) zu reproduzieren und den Service-Process-Crash (DoS) zu beobachten.

Hinweis: Offizielle und gängige Analysen gehen davon aus, dass diese Sicherheitslücke unter Standard-Sicherheitskonfigurationen „schwer für Remote-Code-Ausführung ausnutzbar“ ist. Diese Umgebung dient hauptsächlich der Demonstration des Speicherfehlers und des Denial-of-Service-Effekts.

Umgebungsbeschreibung

  • Zielrechner (Target):

    • Ein OpenSSH 9.1p1-Server, der in einem Docker-Container läuft
    • Mit privilegiertem Trennungskonto sshd konfiguriert
    • Zur besseren Beobachtbarkeit des Double-Free-Crashs wurde der seccomp-Sandbox beim Build mit --with-sandbox=no deaktiviert
    • Der Container hört intern auf Port 22, der auf den Host (WSL) auf Port 2222 gemappt ist
  • Angreiferrechner (Attacker): – Läuft auf demselben Host / WSL wie der Zielrechner – Verwendet Python3 + , um den PoC auszuführen, eine bestimmte SSH-Client-ID zu erzeugen und einen Pre-Auth-Handshake durchzuführen

paramiko

Verzeichnisstruktur:

  • Dockerfile: Erstellt das Image für die OpenSSH 9.1p1-Sicherheitslücke
  • poc.py: Minimaler PoC-Client zur Auslösung des Pre-Auth-Double-Free

Voraussetzungen

Bevor Sie die folgenden Schritte in diesem Verzeichnis ausführen, stellen Sie sicher:

  • Docker ist installiert (unter WSL2 empfohlen: Docker Desktop oder Docker direkt in WSL installieren)
  • Python 3 und pip sind installiert

1. Aufbau des Zielrechners (OpenSSH 9.1p1 in Docker)

  1. Image erstellen

Führen Sie im aktuellen Verzeichnis aus:

root@kitploit:~
docker build -t sshd-9.1p1-vuln .
  1. Container starten
root@kitploit:~
docker run --rm -d --name sshd-vuln -p 2222:22 sshd-9.1p1-vuln

Erläuterung:

  • --rm: Container wird nach Beendigung automatisch gelöscht
  • --name sshd-vuln: Containername
  • -p 2222:22: Port 22 im Container wird auf dem Host auf Port 2222 gemappt
  1. sshd-Status prüfen
root@kitploit:~
docker ps

Erwartete Ausgabe ähnlich:

root@kitploit:~
CONTAINER ID   IMAGE              COMMAND               STATUS          PORTS
xxxxxx         sshd-9.1p1-vuln    "/usr/sbin/sshd -D…"  Up ...          0.0.0.0:2222->22/tcp

2. Verwendung des PoC auf dem Angreiferrechner

2.1 PoC-Abhängigkeiten installieren

Im aktuellen Verzeichnis ausführen:

root@kitploit:~
pip install paramiko

2.2 Beschreibung des PoC-Skripts (poc.py)

poc.py verwendet paramiko.Transport, um aktiv eine Verbindung zum Ziel-SSH-Server herzustellen, fälscht die Client-ID im Pre-Auth-Zustand und versucht, einen Double-Free auszulösen.

Hauptmerkmale:

  • Standardziel: 127.0.0.1:2222 (lokaler Docker-Container)
  • Standard-Client-ID: SSH-2.0-PuTTY_Release_0.64
  • Einfache Befehlszeilenparameter:
    • -t/--target: Ziel-IP (Standard 127.0.0.1)
    • -p/--port: Ziel-Port (Standard 2222)
    • -c/--client-id: Gefälschte SSH-Client-ID
    • --timeout: Timeout in Sekunden
    • -v/--verbose: Ausführliche Fehlerausgabe

2.3 PoC ausführen

Stellen Sie sicher, dass der Container sshd-vuln läuft, und führen Sie im aktuellen Verzeichnis aus:

root@kitploit:~
python3 poc.py

Oder mit expliziten Parametern:

root@kitploit:~
python3 poc.py -t 127.0.0.1 -p 2222 -v

Erwartete Beispielausgabe des Clients:

root@kitploit:~
==============================================
   CVE-2023-25136 OpenSSH Pre-Auth Double Free
              Minimal PoC Client
==============================================
[2024-xx-xx xx:xx:xx] Target: 127.0.0.1:2222, ClientID: SSH-2.0-PuTTY_Release_0.64
[+] Sending crafted pre-auth handshake...
[-] Authentication failed or connection closed early.
     Überprüfen Sie die sshd-Protokolle auf dem Zielrechner auf 'free(): double free detected' usw., um zu bestätigen, ob CVE-2023-25136 ausgelöst wurde.

Erläuterung:

  • Der Client zeigt erwartungsgemäß Authentication failed oder connection closed, da der Pre-Auth-Subprozess des Servers während der Verarbeitung abstürzen oder die Verbindung aktiv schließen kann.

3. Erwartete Ergebnisse und Verifikation

3.1 Server- (Container-) Protokolle

Nach Ausführung des PoC die Container-Logs auf dem Host anzeigen:

root@kitploit:~
docker logs sshd-vuln

Es sollte ähnliche Ausgabe erscheinen:

root@kitploit:~
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
Invalid user  from 172.17.0.1 port xxxxx
free(): double free detected in tcache 2

Dabei bedeutet:

  • Invalid user: Da der PoC einen leeren Benutzernamen verwendet, protokolliert OpenSSH einen ungültigen Benutzerversuch
  • free(): double free detected in tcache 2: glibc erkennt einen double free und beendet den aktuellen sshd-Subprozess – genau das ist der beobachtete Speicherfehler/DoS-Effekt in diesem Experiment

Hinweis: Um diese Zeile zu sehen, haben wir beim Bau von OpenSSH den seccomp-Sandbox deaktiviert (--with-sandbox=no). Andernfalls könnte der Sandbox vor dem Double-Free das anomale Verhalten abfangen und den Subprozess direkt beenden.

3.2 Art des Effekts

  • In dieser Testumgebung löst der PoC zuverlässig einen Crash des Pre-Auth-Subprozesses (DoS) aus, wodurch die aktuelle SSH-Verbindung fehlschlägt. Der Haupt-sshd-Prozess bleibt bestehen und erzeugt für nachfolgende Verbindungen neue Subprozesse.
  • Da der Pre-Auth-Subprozess in einer niedrig privilegierten + chroot-Umgebung läuft und standardmäßig mehrere Sicherheitsmechanismen aktiv sind, wird von Forschern allgemein angenommen, dass die alleinige Nutzung dieses Double-Free für Remote-Code-Ausführung extrem schwierig ist.
Tool herunterladen