
Eine PoC-Demo zu CVE-2023-38831
Ein POC-Demo zu CVE-2023-38831
Kurzbeschreibung der Schwachstelle
Wie funktioniert die Schwachstelle?

Erster Teil der Ausnutzung
Der erste Teil findet auf dem Angreifer-Rechner statt, damit die Ausnutzung beginnen kann.

1) Zuerst müssen wir den Exploit-Ordner erstellen, der den bösartigen Anhang, die „pdf“, den Python-Exploit-Code und das Bat-Skript enthält, mit folgendem Befehl: „git clone https://github.com/HDCE-inc/CVE-2023-38831“

2) So sieht der Ordner aus, bevor eine Ausnutzung stattfindet,

3) Ermitteln der IP-Adresse des Kali-Rechners über ifconfig:

4) Dann ändern wir das vorhandene Skript in script.bat auf die folgende Befehlszeile (obiges Bild):
„start“ startet den Befehlszeilenprozess, „/min“ minimiert die Eingabeaufforderung im Hintergrund, ncat stellt eine Verbindung zur Angreifer-IP-Adresse über Port 4444 her, und -e cmd.exe führt die Befehlszeile in der Eingabeaufforderung aus.

5) Dies zeigt den folgenden erklärten exploit.py-Code:
1 bezieht sich auf die Benutzereingabe für den Köderdateinamen (document.pdf), den Skriptdateinamen (script.bat) und die Ausgabe, wie das Opfer die RAR-Datei sieht – in diesem Fall speichern wir sie als getrich.rar.
2 bezieht sich auf die Überprüfungen, ob vorhandene Dateien im CVE-2023-38831-Ordner auf dem Kali-Linux-Rechner mit der richtigen Namenskonvention existieren. Bei falscher oder doppelter Benennung wird eine Fehlermeldung ausgegeben und das Programm gestoppt und beendet.
3 bezieht sich auf das Erstellen eines temporären Dateiverzeichnisses mit os.mkdir(), um die neu erstellte Datei zu speichern, bevor sie in ein Archiv komprimiert und als Arbeitsbereich verwendet wird.
4 bezieht sich auf eine Kopierzeile, shutil.copyfile, um sowohl die Köder- als auch die Skriptdatei in ihre jeweiligen Verzeichnisse innerhalb von „tmp“ zu kopieren, um sicherzustellen, dass alle notwendigen Dateien korrekt und vorhanden sind, bevor mit dem nächsten Schritt fortgefahren wird. Der nächste Schritt, shutil.make_archive, erstellt ein Archiv aus dem „tmp“ namens „tmp.zip“, das alles im „tmp“-Ordner enthält.
5 bezieht sich auf den Erfolg der Ausführung des obigen Codes und die erfolgreiche Erstellung einer RAR-Datei als Exploit über die Benutzereingabe von Köderdatei, Skriptdatei und Ausgabedateinamen.

6) Nachdem wir unsere IP-Adresse ermittelt und das Bat-Skript geändert haben, können wir nun die bösartige „.rar“ erstellen, indem wir den Befehl „python exploit.py“ ausführen.
Die exploit.py erfordert die Benutzereingabe in drei Feldern: den vorhandenen Köderdateinamen (document.pdf), den zuvor geänderten Skriptdateinamen (script.bat) und einen Ausgabe-RAR-Dateinamen, um das Opfer zum Herunterladen und Klicken auf die Datei zu verleiten. Dieser benötigt einen passenden Namen – in diesem Fall haben wir „steps-to-generate-income.rar“ verwendet. CVE-2023-38831 ist dann bereit, den Opfer-Rechner auszunutzen.
Zweiter Teil der Ausnutzung
Der zweite Teil findet sowohl auf dem Kali-Rechner als auch auf dem Opfer-Rechner (einer Windows 11 VM) statt.

1) Wir erstellen entweder eine bösartige Website oder senden den Anhang an das Opfer.
Auf der linken Seite führen wir „python -m http.server 8080“ aus. Dieser Befehl dient dazu, zu erfassen, welche IP-Adresse auf diese bösartige URL zugreift, sodass wir die Opfer-IP-Adresse kennen, und horcht auf verschiedene HTTP-Anfragen wie „200“ von einer bestimmten IP-Adresse. Auf der rechten Seite wird das Opfer zu dieser IP-Adresse gelockt und zum Herunterladen der Datei „steps-to-generate-income.rar“ verleitet.

2) Sobald das Opfer erfolgreich dazu verleitet wurde, die bösartige Datei „steps-to-generate-income.rar“ herunterzuladen, wird angezeigt, welche IP-Adresse die Datei zu welchem Zeitpunkt heruntergeladen hat. Aus diesen Informationen können wir die Opfer-IP-Adresse ermitteln.

3) Dann richten wir auf dem Kali-Rechner einen ncat auf Port 4444 ein, da Port 4444 mit demselben Port synchronisiert ist, der in script.bat geschrieben steht und auf dem Opfer-Rechner ausgeführt werden soll.
Sobald das Opfer auf die document.pdf klickt, führt das bat.script die Befehlszeile aus und minimiert sie sofort im Hintergrund. Dies ermöglicht eine Hintertür-Verbindung für den Angreifer.