CVE-2023-38831 - WinRAR
Dieses Repository enthält eine Erkennungslogik für CVE-2023-38831 (WinRAR ZIP-Datei-Spoofing/Doppelerweiterungs-Exploit) mit rohen Abfragen/Code-Blöcken und ETW-spezifischen Providernamen + Ereignis-IDs. Eine anfällige Version von WinRAR (< 6.23) auf dem Zielsystem
CVE-2023-38831 wird ausgenutzt, wenn:
Der Benutzer eine bösartige ZIP in WinRAR öffnet
Das Archiv enthält:
● Eine Tarn-Datei (z. B. invoice.pdf)
● Ein Verzeichnis mit demselben Namen (z. B. invoice.pdf )
● Innerhalb des Verzeichnisses zwei Dateien mit demselben Namen, aber leicht unterschiedlichen Namen (bei einer Datei Leerzeichen und eine beliebige Erweiterung am Ende, z. B. wenn die erste Datei "invoice.pdf " ist, kann die zweite ein Skript oder eine ausführbare Datei wie "invoice.pdf .cmd" sein)
WinRAR führt das Skript oder die ausführbare Datei aus, anstatt das Dokument (in diesem Fall „PDF“) zu öffnen
Diese Ausführung wird durch den Aufruf der Funktion ShellExecuteExW ausgelöst, die die Datei ausführt, wobei shExecInfo übergeben wird (ShellExecute über Explorer)
WinRAR erzeugt einen untergeordneten Prozess (cmd, powershell, mshta, wscript, exe – je nachdem, was im Ordner vorhanden ist)
Die Ausführung erfolgt oft aus Temp / AppData / extrahiertem Pfad
Ablaufübersicht Benutzer öffnet Archiv
↓
WinRAR zeigt Tarn-Datei an
↓
Benutzer doppelklickt auf Dokument
↓
WinRAR extrahiert Verzeichnis mit demselben Namen
↓
Ausführbare Datei geschrieben nach *.pdf\*.pdf .exe
↓
ShellExecute über Explorer
↓
ImageLoad der ausführbaren Datei
↓
Payload-Ausführung
Warum dieser Ablauf für die Erkennung wichtig ist
● Keine Makro-Nutzung
● Keine Abhängigkeit von Prozesserzeugung
● Exploit basiert auf Dateisystem-Tarnung
● Hochzuverlässiges, rauscharmes Signal
Wichtige technische Details
Die Dateien werden in einer speziellen Struktur geschrieben
Wie wenn man zwei Objekte (Datei/Verzeichnis) mit demselben Namen hat. Wenn man in einer Archivdatei eine Datei und ein Verzeichnis mit demselben Namen hat und die Datei temporär öffnen möchte, indem man in der geöffneten Archivdatei darauf doppelklickt, extrahiert WinRAR diese Datei für Sie. Es extrahiert auch alle Dateien, die denselben Namen wie die Zieldatei haben. Alle werden in ein temporäres Verzeichnis im %tmp%-Pfad geschrieben.
| Datei-/Verzeichnisname | Extraktionspfad |
| ------------------------------------------------------ | --------------------------------------------------------------------------------- |
| CLASSIFIED_DOCUMENTS.txt <– darauf geklickt (Zieldatei) | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
| CLASSIFIED_DOCUMENTS.txt .cmd <– Datei im Verzeichnis | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
Wenn sich in einem temporären (Dekomprimierungs-) Verzeichnis zwei Dateien mit demselben Namen, aber unterschiedlicher Größe (z. B. 20k und 12k) befinden und Sie das Archiv öffnen und die erste Datei 1.txt (20k) öffnen, fordert WinRAR Sie auf, die Datei durch die zweite Datei 1.txt (10k) zu ersetzen. Wenn Sie auf "Ja" klicken, wird nur die zweite Datei 1.txt geöffnet. Diese Bedingung kann als Ausschluss hinzugefügt werden.
Wichtiger Punkt für die Erkennungslogik
Prozessausführung, die von einem ZIP-Extraktionspfad oder temporärem Verzeichnis ausgelöst wird, mit einer irreführenden Erweiterung oder einem Ordner, der sich als Datei tarnt
Wenn WinRAR eine Datei zur Dekomprimierung im temporären Verzeichnis freigibt, muss es zwei Dateien mit demselben Namen, aber leicht unterschiedlichen Namen enthalten (Leerzeichen und eine beliebige Erweiterung am Ende), z. B. den Namen der Hauptdatei mit einem " " (CLASSIFIED_DOCUMENTS.pdf ) am Ende und dann ".cmd" (CLASSIFIED_DOCUMENTS.pdf .cmd).
Wenn WinRAR eine DLL lädt und die Funktion ShellExecuteExA aufruft, hat der Parameter "pExecInfo" einen Pfad mit einem Leerzeichen und einer beliebigen Erweiterung am Ende, z. B. "CLASSIFIED_DOCUMENTS.pdf .cmd."
ETW-Anbieter und Erkennungsphilosophie (nur ETW) ETW-Anbieter
| Zweck | ETW-Anbieter |
| -------------------------- | ------------------------------------- |
| Prozesserstellung | `Microsoft-Windows-Kernel-Process` |
| Befehlszeilen-Sichtbarkeit | `Microsoft-Windows-Security-Auditing` |
| Dateioperationen (optional)| `Microsoft-Windows-Kernel-File` |
Die Erkennung basiert auf (falls keine ProcessStart-, CreateProcess- oder EDR-artige Eltern/Kind-Logik vorhanden ist):
● Dateisystem-ETW
● Shell / Explorer-ETW
● Image-Load-ETW (optional, nicht zur Erstellung)
● Befehlszeilen-ETW (optional)
Kern-ETW-Anbieter
| Zweck | ETW-Anbieter |
| -------------------------- | ------------------------------------- |
| Verzeichniserstellung | `Microsoft-Windows-Kernel-File` |
| EXE-Erstellung | `Microsoft-Windows-Kernel-File` |
| Shell-Ausführung | `Microsoft.Windows.ShellExecute` |
| Image Load | `Microsoft-Windows-Kernel-Image` |
| Explorer | `Microsoft-Windows-Explorer` |
| Shell | `Microsoft-Windows-Shell-Core` |
Rohe Erkennungslogik
Auf hoher Ebene erkennt die Logik:
● WinRAR.exe initiiert Dateischreibvorgänge
● Erstellung eines Verzeichnisses und einer Datei mit demselben Basisnamen
● Ausführbare Erweiterung nach Umbenennung oder Überschreibung
● Sequenz innerhalb eines engen Zeitfensters (<2s)
Dieses Muster ist in gutartigen Arbeitsabläufen äußerst selten, aber zentral für den Ausführungspfad des Exploits.
● Die Regel vermeidet absichtlich:
● Befehlszeileninspektion
● Verfolgung untergeordneter Prozesse
● Vollständiges Hashing der Datei
Die Erkennung der Kernlogik wird unten zusammen mit einem Konfidenzniveau und einer kurzen Begründung erwähnt.