Inhalt
- Einführung
- Erste Ergebnisse.
- Blick in die Attrappe.
- Infektionskette.
- Technische Analyse.
- Stufe 1 – Bösartiges LNK-Skript.
- Stufe 2 – Bösartiges Pterois-Implantat.
- Stufe 3 – Bösartiges Isurus-Implantat.
- Stufe 4 – Bösartiger Cobalt Strike-Shellcode.
- Infrastruktur und Jagd.
- Anrechnung
- Fazit
- Seqrite Schutz.
- IOCs
- MITRE ATT&CK.
Einführung
Seqrite Das Labs APT-Team hat kürzlich eine Kampagne aufgedeckt, die wir wie folgt bezeichnet haben: Schwan-Vektor, die sich an Länder im Ostchinesischen Meer wie Taiwan und Japan richtet. Die Kampagne zielt auf Bildungseinrichtungen und den Maschinenbau ab und zielt darauf ab, gefälschte Lebensläufe von Bewerbern zu verschicken, die als Lockvogel dienen sollen.
Das gesamte Malware-Ökosystem dieser Kampagne umfasst vier Phasen. Die erste Phase besteht aus einer schädlichen LNK-Datei . In der zweiten Phase wird über eine bekannte LOLBin-Schwachstelle eine Verknüpfungsdatei erstellt, die das DLL-Implantat Pterois ausführt. Mithilfe unauffälliger Methoden wird die dritte Phase heruntergeladen und ausgeführt. Diese enthält mehrere Dateien, darunter eine legitime Windows-Anwendung, die wiederum per DLL-Sideloading das Implantat Isurus ausführt . Dieses führt schließlich die vierte Phase aus: den von Pterois heruntergeladenen schädlichen Shellcode Cobalt Strike .
In diesem Blog untersuchen wir die Komplexität und gehen auf jedes noch so kleine technische Detail der Kampagne ein, die wir während unserer Analyse entdeckt haben. Wir untersuchen die verschiedenen Phasen dieser Kampagne, beginnend mit der Analyse der Verknüpfungsdatei (.LNK) zu mehreren DLL-Implantaten und endend mit der Analyse des Shellcodes mit einem abschließenden Überblick.
Erste Erkenntnisse
Kürzlich im April entdeckte unser Team eine bösartige ZIP-Datei mit dem Namen歐買尬金流問題資料_20250413 (6).rar , was übersetzt so viel wie „ Oh mein Gott, Zahlungsflussproblemdaten – 13.04.2025 (6)“ bedeutet . Diese Datei wurde als vorläufige Infektionsquelle verwendet und enthielt verschiedene Dateien, darunter eine LNK-Datei und eine Datei mit der Erweiterung .PNG.
Die ZIP-Datei enthält eine schädliche LNK-Datei mit dem Namen „詳細記載提領延遲問題及相關交易紀錄.pdf.lnk “ (übersetzt: „Shortcut to PDF: Detailed Documentation of Withdrawal Delay Issues and Related Transaction Records.pdf.lnk “). Diese Datei führt eine als PNG-Datei namens „Chen_YiChun.png“ getarnte DLL-Payload aus. Die DLL wird anschließend über die bekannte LOLBin-Datei „RunDLL32.exe“ ausgeführt, die weitere Schadsoftware und eine als Köder dienende PDF-Datei herunterlädt.
Blick in den Köder
Als das erste DLL-Implantat, auch bekannt als Pterois, zunächst über LOLBin ausgeführt wurde, sahen wir, dass eine Lockvogeldatei namens rirekisho2025, die im Grunde für eine fast japanische Übersetzung von Curriculum Vitae (CV 2025) steht, heruntergeladen und zusammen mit anderen Implantaten und Binärdateien im Temp-Verzeichnis gespeichert wurde.
Auf der ersten Seite befindet sich ein japanisches Formular für Lebenslauf und beruflichen Werdegang „履歴書・職歴経歴書“ im Reiwa-Format (令和5年4月). Das Formular verfügt über einen einfachen Kopfbereich mit Feldern für persönliche Informationen wie Name (氏名), Datum, Geschlecht (男/女), Geburtsdatum, Adressfelder, E-Mail-Adresse (E-Mail) und Telefonnummern. In der oberen rechten Ecke befindet sich außerdem ein Platzhalterfeld für ein Foto. Der Bereich scheint größtenteils leer zu sein und enthält Zeilen für Angaben zu Ausbildung und beruflichem Werdegang. Wichtige Felder sind Einträge für verschiedene Jahre (月), Abschluss-/Qualifikationsstufen und Beschäftigungsdaten. Unten befinden sich Abschnitte für Lizenzen/Zertifizierungen und zusätzliche Notizen.
Auf der zweiten Seite gibt es zwei identische Abschnitte mit der Bezeichnung „職歴 1“ und „職歴 2“ für Einträge zum Beschäftigungsverlauf. Jeder Abschnitt enthält Felder für Firmennamen, Position, Beschäftigungsdaten und einen großen Abschnitt mit Notizen. Die Felder sind in einem ähnlichen Layout angeordnet und enthalten Leerzeichen für den Firmen-/Organisationsnamen (会社・団体名), den Positionstitel, das Beschäftigungsdatum und arbeitsbezogene Details. Es gibt auch einen Abschnitt mit rotem Text, der zusätzliche Informationen zu Dokumenten oder Materialien enthält (調査、調査料、ファイル等).
Auf der dritten und letzten Seite gibt es einen weiteren Abschnitt zum Beschäftigungsverlauf („職歴 3“) mit der gleichen Struktur wie die vorherige Seite – Firmenname, Position, Beschäftigungsdaten und Notizen. Darunter befinden sich fünf weitere Abschnitte zum Beschäftigungsverlauf mit wiederholten Feldern für Firmenname, Position und Beschäftigungsdaten, die jedoch kompakter erscheinen als die vorherigen Abschnitte. Jeder Abschnitt folgt dem gleichen Muster und fordert arbeitsbezogene Informationen in einem strukturierten Format an. Als Nächstes untersuchen wir die Infektionskette und die technische Analyse.
Infektionskette.

Technische Analyse.
Wir werden die technischen Möglichkeiten dieser Kampagne in vier verschiedene Teile aufteilen.
Stufe 1 – Bösartiges LNK-Skript.
Die ZIP-Datei enthält eine bösartige LNK-Datei namens 詳細記載提領延遲問題及相關交易紀錄.pdf.lnk, was übersetzt „Detaillierte Aufzeichnung von Auszahlungsverzögerungsproblemen und zugehörigen Transaktionsdatensätzen“ bedeutet. Ein anderer Name wird auch mit demselben LNK wie 針對提領系統與客服流程的改進建議.pdf.lnk angezeigt, was übersetzt bedeutet Vorschläge zur Verbesserung des Auszahlungssystems und des Kundenserviceprozesses. Erstellungszeitpunkt von LNK ist der 2025.
Bei der Analyse des Inhalts dieser bösartigen LNK-Datei stellten wir fest, dass ihr einziger Zweck darin besteht, eine Instanz des LOLBin zu erzeugen. rundll32.exe, das dann verwendet wird, um ein bösartiges DLL-Implantat namens auszuführen Pterois. Die Exportfunktion Trpo des Implantats mit einem interessanten Argument 1LwalLoUdSinfGqYUx8vBCJ3Kqq_LCxIg, das wir im späteren Teil dieser technischen Analyse untersuchen werden, um zu erfahren, wie dieses Argument vom Implantat genutzt wird.
Stufe 2 – Bösartiges Pterois-Implantat.
Als wir zunächst das bösartige RAR-Archiv untersuchten, fanden wir neben der bösartigen LNK-Datei eine weitere Datei mit der Erweiterung .PNG, die als Chen_YiChun.png bekannt ist.
Bei einer ersten Analyse haben wir herausgefunden, dass es sich bei der Datei im Grunde um ein DLL-Implantat handelt, und wir haben es als Pterois. Lassen Sie uns nun die technischen Einzelheiten dieses Implantats untersuchen.
Während wir die schädliche LNK-Datei analysierten, stellten wir fest, dass rundll32.exe verwendet wird, um die Exportfunktion Trpo dieser DLL-Datei auszuführen.
Ein Blick auf die Funktionalitäten des Implantats zeigt, dass es zwei Hauptfunktionen hat: Die erste besteht darin, API-Hashing durchzuführen, und die zweite wird verwendet, um die nächste Stufe der Malware herunterzuladen.
Die erste Funktion ist für die Auflösung aller APIs aus den DLLs wie NTDLL, UCRTBase, Kernel32 und anderen erforderlichen Bibliotheken sowie der für die gewünschten Funktionen erforderlichen APIs verantwortlich.
Dies geschieht durch einen ersten Zugriff auf den Process Environment Block (PEB), um die Liste der geladenen Module abzurufen. Der Code durchläuft diese Liste dann mithilfe der InMemoryOrderModuleList, die verknüpfte LDR_DATA_TABLE_ENTRY-Strukturen enthält – jede repräsentiert eine geladene DLL. Innerhalb jeder LDR_DATA_TABLE_ENTRY enthält das Feld BaseDllName (ein UNICODE_STRING) nur den Dateinamen der DLL (z. B. ntdll.dll), und das Feld DllBase enthält die Basisadresse im Speicher.
Während der Durchquerung wird die Funktion konvertiert den BaseDllName in einen ANSI-String, normalisiert ihn durch Konvertierung in Groß und berechnet einen SDBM-Hash der resultierenden Zeichenfolge (ohne Berücksichtigung der Groß- und Kleinschreibung). Dieser berechnete Hash wird mit einem der Funktion bereitgestellten Ziel-Hash verglichen. Bei einer Übereinstimmung wird die Basisadresse der entsprechenden DLL aus dem Feld „DllBase“ abgerufen und zurückgegeben. 
Sobald die Basisadresse der DLL zurückgegeben wurde, verwendet der Code einen ähnlichen SDBM-Hashing-Algorithmus (ohne Berücksichtigung der Groß- und Kleinschreibung), um API-Funktionsadressen innerhalb von NTDLL.DLL aufzulösen. Dies geschieht durch Parsen der Exporttabelle der DLL und Berechnen der SDBM-Hash jedes exportierten Funktionsnamens und Vergleichen mit einem Ziel-Hash, um die passende Funktionsadresse zu finden.
Hier ist ein einfaches Python-Skript, das Hashing auswertet und durchführt. In der ersten Funktion wurden also insgesamt vier Funktionen aufgelöst. 
In ähnlicher Weise werden die APIs für die beiden anderen dynamisch verknüpften Bibliotheken ucrtbase.dll und Kernel32.dll auf dieselbe Weise aufgelöst.
Im nächsten Funktionssatz, in dem versucht wird, die APIs von DLLs wie Iphlapi.dll, shell32.dll und WinHTTP.dll aufzulösen, wird zunächst die Basisadresse der DLL aufgelöst, genau wie in den vorherigen Funktionen. Nach der Rückgabe wird eine einfache, aber pseudo-analytische Technik verwendet, die Timer-Objekte zum Laden der oben genannten DLLs nutzt.
Zunächst wird mithilfe von RtlCreateTimerQueue ein Timer-Objekt erstellt. Sobald das Timer-Objekt erstellt ist, wird eine weitere API, RtlCreateTimer, verwendet, um eine Rückruffunktion auszuführen. In diesem Fall handelt es sich dabei um die API LoadLibraryW, die anschließend zum Laden der DLL verwendet wird. 

Anschließend wird mit GetModuleHandleW ein Handle für die IPHLAPI.DLL abgerufen. Sobald dies gelingt, wird die API RtlDeleteTimerQueue verwendet, um das Timer-Objekt zu löschen und freizugeben. Anschließend wird eine API GetAdaptersInfo über einen Hash aufgelöst. 
Auf ähnliche Weise werden auch andere DLLs geladen. Als Nächstes werden wir uns den späteren Teil des Implantats ansehen, nämlich den Satz von Funktionen, die für das Herunterladen des nächsten Stagers verantwortlich sind.
Die Funktion beginnt damit, zunächst den gesamten Befehlszeilenparameter abzurufen, der aus LOLBin und dem Argument besteht, das später auf 1LwalLoUdSinfGqYUx8vBCJ3Kqq_LCxIg gekürzt wird, was im Grunde eine fest codierte Datei-ID ist. 

Dann verwendet es eine Technik zum Missbrauch Google Drive als Command-and-Control-Server indem Sie zunächst eine Authentifizierung mit einem legitimen OAuth-Anmeldeinformationens. Nachdem ein gültiges Zugriffstoken über einen ordnungsgemäß formatierten OAuth-Austausch abgerufen wurde, verwendet es die Google Drive-API, um Dateien von bestimmten fest codierten Datei-IDs abzurufen, darunter schädliche ausführbare Dateien, DLLs und Konfigurationsdateien, die es in vorgegebene Pfade in C:\Windows\Temp herunterlädt.
Anschließend setzt es den entsprechenden Content-Type-Header auf „application/x-www-form-urlencoded“, um sicherzustellen, dass die Anfrage von Googles Authentifizierungsservern korrekt verarbeitet wird. Nach diesem Austausch führt es eine präzise JSON-Analyse durch, bei der es das Feld „access_token“ mithilfe von cJSON_GetObjectItem aus Googles Antwort extrahiert. Ein Blick in den Speicherauszug zeigt deutlich den erhaltenen OAuth-Token, beginnend mit „ya29.a0AZYk“, was einen erfolgreichen Authentifizierungsprozess bestätigt. Sobald dieser Token analysiert und extrahiert wurde, wird er sorgfältig gespeichert und anschließend zur Autorisierung von API-Aufrufen an Google Drive verwendet. Dadurch kann das Implantat zusätzliche Nutzdaten herunterladen und gleichzeitig als legitimer Datenverkehr von Google Drive erscheinen. Das aus dem Speicher extrahierte, analysierte JSON sieht in etwa so aus.
Sobald die Dateien heruntergeladen sind, verwendet ein anderer Teil dieses Implantats CreateThread, um diese heruntergeladenen Köder und andere auszuführende Dateien zu erzeugen.
Schließlich werden diese Dateien heruntergeladen, der Köder wird auf dem Bildschirm angezeigt und die Aufgabe der Pterois-Implantation ist erledigt. 
Nun, der letzte Teil dieses Implantats ist, sobald die gesamte Aufgabe abgeschlossen ist, geht es weiter und führt aus Selbstlöschung um seine Spuren zu verwischen und die Wahrscheinlichkeit einer Entdeckung zu verringern.
Die Selbstlöschroutine verwendet eine Technik zur verzögerten Ausführung, indem sie einen cmd.exe-Prozess startet, der den lokalen Host anpingt, bevor er die Datei löscht. Dadurch wird sichergestellt, dass die Löschung erfolgt, nachdem der aktuelle Prozess abgeschlossen ist und seine Dateihandles freigegeben hat.
Als Nächstes werden wir uns das andere DLL-Implantat ansehen, das von diesem bösartigen Loader heruntergeladen wurde.
Stufe 3 – Bösartiges Isurus-Implantat.
Das vorherige Implantat lädt insgesamt vier Samples herunter. Eines davon ist eine legitime, von Windows signierte Binärdatei namens PrintDialog.exe.
Nun missbraucht die andere Datei PrintDialog.dll, die das andere Implantat mit dem Kompilierungszeitstempel 2025-04-08 03:02:59 UTC ist, für die Ausführung des Shellcode-Inhalts in der Datei ra.ini verantwortlich ist, eine sehr bekannte Technik, bekannt als DLL-Sideloading indem die schädliche DLL im aktuellen Verzeichnis platziert wird, da PrintDialog.exe den Pfad nicht explizit angibt und dieses Implantat, das wir Isurus nennen, schädliche Aufgaben ausführt.
Wenn wir uns die Exporttabelle ansehen, können wir sehen, dass das bösartige Implantat nur zwei Funktionen exportiert, eine davon ist der normale DllEntryPoint und die andere ist die bösartige DllGetActivationFactory-Exportfunktion.
Wenn wir uns die Exportfunktion ansehen, können wir sehen, dass dieser Isurus die API-Auflösung über Hash zusammen mit der Shellcode-Extraktion durchführt und den Shellcode im Speicher lädt und ausführt.
Das Implantat löst die APIs zunächst auf, indem es Folgendes durchführt: PEB-Gehtechnik, durchquert die Prozessumgebungsblock (PEB) um die Basisadresse der benötigten DLLs wie ntdll.dll und kernel32.dll zu finden. Sobald die Basisadresse einer Ziel-DLL identifiziert ist, analysiert das Implantat die PE (Portable Executable) Header der DLL, um die Verzeichnistabelle exportieren.
Um nun bestimmte APIs aufzulösen, verwendet das Implantat eine Hashing-Algorithmus - CRC32. Anstatt einen Export nach Namen zu suchen, berechnet der Loader einen Hash jedes Funktionsnamens in der Exporttabelle und vergleicht ihn mit vorkalkulierten, im Code eingebetteten Konstanten, um die Hashes schließlich aufzulösen.
Sehen wir uns nun an, wie dieses Implantat den Shellcode extrahiert und lädt.
Zunächst wird die vorhandene Datei ra.ini mit Leseberechtigungen über die CreateFileW-API geöffnet. Sobald der Handle abgerufen wurde, wird die Dateigröße mithilfe einer weiteren API namens GetFileSize ermittelt. Sobald die Dateigröße ermittelt ist, wird sie über die ReadFile-API verarbeitet.
Anschließend wird der Shellcode mithilfe eines fest codierten RC4-Schlüssels wquefbqw entschlüsselt und zurückgegeben.
Nach dem Extrahieren des Shellcodes wird dieser mithilfe einer syscall-basierten Ausführungstechnik direkt im Speicher ausgeführt. Bei diesem Ansatz werden die entsprechenden Syscall-Nummern in das EAX-Register geladen und Low-Level-Systemaufrufe aufgerufen, um Speicher zuzuweisen, den Shellcode zu schreiben, Speicherschutzmechanismen zu ändern und schließlich den Shellcode auszuführen – alles ohne die Verwendung von Windows-API-Funktionen höherer Ebene. Der PDB-Pfad dieses Implantats veranschaulicht auch die Funktionalität:
- C:\Benutzer\test\source\repos\sysldr\x64\Release\weqfdqwefq.pdb
Im nächsten Teil werden wir uns den bösartigen Shellcode und seine Funktionsweise ansehen.
Stufe 4 – Bösartiger Cobalt Strike-Shellcode.
Beim Betrachten der Datei stellten wir fest, dass der Shellcode verschlüsselt war. Anschließend entschlüsselten wir den Shellcode mithilfe des Schlüssels und eines einfachen Python-Skripts.
Bei der Analyse des Shellcodes stellten wir außerdem fest, dass es sich um ein auf Cobalt Strike basierendes Beacon handelt. Daher hier die extrahierten Konfigurationen. Extrahierte Beacon-Konfiguration:
Ziele der Prozessinjektion:
windir\syswow64\bootcfg.exe
windir\sysnative\bootcfg.exe
Infrastrukturinformationen:
hxxps://52.199.49.4:7284/jquery-3.3.1.min.js
hxxps://52.199.49.4:7284/jquery-3.3.2.min.js
Anforderungstext:
GET /jquery-3.3.1.min.js HTTP/1.1
Host: 52.199.49.4:7284
Benutzeragent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/80.0.3987.122 Safari/537.36
Akzeptieren: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referrer: http://code.jquery.com/
Akzeptierte Kodierung: gzip, deflate
Cookie: __cfduid=dT98nN_EYDF96RONtS1uMjE0IZIWy9GljNoWh6rXhEndZDFhNo_Ha4AmFQKcUn9C4ZUUqLTAI6-6HUu3jA-WcnuttiUnceIu3FbAlBPitw52PirDxM_nP460iXUlVqW6Lvv__Wr3k09xnyWZN4besu1gVlk3JWS2hX_yt5EioqY
Verbindung: Keep-Alive
Cache-Steuerung: kein Cache
HTTP-Einstellungen GET-Hash:
52407f3c97939e9c8735462df5f7457d
HTTP-Einstellungen POST-Hash:
7c48240b065248a8e23eb02a44bc910a
Aufgrund der umfangreichen Dokumentation und der Verbreitung von Cobalt Strike in offensiven Sicherheitsoperationen wird eine eingehende Analyse als unnötig erachtet. Die verfügbaren extrahierten Beacon-Konfigurationen bestätigen jedoch, dass der Bedrohungsakteur Cobalt Strike als Komponente seines Intrusion-Toolkits in dieser Kampagne nutzte.
Infrastruktur und Jagd.
Wie wir bei der Analyse der Implantate feststellten, nutzte der Angreifer Google Drive als Command-and-Control-System (C2), wodurch zahlreiche Details wie sensible API-Schlüssel und weitere Informationen preisgegeben wurden. Wir fanden außerdem zugehörige Details zur Infrastruktur des Angreifers, darunter die zugehörige Gmail-Adresse und eine Liste der Implantate, die für andere, bisher nicht im realen Einsatz befindliche Kampagnen geplant waren. Informationen zum Google Drive-Konto des Bedrohungsakteurs: { “user”: { “kind”: “drive#user”, “displayName”: “Swsanavector56”, “photoLink”: “https://lh3.googleusercontent.com/a/ACg8ocKiv7cWvdPxivqyPdYB70M1QTLrTsWUb-QHii8yNv60kYx8eA=s64”, “me”: true, “permissionId”: “09484302754176848006”, “emailAddress”: “swsanavector42@gmail.com” }} Liste der im Google Drive gefundenen Dateien
| Dateiname | Datei-ID | Typ | Größe | SHA-256-Hash |
| PrintDialog.exe | 14gFG2NsJ60CEDsRxE5aXvFN0Fs83YMMG | EXE | 123,032 bytes | 7a942f65e8876aeec0a1372fcd4d53aa1f84d2279904b2b86c49d765e5a29d6f |
| PrintDialog.dll | 1VMrUQlxvKZZ-fRyQ8m3Ai8ZEhkzE3g5T | DLL | 108,032 bytes | a9b33572237b100edf1d4c7b0a2071d68406e5931ab3957a962fcce4bfc2cc49 |
| ra.ini | 1JAXiUPz6kvzOlokDMDxDhA4ohidt094b | INI | 265,734 bytes | 0f303988e5905dffc3202ad371c3d1a49bd3ea5e22da697031751a80e21a13a7 |
| rirekisho2025.pdf | 17hO28MbwD2assMsmA47UJnNbKB2fpM_A | 796,062 bytes | 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd | |
| rirekisho2021_01.pdf | 1LwalLoUdSinfGqYUx8vBCJ3Kqq_LCxIg | 796,062 bytes | 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd | |
| wbemcomn.dll | 1aY5oX6EIe4hfGD6QgAAzmCcwxM4DoLke | DLL | 181,760 bytes | c7b9ae61046eed01651a72afe7a31de088056f1c1430b368b1acda0b58299e28 |
| svhost.exe | 1P8_PG2DGtLWA3q8F4XPy43GMLznZFtQv | EXE | 209,920 bytes | e0c6f9abfc11911747a7533f3282e7ff0c10fc397129228621bcb3a51f5be980 |
| 0g9pglZr74.ini | 1UE7gNfUIuTRzgjIv188hRIZG3YNtbvkV | INI | 265,734 bytes | 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d |
| KpEvjK3KG2.enc | 1RxJi1RZMhcF31F1lgQ9TJfXMuvSJkYQl | ENC | 265,734 bytes | e86feaa258df14e3023c7a74b7733f0b568cc75092248bec77de723dba52dd12 |
| LoggingPlatform.dll | 1lZgq1ZNkK88eJsl6GlcvpzRuFlBgxEOF | DLL | 112,640 bytes | 9df9bb3c13e4d20a83b0ac453e6a2908b77fc2bf841761b798b903efb2d0f4f7 |
| 0g9pglZr74.ini | 1ky1fEzC6v70U8-RbHBZG_i3YI79Ir8Og | INI | 265,734 bytes | 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d |
| python310.dll | 1RuMLCJJ5hcFiVXbcg8kZK3giueWiVbTJ | DLL | 189,952 bytes | e1b2d0396914f84d27ef780dd6fdd8bae653d721eea523f0ade8f45ac9a10faf |
| ra.ini | 13ooFQAYZ27Bx015UQG3qkHR293wlcL90 | INI | 265,734 bytes | 777961d51eb92466ca4243fa32143520d49077a3f7c77a2fcbec183ebf975182 |
| pythonw.exe | 19n1ta4hyQguQQmR8C6SAsZuGNQF4-ddU | EXE | 97,000 bytes | 040d121a3179f49cd3f33f4bc998bc8f78b7f560bfd93f279224d69e76a06e92 |
| python.xml | 1k4Q18FByEXW98Rr1CXyVVC-Kj8T0NBDW | XML | 1,526 bytes | c8ed52278ec00a6fbc9697661db5ffbcbe19c5ab331b182f7fd0f9f7249b5896 |
| OneDriveFileLauncher.exe | 137tczdqf5R7RMRoOb9fI_YjZuncd_TUn | EXE | 392,760 bytes | 7bf5e1f3e29beccca7f25d7660545161598befff88506d6e3648b7b438181a75 |
| wbemcomn.dll | 1xUPkhfaWIgYs5HSmxYPC_sZT4QKm_T7i | DLL | 181,760 bytes | c7b9ae61046eed01651a72afe7a31de088056f1c1430b368b1acda0b58299e28 |
| 0g9pglZr74.ini | 1Ylpf9XVnztxeGk-joNw9df3b0Mv8wYU3 | INI | 265,734 bytes | 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d |
| svhost.exe | 1wo1gZ9acixvy925lM6QAkz6Uaj6cRXxx | EXE | 209,920 bytes | e0c6f9abfc11911747a7533f3282e7ff0c10fc397129228621bcb3a51f5be980 |
| llv | 1ZuzB7x0zzgz34eNhHp_TI3auPhHj8Xhc | Mappe | - | - |
Wir haben auch beobachtet, dass diese Hostadresse dort verwendet wurde, wo der Cobalt-Strike unter ASN gehostet wurde 16509 wobei sich der IP-Standort in Japan befindet.
Darüber hinaus haben wir festgestellt, dass neben Google Drive C2 auch die Gmail-Adresse zum Erstellen von Konten und Ausführen von Aktivitäten verwendet wurde, die derzeit von mehreren Plattformen wie Google Maps, YouTube und Apple-basierten Diensten entfernt wurden.
Namensnennung.
Obwohl die Zuordnung ein wichtiger Aspekt bei der Analyse aktueller und zukünftiger Motive von Bedrohungsakteuren bleibt, haben wir eine ähnliche Vorgehensweise wie bei dieser Kampagne beobachtet, insbesondere im Hinblick auf DLL-Sideloading-Techniken. Zuvor hatte die Winnti-APT-Gruppe PrintDialog.exe mit dieser Methode ausgenutzt. Bei der Untersuchung des zweiten Implantats, Isurus, fanden wir zudem Ähnlichkeiten mit der von der Lazarus-Gruppe verwendeten Codebasis, die DLL-Sideloading-Techniken gegen wmiapsrv.exe einsetzte – eine Datei, die auf dem Google Drive-Konto des Bedrohungsakteurs hochgeladen wurde. Darüber hinaus stellten wir einige Ähnlichkeiten zwischen Swan Vector und den jüngsten Zielen von APT10 in Japan und Taiwan fest.
Obwohl diese Beobachtungen allein keine konkrete Zuordnung ermöglichen , können wir in Kombination mit linguistischen Analysen, dem Reifegrad der Implantate und anderen gesammelten Artefakten diesen Bedrohungsakteur mit mittlerer Sicherheit der ostasiatischen Geosphäre zuordnen.
Fazit.
Nach eingehender Analyse und Recherche haben wir festgestellt, dass der Angreifer seinen Sitz in Ostasien hat und seit Dezember 2024 aktiv ist . Er zielt auf mehrere Personalvermittlungsunternehmen in Taiwan und Japan ab. Der Angreifer nutzt eigens entwickelte Implantate, darunter Downloader, Shellcode-Loader und Cobalt Strike, und setzt dabei auf diverse Verschleierungstechniken wie API-Hashing, direkte Systemaufrufe, Funktions-Callbacks, DLL-Sideloading und Selbstlöschung, um keine Spuren auf dem Zielsystem zu hinterlassen.
Wir gehen davon aus, dass der Angreifer die oben genannten Implantate, die für bevorstehende Kampagnen vorgesehen sind, verwenden wird. Dabei wird er DLL-Sideloading gegen Anwendungen wie Python, WMI Performance Adapter Service und die ausführbare Datei OneDrive Launcher einsetzen , um seinen bösartigen Cobalt Strike Beacon mit CV-basierten Ködern auszuführen.
Seqrite Schutz.
- Pterois.S36007342.
- Trojan.49524.GC
- trojan.49518.GC.
Indikatoren für Kompromittierung (IOCs)
Lockvögel (PDFs)
| Dateiname | SHA-256 |
| rirekisho2021_01.pdf | 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd |
| rirekisho2025.pdf | 8710683d2ec2d04449b821a85b6ccd6b5cb874414fd4684702f88972a9d4cfdd |
IP/Domänen
| IP |
| 52.199.49.4:7284 |
Bösartige Implantate
| Dateiname | SHA-256 |
| wbemcomn.dll | c7b9ae61046eed01651a72afe7a31de088056f1c1430b368b1acda0b58299e28 |
| LoggingPlatform.dll | 9df9bb3c13e4d20a83b0ac453e6a2908b77fc2bf841761b798b903efb2d0f4f7 |
| PrintDialog.dll | a9b33572237b100edf1d4c7b0a2071d68406e5931ab3957a962fcce4bfc2cc49 |
| python310.dll | e1b2d0396914f84d27ef780dd6fdd8bae653d721eea523f0ade8f45ac9a10faf |
| Chen_YiChun.png | de839d6c361c7527eeaa4979b301ac408352b5b7edeb354536bd50225f19cfa5 |
| 針對提領系統與客服流程的改進建議.pdf.lnk | 9c83faae850406df7dc991f335c049b0b6a64e12af4bf61d5fb7281ba889ca82 |
Shellcode und andere verdächtige Binärdateien
| Dateiname | SHA-256 |
| 0g9pglZr74.ini | 9fb57a4c6576a98003de6bf441e4306f72c83f783630286758f5b468abaa105d |
| ra.ini | 0f303988e5905dffc3202ad371c3d1a49bd3ea5e22da697031751a80e21a13a7 |
| python.xml | c8ed52278ec00a6fbc9697661db5ffbcbe19c5ab331b182f7fd0f9f7249b5896 |
| KpEvjK3KG2.enc | e86feaa258df14e3023c7a74b7733f0b568cc75092248bec77de723dba52dd12 |
MITRE ATT&CK.
| Taktik | Technik-ID | Technikname | Untertechnik-ID | Name der Untertechnik |
| Erster Zugriff | T1566 | Phishing | T1566.001 | Spearphishing-Anhang |
| Ausführung | T1129 | Gemeinsam genutzte Module | ||
| Ausführung | T1106 | Native API | ||
| Ausführung | T1204 | Benutzerausführung | T1204.002 | Schädliche Datei |
| Beharrlichkeit | T1574 | Hijack-Ausführungsablauf | T1574.001 | DLL-Seitenladen |
| Privilegien Eskalation | T1055 | Prozessinjektion | T1055.003 | Thread-Ausführungs-Hijacking |
| Privilegien Eskalation | T1055 | Prozessinjektion | T1055.004 | Asynchroner Prozeduraufruf |
| Verteidigungsflucht | T1218 | Ausführung des System-Binärproxys | T1218.011 | Rundll32 |
| Verteidigungsflucht | T1027 | Verschleierte Dateien oder Informationen | T1027.007 | Dynamische API-Auflösung |
| Verteidigungsflucht | T1027 | Verschleierte Dateien oder Informationen | T1027.012 | LNK-Symbolschmuggel |
| Verteidigungsflucht | T1027 | Verschleierte Dateien oder Informationen | T1027.013 | Verschlüsselte/kodierte Datei |
| Verteidigungsflucht | T1070 | Blinker entfernen | T1070.004 | Löschen von Dateien |
| Command and Control | T1102 | Internetservice |



