MQsTTang: Neue Backdoor der Mustang Panda Gruppe, basierend auf Qt und MQTT

ESET-Forscher zerlegen MQsTTang, eine neue, von Mustang Panda verwendete Backdoor, die über das MQTT-Protokoll kommuniziert

ESET-Forscher zerlegen MQsTTang, eine neue, von Mustang Panda verwendete Backdoor, die über das MQTT-Protokoll kommuniziert

ESET-Forscher haben MQsTTang analysiert, eine neue benutzerdefinierte Backdoor, die wir der Mustang Panda APT-Gruppe zuschreiben. Diese Backdoor ist Teil einer laufenden Kampagne, die wir bis Anfang Januar 2023 zurückverfolgen können. Im Gegensatz zu den meisten Malware-Programmen der Gruppe scheint MQsTTang nicht auf bestehenden Familien oder öffentlich verfügbaren Projekten zu basieren.

Mustang Panda ist bekannt für seine angepassten Korplug-Varianten (auch PlugX genannt) und ausgeklügelte Ladeketten. In Abweichung von der üblichen Taktik der Gruppe hat MQsTTang nur eine einzige Stufe und verwendet keine Verschleierungstechniken.

Ziele

Wir haben unbekannte Einrichtungen in Bulgarien und Australien in unserer Telemetrie gesehen. Uns liegen auch Informationen vor, die darauf hindeuten, dass diese Kampagne auf eine Regierungseinrichtung in Taiwan abzielt. Aufgrund der Art der verwendeten Täuschungsdateinamen gehen wir jedoch davon aus, dass auch politische und staatliche Organisationen in Europa und Asien ins Visier genommen werden. Dies würde auch mit den Zielen der anderen jüngsten Kampagnen der Gruppe übereinstimmen. Wie von Forscherkollegen bei Proofpoint dokumentiert, ist Mustang Panda seit mindestens 2020 dafür bekannt, europäische Regierungseinrichtungen ins Visier zu nehmen. Die Aktivitäten in Europa wurden seit dem Einmarsch Russlands in die Ukraine sogar noch weiter verstärkt. Abbildung 1 zeigt unsere Sicht auf die Angriffsziele dieser Kampagne.

Abbildung 1. Karte mit bekannten und vermuteten Zielen von MQsTTang

Attribution

Wir führen diese neue Backdoor und die Kampagne mit hoher Wahrscheinlichkeit auf Mustang Panda zurück, basierend auf den folgenden Indikatoren.

Wir fanden Archive mit Samples von MQsTTang in zwei GitHub-Repositories, die dem Benutzer YanNaingOo0072022 gehören. Ein weiteres GitHub-Repository desselben Benutzers wurde in einer früheren Mustang-Panda-Kampagne verwendet, die von Avast in einem Blogpost vom Dezember 2022 beschrieben wurde.

Auf einem der in der aktuellen Kampagne verwendeten Server wurde ein öffentlich zugänglicher anonymer FTP-Server betrieben, der offenbar zur Bereitstellung von Tools und Payloads verwendet wird. Im Verzeichnis /pub/god dieses Servers befinden sich mehrere Korplug-Loader, Archive und Tools, die in früheren Mustang-Panda-Kampagnen verwendet wurden. Es handelt sich um dasselbe Verzeichnis, das von dem im oben genannten Avast-Blogpost beschriebenen Stager verwendet wurde. Dieser Server verfügte auch über ein Verzeichnis /pub/gd, das ein weiterer in dieser Kampagne verwendeter Pfad war.

Einige der in dieser Kampagne verwendeten Infrastrukturen stimmen auch mit dem Netzwerk-Fingerabdruck von bereits bekannten Mustang-Panda-Servern überein.

Technische Analyse

MQsTTang ist eine einfache Backdoor, die es dem Angreifer ermöglicht, beliebige Befehle auf dem Rechner des Opfers auszuführen und die entsrpechende Ausgabe zu erlangen. Dennoch weist sie einige interessante Merkmale auf. Dazu gehört vor allem die Verwendung des MQTT-Protokolls für die C&C-Kommunikation. MQTT wird in der Regel für die Kommunikation zwischen IoT-Geräten und Steuerungen verwendet, und das Protokoll wurde noch nicht von vielen öffentlich dokumentierten Malware-Familien genutzt. Ein solches Beispiel ist Chrysaor, auch bekannt als Pegasus für Android. Aus der Sicht eines Angreifers besteht einer der Vorteile von MQTT darin, dass es den Rest seiner Infrastruktur hinter einem Broker verbirgt. Somit kommuniziert der kompromittierte Rechner nie direkt mit dem C&C-Server. Wie in Abbildung 2 zu sehen ist, wird diese Fähigkeit durch die Verwendung der Open-Source-Bibliothek QMQTT erreicht. Diese Bibliothek hängt vom Qt-Framework ab, von dem ein großer Teil statisch in die Malware eingebunden ist. Die Verwendung des Qt-Frameworks für die Malware-Entwicklung ist ebenfalls recht ungewöhnlich. Der MagicRAT von Lazarus ist eines der wenigen kürzlich dokumentierten Beispiele.

Abbildung 2. RTTI mit Klassen aus der QMQTT-Bibliothek

MQsTTang wird in RAR-Archiven verteilt, die nur eine einzige ausführbare Datei enthalten. Diese ausführbaren Dateien haben normalerweise Namen, die mit Diplomatie und Pässen zu tun haben, wie z.B.:

  • CVs Amb Officer PASSPORT Ministry Of Foreign Affairs.exe
  • Documents members of delegation diplomatic from Germany.Exe
  • PDF_Passport and CVs of diplomatic members from Tokyo of JAPAN.eXE
  • Note No.18-NG-23 from Embassy of Japan.exe

Diese Archive werden auf einem Webserver gehostet, dem kein Domänenname zugeordnet ist. Diese Tatsache sowie die Dateinamen lassen vermuten, dass die Malware über Spearphishing verbreitet wird.

Bislang haben wir nur einige wenige Samples beobachtet. Abgesehen von Abweichungen bei einigen Konstanten und hartkodierten Zeichenfolgen sind die Samples bemerkenswert ähnlich. Die einzige bemerkenswerte Änderung ist die Hinzufügung einiger Anti-Analyse-Techniken in den neuesten Versionen. Die erste dieser Techniken besteht in der Verwendung der Windows-API-Funktion CreateToolhelp32Snapshot, um laufende Prozesse zu durchlaufen und nach den folgenden bekannten Debuggern und Überwachungsprogrammen zu suchen.

  • cheatengine-x86_64.exe
  • ollydbg.exe
  • ida.exe
  • ida64.exe
  • radare2.exe
  • x64dbg.exe
  • procmon.exe
  • procmon64.exe
  • procexp.exe
  • processhacker.exe
  • pestudio.exe
  • systracerx32.exe
  • fiddler.exe
  • tcpview.exe

Beachten Sie, dass die Malware zwar eine ausführbare 32-Bit-Datei ist, aber nur auf das Vorhandensein von x64dbg und nicht auf sein 32-Bit-Gegenstück x32dbg prüft.

Die zweite Technik verwendet die FindWindowW Windows API, um nach den folgenden Fensterklassen und -titeln zu suchen, die von bekannten Analysetools verwendet werden:

  • PROCMON_WINDOW_CLASS
  • OLLYDBG
  • WinDbgFrameClass
  • OllyDbg – [CPU]
  • Immunity Debugger – [CPU]

Bei direkter Ausführung startet die Malware eine Kopie von sich selbst mit 1 als Befehlszeilenargument. Dies wird von dem neuen Prozess wiederholt, wobei das Argument bei jedem Durchlauf um 1 erhöht wird. Wenn dieses Argument bestimmte Werte erreicht, werden bestimmte Aufgaben ausgeführt. Beachten Sie, dass die genauen Werte von Sample zu Sample variieren; die unten genannten Werte entsprechen dem Sample mit SHA-1 02D95E0C369B08248BFFAAC8607BBA119D83B95B. Die Aufgaben selbst und die Reihenfolge, in der sie ausgeführt werden, sind jedoch konstant.

Abbildung 3 zeigt einen Überblick über dieses Verhalten und die Aufgaben, die beim ersten Start der Malware ausgeführt werden.

Abbildung 3. Ausführungsdiagramm mit Darstellung der Teilprozesse und ausgeführten Aufgaben

Tabelle 1 enthält eine Liste der Aufgaben und den Wert, bei dem jede von ihnen ausgeführt wird. Wir werden sie in den folgenden Abschnitten näher beschreiben.

Tabelle 1. Von der Backdoor ausgeführte Aufgaben

Task numberArgument valueTask description
15Start C&C communication.
29Create copy and launch.
332Create persistence copy.
4119Establish persistence.
5148Stop recursive execution.

Wenn ein Analysewerkzeug oder Debugger mit den zuvor beschriebenen Techniken entdeckt wird, wird das Verhalten von Aufgabe 1 geändert und die Aufgaben 2, 3 und 4 werden vollständig übersprungen.

Task 1: C&C Kommunikation

Wie bereits erwähnt, kommuniziert MQsTTang mit seinem C&C-Server über das MQTT-Protokoll. Alle beobachteten Samples verwenden 3.228.54.173 als Broker. Dieser Server ist ein öffentlicher Broker, der von EMQX betrieben wird, die zufällig auch die QMQTT-Bibliothek betreuen. Dies könnte eine Möglichkeit sein, den Netzwerkverkehr als legitim erscheinen zu lassen und Mustang Pandas eigene Infrastruktur zu verbergen. Die Verwendung dieses öffentlichen Brokers sorgt auch für Ausfallsicherheit: Es ist unwahrscheinlich, dass der Dienst aufgrund seiner vielen legitimen Nutzer abgeschaltet wird, und selbst wenn die aktuellen C&C-Server gesperrt oder abgeschaltet werden, könnte Mustang Panda neue Server einrichten und dieselben MQTT-Themen verwenden, ohne den Betrieb von MQsTTang zu zerstören.

Diese Kampagne könnte jedoch auch ein Testfall von Mustang Panda sein, bevor sie entscheiden, ob sie die Zeit und die Ressourcen für die Einrichtung eines eigenen Brokers investieren wollen. Dafür spricht die geringe Anzahl von Samples, die wir beobachtet haben, und die sehr einfache Natur von MQsTTang.

Wie in Abbildung 4 dargestellt, verwenden die Malware und der C&C-Server zwei MQTT-Topics für ihre Kommunikation. Das erste, iot/server2, wird für die Kommunikation zwischen dem Client und dem Server verwendet. Das zweite wird für die Kommunikation vom Server zum Client verwendet. Es hat das Format iot/v2/<Unique ID>, wobei <Unique ID> aus den letzten 8 Bytes einer UUID in Hexadezimalform gebildet wird. Wird ein Analysewerkzeug entdeckt, werden server2 und v2 jeweils durch server0 und v0 ersetzt. Dies geschieht wahrscheinlich, um zu vermeiden, dass die Ausführung der Malware vorzeitig abgebrochen wird, um die Verteidiger zu warnen.

Abbildung 4. Vereinfachtes Netzwerkdiagramm der Kommunikation zwischen der Backdoor und dem C&C-Server

Die gesamte Kommunikation zwischen dem Server und dem Client erfolgt nach demselben Kodierungsschema. Die Payload der MQTT-Nachricht ist ein JSON-Objekt mit einem einzigen Attribut namens msg. Um den Wert dieses Attributs zu generieren, wird der eigentliche Inhalt zunächst base64-kodiert, dann mit dem hartkodierten String nasa XOR-verknüpft und erneut base64-kodiert. Wir werden das genaue Format dieser Payloads in den entsprechenden Abschnitten beschreiben.

Bei der ersten Verbindung mit dem Broker abonniert das Schadprogramm sein eigenes Topic. Dann und danach alle 30 Sekunden veröffentlicht der Client eine KeepAlive-Nachricht an das Topic des Servers. Der Inhalt dieser Nachricht ist ein JSON-Objekt mit dem folgenden Format:

Wenn der Server einen Befehl erteilen will, veröffentlicht er eine Nachricht an das eindeutige Topic des Clients. Der Klartextinhalt dieser Nachricht ist einfach der auszuführende Befehl. Wie in Abbildung 5 dargestellt, führt der Client den empfangenen Befehl mit QProcess::startCommand aus dem Qt-Framework aus. Die mit QProcess::readAllStandardOutput erhaltene Ausgabe wird dann in einem JSON-Objekt mit dem folgenden Format zurückgesendet:

Abbildung 5. Ausführung empfangener Befehle mit Hilfe der Klasse QProcess

Da nur der Inhalt der Standardausgabe zurückgesendet wird, erhält der Server keine Fehler oder Warnungen. Aus der Sicht des Servers ist ein fehlgeschlagener Befehl daher nicht von einem Befehl zu unterscheiden, der einfach keine Ausgabe erzeugt, es sei denn, es wird eine Umleitung vorgenommen.

Tasks 2 und 3: Kopieren der Malware

Die zweite und dritte Aufgabe sind einander ziemlich ähnlich. Sie kopieren die ausführbare Datei der Malware in einen fest kodierten Pfad; c:\users\public\vdump.exe bzw. c:\users\public\vcall.exe. Die verwendeten Dateinamen sind für jedes Sample unterschiedlich, aber sie befinden sich immer im Verzeichnis C:\users\public.

In der zweiten Aufgabe wird dann die neu erstellte Kopie mit dem Befehlszeilenargument 97 gestartet.

Task 4: Herstellung der Persistenz

Die vierte Aufgabe erstellt einen neuen Wert qvlc, der auf c:\users\public\vcall.exe unter dem Registrierungsschlüssel HKCU\Software\Microsoft\Windows\CurrentVersion\Run gesetzt wird. Dies führt dazu, dass die Malware beim Starten ausgeführt wird.

Wenn MQsTTang beim Starten als c:\users\public\vcall.exe ausgeführt wird, wird nur die C&C-Kommunikationsaufgabe ausgeführt.

Fazit

Die in diesem Artikel beschriebene Mustang-Panda-Kampagne ist zum Zeitpunkt der Erstellung dieses Artikels noch nicht abgeschlossen. Die Viktimologie ist unklar, aber die gefälschten Dateinamen zur Ablenkung stehen im Einklang mit anderen Kampagnen der Gruppe, die auf europäische politische Einrichtungen abzielen.

Diese neue Backdoor MQsTTang bietet eine Art Remote-Shell ohne den ganzen Schnickschnack, der mit den anderen Malware-Familien der Gruppe verbunden ist. Sie zeigt jedoch, dass Mustang Panda neue Technologie-Stacks für seine Tools erforscht. Es bleibt abzuwarten, ob diese Backdoor zu einem wiederkehrenden Bestandteil des Arsenals der Gruppe wird, aber sie ist ein weiteres Beispiel für den schnellen Entwicklungs- und Einsatzzyklus der Gruppe.

ESET Research offers private APT intelligence reports and data feeds. For any inquiries about this service, visit the ESET Threat Intelligence page.

IoCs

Files

SHA-1FilenameDetectionDescription
A1C660D31518C8AFAA6973714DE30F3D576B68FCCVs Amb.rarWin32/Agent.AFBIRAR archive used to distribute MQsTTang backdoor.
430C2EF474C7710345B410F49DF853BDEAFBDD78CVs Amb Officer PASSPORT Ministry Of Foreign Affairs.exeWin32/Agent.AFBIMQsTTang backdoor.
F1A8BF83A410B99EF0E7FDF7BA02B543B9F0E66CDocuments.rarWin32/Agent.AFBIRAR archive used to distribute MQsTTang backdoor.
02D95E0C369B08248BFFAAC8607BBA119D83B95BPDF_Passport and CVs of diplomatic members from Tokyo of JAPAN.eXEWin32/Agent.AFBIMQsTTang backdoor.
0EA5D10399524C189A197A847B8108AA8070F1B1Documents members of delegation diplomatic from Germany.ExeWin32/Agent.AFBIMQsTTang backdoor.
982CCAF1CB84F6E44E9296C7A1DDE2CE6A09D7BBDocuments.rarWin32/Agent.AFBIRAR archive used to distribute MQsTTang backdoor.
740C8492DDA786E2231A46BFC422A2720DB0279A23 from Embassy of Japan.exeWin32/Agent.AFBIMQsTTang backdoor.
AB01E099872A094DC779890171A11764DE8B4360BoomerangLib.dllWin32/Korplug.THKnown Mustang Panda Korplug loader.
61A2D34625706F17221C1110D36A435438BC0665breakpad.dllWin32/Korplug.UBKnown Mustang Panda Korplug loader.
30277F3284BCEEF0ADC5E9D45B66897FA8828BFDcoreclr.dllWin32/Agent.ADMWKnown Mustang Panda Korplug loader.
BEE0B741142A9C392E05E0443AAE1FA41EF512D6HPCustPartUI.dllWin32/Korplug.UBKnown Mustang Panda Korplug loader.
F6F3343F64536BF98DE7E287A7419352BF94EB93HPCustPartUI.dllWin32/Korplug.UBKnown Mustang Panda Korplug loader.
F848C4F3B9D7F3FE1DB3847370F8EEFAA9BF60F1libcef.dllWin32/Korplug.TXKnown Mustang Panda Korplug loader.

Network

IPDomainHosting providerFirst seenDetails
3.228.54.173broker.emqx.ioAmazon.com, Inc.2020-03-26Legitimate public MQTT broker.
80.85.156[.]151N/AChelyabinsk-Signal LLC2023-01-05MQsTTang delivery server.
80.85.157[.]3N/AChelyabinsk-Signal LLC2023-01-16MQsTTang delivery server.
185.144.31[.]86N/AAbuse-C Role2023-01-22MQsTTang delivery server.

Github repositories

  • https://raw.githubusercontent[.]com/YanNaingOo0072022/14/main/Documents.rar
  • https://raw.githubusercontent[.]com/YanNaingOo0072022/ee/main/CVs Amb.rar

MITRE ATT&CK techniques

This table was built using version 12 of the MITRE ATT&CK framework.

TacticIDNameDescription
Resource DevelopmentT1583.003Acquire Infrastructure: Virtual Private ServerSome servers used in the campaign are on shared hosting.
T1583.004Acquire Infrastructure: ServerSome servers used in the campaign seem to be exclusive to Mustang Panda.
T1587.001Develop Capabilities: MalwareMQsTTang is a custom backdoor, probably developed by Mustang Panda.
T1588.002Obtain Capabilities: ToolMultiple legitimate and open- source tools, including psexec, ps, curl, and plink, were found on the staging server.
T1608.001Stage Capabilities: Upload MalwareMQsTTang was uploaded to the web server for distribution.
T1608.002Stage Capabilities: Upload ToolMultiple tools were uploaded to an FTP server.
Initial AccessT1566.002Phishing: Spearphishing LinkMQsTTang is distributed via spearphishing links to a malicious file on an attacker-controlled web server.
ExecutionT1106Native APIMQsTTang uses the QProcess class from the Qt framework to execute commands.
T1204.002User Execution: Malicious FileMQsTTang relies on the user to execute the downloaded malicious file.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderMQsTTang persists by creating a registry Run key.
Defense EvasionT1036.004Masquerading: Masquerade Task or ServiceIn most samples, the registry key is created with the name qvlc. This matches the name of a legitimate executable used by VLC.
T1036.005Masquerading: Match Legitimate Name or LocationWhen creating copies, MQsTTang uses filenames of legitimate programs.
T1480Execution GuardrailsMQsTTang checks the paths it is executed from to determine which tasks to execute.
T1622Debugger EvasionMQsTTang detects running debuggers and alters its behavior if any are found to be present.
Command and ControlT1071Application Layer ProtocolMQsTTang communicates with its C&C server using the MQTT protocol.
T1102.002Web Service: Bidirectional CommunicationMQsTTang uses a legitimate public MQTT broker.
T1132.001Data Encoding: Standard EncodingThe content of the messages between the malware and server is base64 encoded.
T1573.001Encrypted Channel: Symmetric CryptographyThe content of the messages between the malware and server is encrypted using a repeating XOR key.
ExfiltrationT1041Exfiltration Over C2 ChannelThe output of executed commands is sent back to the server using the same protocol.

Erhalten Sie E-Mails zu neuen Artikeln zur Cyber-Sicherheitslage in der Ukraine. Jetzt anmelden!

Newsletter-Anmeldung

Hier können Sie mitdiskutieren