Die Forscher von ESET beobachteten ab 2023 mehrere Kampagnen gegen thailändische Regierungseinrichtungen. Die Angriffe nutzten modifizierte Komponenten, die zuvor der chinesischen APT-Gruppe Mustang Panda zugeschrieben wurden. Später kamen neue Tools hinzu, die Dienste wie Pastebin, Dropbox, OneDrive und GitHub missbrauchten. Diese führen Befehle auf kompromittierten Computern aus und exfiltrieren sensible Dokumente.
Basierend auf unseren Erkenntnissen ordnen wir diese Aktivitäten einem separaten Bedrohungsakteur zu. Die häufige Verwendung der Zeichenfolge [Bb]ectrl im Code hat uns zum Namen CeranaKeeper inspiriert. Dies ist ein Wortspiel aus "Beekeeper" (Imker) und der Bienenart Apis Cerana, der asiatischen Honigbiene.
Die wichtigsten Punkte dieses Blogposts:
- ESET-Forscher entdeckten einen neuen, mit China verbündeten Bedrohungsakteur, CeranaKeeper, der es auf Regierungseinrichtungen in Thailand abgesehen hat. Einige seiner Tools wurden zuvor von anderen Forschern Mustang Panda zugeschrieben.
- Die Gruppe aktualisiert ständig ihre Backdoor, um der Entdeckung zu entgehen, und variiert ihre Methoden, um eine massive Datenexfiltration zu unterstützen.
- CeranaKeeper missbraucht beliebte, legitime Cloud- und File-Sharing-Dienste wie Dropbox und OneDrive, um benutzerdefinierte Backdoors und Extraktions-Tools zu implementieren.
- Die Gruppe nutzt die Pull-Request- und Issue-Comment-Funktionen von GitHub, um eine getarnte Reverse Shell zu erstellen. GitHub, eine beliebte Online-Plattform für den Austausch und die gemeinsame Arbeit an Code, dient dabei als C&C-Server.
CeranaKeeper ist seit mindestens Anfang 2022 aktiv. Die Gruppe zielt vor allem auf staatliche Einrichtungen in asiatischen Ländern wie Thailand, Myanmar, Philippinen, Japan und Taiwan. Wir vermuten eine Ausrichtung auf chinesische Interessen. Bemerkenswert ist die unermüdliche Datenjagd der Gruppe. Die Angreifer setzen eine Vielzahl von Werkzeugen ein, um möglichst viele Informationen aus kompromittierten Netzwerken zu extrahieren. In der analysierten Operation verwandelte die Gruppe kompromittierte Maschinen in Update-Server. Sie entwickelte eine neue Technik für eine versteckte Reverse Shell unter Verwendung von GitHub-Funktionen. Außerdem verwendete sie Einwegkomponenten, um ganze Dateistrukturen zu sammeln.
Wir haben CeranaKeeper kurz im ESET APT Activity Report Q4 2023-Q1 2024 vorgestellt, der im Mai 2024 veröffentlicht wurde. In diesem Blog-Eintrag beschreiben wir die bisher undokumentierten, maßgeschneiderten Tools von CeranaKeeper. Wir teilen weitere Erkenntnisse über die Operationen dieses Bedrohungsakteurs.
Einige unserer Erkenntnisse über CeranaKeeper und den Angriff in Thailand präsentierten wir auf derVirus Bulletin-Konferenz am2. Oktober 2024 und in unserem Whitepaper vorgestellt, das Sie hier vollständig lesen können. Diesen Monat wird Virus Bulletin auch unser White Paper zu diesem Thema auf seiner Website veröffentlichen.
Namensnennung
Während einige der Aktivitäten von CeranaKeeper zuvor von Talos, Trend Micro und Palo Alto Networks Unit 42 dem Mustang Panda (auch bekannt als Earth Preta oder Stately Taurus) zugeschrieben wurden, haben wir beschlossen, diese Aktivitäten als das Werk von CeranaKeeper zu betrachten. Wir glauben, dass CeranaKeeper das öffentlich dokumentierte Toolset "bespoke stagers" (oder TONESHELL) verwendet. Die Gruppe nutzt intensiv die Sideloading-Technik und eine spezielle Befehlssequenz zur Datenexfiltration. Die Verwendung von politischen Ködern und PlugX-Komponenten schreiben wir MustangPanda zu. Trotz einiger Ähnlichkeiten konnten wir deutliche organisatorische und technische Unterschiede zwischen den Gruppen feststellen. Diese spiegeln sich in ihren Toolsets, Infrastrukturen, operativen Praktiken und Kampagnen wider. Auch die Herangehensweise an ähnliche Aufgaben unterscheidet sich.
CeranaKeeper verwendet in seinen Operationen die gruppenspezifischen Komponenten TONEINS, TONESHELL und PUBLOAD. Die Gruppe zeichnet sich durch Kreativität und Anpassungsfähigkeit bei den Angriffen aus. Sie verwendet überarbeitete Versionen der oben genannten Komponenten und neue Tools, die Dienste wie Pastebin, Dropbox, OneDrive und GitHub missbrauchen.Wir beschreiben diese Tools im Abschnitt "Toolset zur Unterstützung der massiven Exfiltration ".
Die Gruppe hat Metadaten im Code hinterlassen, die Einblick in ihren Entwicklungsprozess geben. Dies bestätigt unsere Trennung der Gruppen und die Zuordnung zu CeranaKeeper. Beide Akteure könnten auf denselben Drittanbieter für Deployment-Tools zurückgreifen. Dies ist nicht ungewöhnlich für China-nahe Gruppen. Auch ein gewisser Informationsaustausch könnte die beobachteten Verbindungen erklären. Wir halten dies für wahrscheinlicher als einen einzelnen Akteur mit zwei völlig getrennten Toolsets, Infrastrukturen, Praktiken und Kampagnen.
Kompromittierung von Rechnern im selben Netzwerk
Die Angriffsvektoren von CeranaKeeper im untersuchten Fall sind noch unbekannt. Mitte 2023 verschaffte sich die Gruppe Zugang zum Netzwerk einer thailändischen Regierungsinstitution. Eine kompromittierte Maschine führte Brute-Force-Angriffe gegen einen Domain-Controller-Server im lokalen Netzwerk durch.
Nach Erlangung privilegierter Zugriffsrechte installierten die Angreifer die TONESHELL Backdoor. Sie verwendeten ein Tool zum Auslesen von Zugangsdaten. Mit einem legitimen Avast-Treiber und einer angepassten Anwendung deaktivierten sie Sicherheitsprodukte. Vom kompromittierten Server aus verteilten und aktivierten sie ihre Hintertür auf anderen Netzwerkcomputern. CeranaKeeper nutzte den Server auch, um TONESHELL-Updates zu speichern.
Die Gruppe verteilte ein neues BAT-Skript im Netzwerk. Unter Ausnutzung des Domain-Controllers erlangte sie Domain-Admin-Rechte für weitere Rechner. Dies ermöglichte es CeranaKeeper, zur nächsten Phase der Operation überzugehen: der massiven Datensammlung.
Toolset zur Unterstützung der massiven Exfiltration
Nach der Verbreitung der TONESHELL Backdoor und einigen seitlichen Bewegungen scheinen die Angreifer einige interessante kompromittierte Computer ausgewählt zu haben. Auf diesen installierten sie undokumentierte, maßgeschneiderte Tools. Diese Tools dienten zur Exfiltration von Dokumenten auf öffentliche Speicherdienste und als alternative Backdoors. Die beschriebenen Backdoors und Exfiltrationstools wurden nur auf gezielt ausgewählten Rechnern eingesetzt.
WavyExfiller: Ein Python-Uploader, der Dropbox und PixelDrain missbraucht
Die erste einer Reihe unbekannter Komponenten, die wir im Juni 2023 entdeckten, ist WavyExfiller, ein Python-Paket, das mit PyInstaller zu einer ausführbaren Datei gebündelt wurde und eine direkte Python-Implementierung der von Unit 42 beschriebenen Exfiltrationsmethode darstellt. Wir haben diese Komponente aufgrund der .wav-Erweiterung einer lokalen Datei, die Suchmasken zur Identifizierung und Komprimierung von exportfähigen Dokumenten enthält, WavyExfiller genannt. Die mit PyInstaller gebündelte ausführbare Datei heißt SearchApp.exe (SHA-256: E7B6164B6EC7B7552C93713403507B531F625A8C64D36B60D660D66E82646696).
Das Modul hat drei Hauptfunktionen: Abrufen eines verschlüsselten Dropbox-Tokens von einer Pastebin-Seite (einem Online-Dienst zum Speichern und Freigeben von Klartextdaten), Erstellen passwortgeschützter Archive von Dokumenten, die sich in den Verzeichnissen der Benutzer befinden, und Hochladen dieser Archive zu Dropbox.
Im Oktober 2023 beobachteten wir eine Variante (SHA-256: 451EE465675E674CEBE3C42ED41356AE2C972703E1DC7800A187426A6B34EFDC), die unter dem Namen oneDrive.exe gespeichert wurde. Trotz seines Namens verwendet diese Version den File-Sharing-Dienst PixelDrain, um die archivierten Dateien zu exfiltrieren. Genau wie die oben erwähnte SearchApp.exe prüft diese Variante das Laufwerk C, das in der Regel das Betriebssystem, die installierten Programme und die Dokumente der lokalen Benutzer enthält. Darüber hinaus versucht oneDrive.exe, Dateien von zugeordneten Laufwerken zu sammeln, die von Buchstabe D bis N (außer L) reichen, wie in Abbildung 1 dargestellt. Dabei kann es sich um angeschlossene externe Speichergeräte wie USBs und Festplatten, vernetzte Laufwerke in einer Büroumgebung oder virtuelle Laufwerke handeln, die von einer bestimmten Software erstellt wurden. Dies zeigt, dass CeranaKeeper seine Gier gesteigert hat und versucht, andere potenzielle oder bekannte Informationsquellen zu erreichen. Es ist jedoch unklar, ob die Exfiltrationsoperation erfolgreich war, da eine Überprüfung der hochgeladenen Dateien auf PixelDrain über die offene API nicht möglich ist.
DropboxFlop: Eine Python-Backdoor, die Dropbox missbraucht
Im Oktober 2023, etwa zur gleichen Zeit, als wir die PixelDrain-Variante entdeckten, entdeckten wir eine neue PyInstaller-gebündelte ausführbare Datei mit dem SHA-256-Hash DAFAD19900FFF383C2790E017C958A1E92E84F7BB159A2A7136923B715A4C94F. Es scheint, dass CeranaKeeper es auf der Grundlage eines öffentlich zugänglichen Projekts namens Dropflop erstellt hat, das eine Reverse Shell mit Upload- und Download-Funktionen ist. Die kompilierte Python-Datei heißt dropboxflop.pyc. Die Hintertür ruft ein verschlüsseltes Dropbox-Token ab und ist auf Dateien im entfernten Dropbox-Repository angewiesen, um Befehle auf dem Computer auszuführen. Sie erstellt lokal einen eindeutigen Ordner und erzeugt einen "Heartbeat", indem sie die entfernte Datei namens lasttime alle 15 Sekunden aktualisiert. Außerdem wird nach einer Datei namens tasks gesucht, die, wenn sie gefunden wird, heruntergeladen und als JSON-Datei geparst wird. Es sind zwei Arten von Aufgaben implementiert: Befehlsausführung und Dateiupload. Nach Abschluss sendet die Hintertür die Ergebnisse, indem sie den Inhalt der Dateiausgabe aktualisiert.
OneDoor: Eine C++-Backdoor, die OneDrive missbraucht
Wenige Tage nach der Bereitstellung der Python-Backdoor DropboxFlop meldete sich CeranaKeeper mit einer statisch gelinkten C/C++-Backdoor, die OneDrive missbraucht und die wir OneDoor genannt haben. Das Beispiel (SHA-256: 3F81D1E70D9EE39C83B582AC3BCC1CDFE038F5DA31331CDBCD4FF1A2D15BB7C8) heißt OneDrive.exe. Die Datei ahmt die legitime ausführbare Datei von Microsoft nach, wie in der Eigenschaftsansicht in Abbildung 2 dargestellt.
OneDoor verhält sich ähnlich wie die DropboxFlop-Backdoor, verwendet jedoch die OneDrive REST API der Microsoft Graph API, um Befehle zu empfangen und Dateien zu exfiltrieren.
OneDoor erstellt eine Protokolldatei und versucht, auf eine Datei namens config.ini zuzugreifen. Wenn diese nicht vorhanden ist, verwendet OneDoor einen hartkodierten Puffer. Die Datei oder der Puffer beginnt mit einem Schlüssel und einem Initialisierungsvektor, die zur Entschlüsselung der restlichen Daten mit AES-128 im CBC-Modus verwendet werden. Der Klartext enthält eine URL, die die Malware in einer HTTP-GET-Anfrage verwendet. Die Antwort enthält ein OneDrive-Token, das in nachfolgenden Anfragen an Microsoft OneDrive verwendet wird.
OneDoor ruft auch die ID eines Ordners namens approot ab, der zum Speichern von Anwendungsdaten verwendet wird.
Ähnlich wie bei der Datei config.ini versucht die Malware, auf eine Datei namens errors.log zuzugreifen. Wenn die Datei nicht existiert, wird ein hartkodierter Puffer verwendet. Der Inhalt der Datei oder des Puffers wird entschlüsselt; die Klartextdaten enthalten einen öffentlichen 1024-Bit-RSA-Schlüssel. Es wird ein Schlüssel-IV-Paar erzeugt, mit RSA verschlüsselt und in den entfernten Approot-Ordner hochgeladen. Dieses Paar wird zum Ver- und Entschlüsseln von Daten verwendet.
Schließlich ruft die Malware Listen von Dateien aus zwei Ordnern auf OneDrive ab, E und F. Für jede Liste wird ein Thread gestartet, der die Dateien herunterlädt und entschlüsselt. Die im Ordner E gespeicherten Dateien enthalten auszuführende Befehle, während die im Ordner F gespeicherten eine Liste von Dateien enthalten, die hochgeladen werden sollen. Die Ergebnisse dieser Vorgänge werden verschlüsselt und in einem dritten OneDrive-Ordner, D, gespeichert. Die ursprünglichen Dateien werden dann aus OneDrive gelöscht.
BingoShell: Eine Python-Hintertür, die GitHub missbraucht
Wir haben das neueste Exemplar des Exfiltrationstoolsets der Gruppe im Februar 2024 beobachtet und es BingoShell genannt, weil die Zeichenfolge bingo# im Titel einer von ihm erstellten GitHub-Pull-Request (PR) verwendet wird. Das analysierte Beispiel (SHA-256: 24E12B8B1255DF4E6619ED1A6AE1C75B17341EEF7418450E661B74B144570017) ist eine Datei namens Update.exe, die ein Microsoft Office-Logo als Symbol verwendet, wie in Abbildung 3 zu sehen ist. Dem Zeitstempel der PE-Kompilierung zufolge wurde sie offenbar Ende Januar 2024 erstellt.
BingoShell ist eine in Python geschriebene Hintertür, die GitHub nutzt, um kompromittierte Computer zu kontrollieren. Sobald sie ausgeführt wird, verwendet sie ein fest codiertes Token, um auf ein privates GitHub-Repository zuzugreifen. Dem ersten Commit des Hauptzweigs zufolge wurde das Repository wahrscheinlich am 24. Januar 2024 erstellt. BingoShell erstellt einen neuen Zweig im Repository und einen entsprechenden Pull-Request. Die Hintertür liest Kommentare zu dem neu erstellten PR, um Befehle zu erhalten, die auf dem kompromittierten Computer ausgeführt werden sollen (siehe Abbildung 4).
Dies demonstriert eine neue verdeckte Technik zur Nutzung von GitHub als Command-and-Control-Server (C&C) und zeigt die Raffinesse der Angreifer, die nach dem Schließen von Pull-Requests und dem Entfernen von Kommentaren aus dem Repository aufgeräumt haben.
Jeder neue Zweig, der von BingoShell im privaten GitHub-Repository erstellt wurde, sollte einen Zugriff auf einen kompromittierten Computer darstellen. Da wir 25 geschlossene Pull-Requests entdeckten (siehe Abbildung 5), konnten wir daraus schließen, dass CeranaKeeper über BingoShell Zugriff auf 25 kompromittierte Rechner hatte.
Schlussfolgerung
Die APT-Gruppe CeranaKeeper, die hinter den Angriffen auf die thailändische Regierung steht, scheint besonders unerbittlich zu sein. Die Vielzahl der von der Gruppe verwendeten Tools und Techniken werden in rasantem Tempo weiterentwickelt. Die Betreiber schreiben und überarbeiten ihr Toolset je nach Bedarf für ihre Operationen und reagieren recht schnell, um einer Entdeckung zu entgehen. Das Ziel dieser Gruppe ist es, so viele Dateien wie möglich zu erbeuten, und sie entwickelt zu diesem Zweck spezielle Komponenten. CeranaKeeper nutzt Cloud- und File-Sharing-Dienste für die Exfiltration. Die Hacker verlassen sich wahrscheinlich darauf, dass der Datenverkehr zu diesen beliebten Diensten meist legitim erscheint und schwerer zu blockieren ist, wenn er identifiziert wird.
Im Laufe unserer Untersuchungen konnten wir starke Verbindungen zwischen den zuvor dokumentierten und den neuen Toolsets und einem gemeinsamen Bedrohungsakteur herstellen. Die Überprüfung der Taktiken, Techniken und Verfahren (TTPs) des Codes und der Diskrepanzen in der Infrastruktur führt uns zu der Überzeugung, dass wir CeranaKeeper und MustangPanda als zwei getrennte Einheiten weiter verfolgen. Beide mit China verbündeten Gruppen könnten jedoch Informationen und eine Untergruppe von Tools in einem gemeinsamen Interesse oder über dieselbe dritte Partei austauschen.
Die von uns untersuchte gezielte Kampagne gab uns Einblicke in die Operationen von CeranaKeeper. Künftige Kampagnen werden wahrscheinlich noch mehr enthüllen, da die Gruppe weiterhin auf der Suche nach sensiblen Daten ist.
Für eine detailliertere Analyse der von CeranaKeeper eingesetzten Tools können Sie das vollständige Whitepaper von ESET Research hier abrufen.
Wenn Sie Fragen zu unseren auf WeLiveSecurity veröffentlichten Untersuchungen haben, kontaktieren Sie uns bitte unter threatintel@eset.com.ESET Research bietet private APT Intelligence Reports und Datenfeeds an. Wenn Sie Fragen zu diesem Service haben, besuchen Sie die ESET Threat Intelligence Seite.
IoCs
Eine umfassende Liste von Kompromittierungsindikatoren (IoCs) und Beispielen finden Sie in unserem GitHub-Repository.
Dateien
SHA-256 | Filename | Detection | Description |
B25C79BA507A256C9CA12A9BD34DEF6A |
EACore.dll |
Win32/Agent.VJO |
YK0130 reverse shell. |
E7B6164B6EC7B7552C93713403507B53 |
SearchApp.exe |
Python/Agent.AGT |
WavyExfiller. |
3F81D1E70D9EE39C83B582AC3BCC1CDF |
OneDrive.exe |
Win32/Agent.VKV |
OneDoor. |
DAFAD19900FFF383C2790E017C958A1E |
dropbox.exe |
Python/Agent.AQN |
PyInstaller DropFlop. |
24E12B8B1255DF4E6619ED1A6AE1C75B |
Update.exe |
Python/Agent.AJJ |
BingoShell. |
451EE465675E674CEBE3C42ED41356AE |
oneDrive.exe |
Python/Agent.AGP |
WavyExfiller PixelDrain variant. |
E6AB24B826C034A6D9E152673B911592 |
MsOcrRes.orp |
Win32/Agent.AFWW |
TONESHELL type B. |
6655C5686B9B0292CF5121FC6346341B |
avk.dll |
Win32/Agent.VJQ |
TONESHELL variant. |
B15BA83681C4D2C2716602615288B7E6 |
TurboActivate.dll |
Win32/Agent.AFWX |
TONESHELL loader. |
Netzwerk
IP | Domain | Hosting provider | First seen | Details |
104.21.81[.]233 172.67.165[.]197 |
www.toptipvideo[.]com | CLOUDFLARENET (AS13335) | 2023‑08‑14 | C&C server for the YK0130 reverse shell. |
103.245.165[.]237 | dljmp2p[.]com inly5sf[.]com |
Bangmod Enterprise administrator (AS58955) | 2023‑04‑21 | C&C servers for TONESHELL variants. |
103.27.202[.]185 | www.dl6yfsl[.]com | Bangmod Enterprise administrator (AS58955) | 2023‑08‑10 | C&C server for TONEINS variant. |
103.27.202[.]185 | www.uvfr4ep[.]com | Bangmod Enterprise administrator (AS58955) | 2023‑09‑22 | C&C server for TONEINS variant. |
MITRE ATT&CK-Techniken
Diese Tabelle wurde mit der Version 15 des MITRE ATT&CK Frameworks erstellt.
Tactic | ID | Name | Description |
Resource Development | T1583.001 | Acquire Infrastructure: Domains | CeranaKeeper acquired domains for some of its C&C servers. |
T1583.003 | Acquire Infrastructure: Virtual Private Server | CeranaKeeper acquired access to a VPS to serve as a C&C server. | |
T1587.001 | Develop Capabilities: Malware | CeranaKeeper develops its own components. | |
T1585.003 | Establish Accounts: Cloud Accounts | CeranaKeeper acquired cloud accounts for exfiltration purposes. | |
Execution | T1072 | Software Deployment Tools | CeranaKeeper abuses the ESET Remote Administration console to perform lateral movement. |
Persistence | T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | The YK0130 reverse shell establishes persistence via the registry Run key. |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | Most components come as side-loaded libraries along with the legitimate program. | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | Configuration files used by the OneDrive backdoor are encrypted. |
T1036.005 | Masquerading: Match Legitimate Name or Location | CeranaKeeper uses legitimate library names to blend in. | |
Collection | T1560.001 | Archive Collected Data: Archive via Utility | WavyExfiller uses WinRAR to compress collected data. |
T1005 | Data from Local System | WavyExfiller collects data from the local drive (C:). | |
T1039 | Data from Network Shared Drive | WavyExfiller collects data from network shares. | |
T1074.001 | Data Staged: Local Data Staging | Collected data is archived in a special folder before being uploaded. | |
Command and Control | T1071.001 | Application Layer Protocol: Web Protocols | The different backdoors communicate using HTTP/S. |
T1132.002 | Data Encoding: Non-Standard Encoding | The network protocol used by the YK0130 reverse shell employs custom, XOR-based encoding. | |
T1573.001 | Encrypted Channel: Symmetric Cryptography | AES-128 mode CBC is used by the OneDrive backdoor to encrypt network communication. | |
T1573.002 | Encrypted Channel: Asymmetric Cryptography | The generated key and IV for the OneDrive backdoor are encrypted via RSA. | |
T1090.001 | Proxy: Internal Proxy | One of the variants of the YK0130 reverse shell implements a reverse proxy. | |
T1102.002 | Web Service: Bidirectional Communication | OneDrive and Dropbox are used as C&C servers. | |
Exfiltration | T1567.002 | Exfiltration Over Web Service: Exfiltration to Cloud Storage | Collected data are exfiltrated via cloud services. |