MQsTTang: De nieuwste achterdeur van de Mustang Panda betreedt nieuw terrein met Qt en MQTT

MQsTTang: De nieuwste achterdeur van de Mustang Panda betreedt nieuw terrein met Qt en MQTT

ESET-onderzoekers plagen MQsTTang, een nieuwe achterdeur gebruikt door Mustang Panda, die communiceert via het MQTT-protocol

ESET-onderzoekers hebben MQsTTang geanalyseerd, een nieuwe aangepaste achterdeur die we toeschrijven aan de Mustang Panda APT-groep. Deze achterdeur maakt deel uit van een lopende campagne die we kunnen herleiden tot begin januari 2023. In tegenstelling tot de meeste malware van de groep, lijkt MQsTTang niet gebaseerd te zijn op bestaande families of openbaar beschikbare projecten.

Mustang Panda staat bekend om zijn aangepaste Korplug-varianten (ook wel PlugX genoemd) en uitgebreide laadkettingen. In afwijking van de gebruikelijke tactiek van de groep, heeft MQsTTang slechts één podium en gebruikt het geen verduisteringstechnieken.

victimologie

We hebben onbekende entiteiten gezien in Bulgarije en Australië in onze telemetrie. We hebben ook informatie waaruit blijkt dat deze campagne gericht is op een overheidsinstelling in Taiwan. Vanwege de aard van de gebruikte lokbestandsnamen zijn wij echter van mening dat politieke en gouvernementele organisaties in Europa en Azië ook het doelwit zijn. Dit zou ook in lijn zijn met de targeting van de andere recente campagnes van de groep. Als gedocumenteerd door collega-onderzoekers bij Proofpoint, is bekend dat de Mustang Panda zich sinds ten minste 2020 richt op Europese overheidsinstanties en heeft zijn activiteit in Europa nog verder opgevoerd sinds de Russische invasie van Oekraïne. Figuur 1 toont ons beeld van de targeting voor deze campagne.

MQsTTang: De nieuwste achterdeur van Mustang Panda betreedt nieuw terrein met Qt en MQTT PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Figuur 1. Kaart met bekende en vermoedelijke doelen van MQsTTang

Attribution

We schrijven deze nieuwe achterdeur en de campagne met veel vertrouwen toe aan de Mustang Panda op basis van de volgende indicatoren.

We hebben archieven met voorbeelden van MQsTTang gevonden in twee GitHub-repository's van de gebruiker YanNaingOo0072022. Een andere GitHub-opslagplaats van dezelfde gebruiker werd gebruikt in een eerdere Mustang Panda-campagne beschreven door Avast in een Blogpost van december 2022.

Een van de servers die in de huidige campagne werd gebruikt, draaide een openbaar toegankelijke anonieme FTP-server die lijkt te worden gebruikt om tools en payloads op te zetten. In de /café/god directory van deze server zijn er meerdere Korplug-laders, archieven en tools die werden gebruikt in eerdere Mustang Panda-campagnes. Dit is dezelfde map die werd gebruikt door de stager die wordt beschreven in de eerder genoemde Avast-blogpost. Deze server had ook een /pub/gd directory, wat een ander pad was dat in die campagne werd gebruikt.

Een deel van de infrastructuur die in deze campagne wordt gebruikt, komt ook overeen met de netwerkvingerafdruk van eerder bekende Mustang Panda-servers.

Technische analyse

MQsTTang is een barebones-achterdeur waarmee de aanvaller willekeurige opdrachten kan uitvoeren op de machine van een slachtoffer en de uitvoer kan verkrijgen. Toch vertoont het enkele interessante kenmerken. De belangrijkste daarvan is het gebruik van de MQTT-protocol voor C&C-communicatie. MQTT wordt meestal gebruikt voor communicatie tussen IoT-apparaten en controllers, en het protocol is niet gebruikt in veel openbaar gedocumenteerde malwarefamilies. Een voorbeeld hiervan is Chrysaor, ook wel bekend als Pegasus voor Android. Vanuit het perspectief van een aanvaller is een van de voordelen van MQTT dat het de rest van hun infrastructuur verbergt achter een makelaar. De gecompromitteerde machine communiceert dus nooit rechtstreeks met de C&C-server. Zoals te zien is in figuur 2, wordt deze mogelijkheid bereikt door de open source te gebruiken QMQTT-bibliotheek. Deze bibliotheek is afhankelijk van de Qt-kader, waarvan een groot deel statisch is gekoppeld in de malware. Het gebruik van het Qt-framework voor de ontwikkeling van malware is ook vrij ongebruikelijk. Lazarus' MagicRAT is een van de zeldzame recent gedocumenteerde voorbeelden.

MQsTTang: De nieuwste achterdeur van Mustang Panda betreedt nieuw terrein met Qt en MQTT PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 2. RTTI met klassen uit de QMQTT-bibliotheek

MQsTTang wordt gedistribueerd in RAR-archieven die slechts één uitvoerbaar bestand bevatten. Deze uitvoerbare bestanden hebben meestal namen die verband houden met diplomatie en paspoorten, zoals:

  • CV's Amb Officer PASPOORT Ministry Of Foreign Affairs.exe
  • Documenten leden van diplomatieke delegatie uit Germany.Exe
  • PDF_Paspoort en cv's van diplomatieke leden uit Tokio van JAPAN.eXE
  • Opmerking No.18-NG-23 van Embassy of Japan.exe

Deze archieven worden gehost op een webserver zonder bijbehorende domeinnaam. Dit feit, samen met de bestandsnamen, doet ons geloven dat de malware wordt verspreid via spearphishing.

Tot nu toe hebben we slechts enkele monsters waargenomen. Afgezien van variaties in sommige constanten en hardgecodeerde strings, zijn de samples opmerkelijk vergelijkbaar. De enige opvallende verandering is de toevoeging van enkele anti-analysetechnieken in de nieuwste versies. De eerste hiervan bestaat uit het gebruik van de CreëerToolhelp32Snapshot Windows API-functie om lopende processen te doorlopen en te zoeken naar de volgende bekende debuggers en monitoringtools.

  • 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

Merk op dat hoewel de malware een 32-bits uitvoerbaar bestand is, het alleen controleert op de aanwezigheid van x64dbg en niet zijn 32-bit tegenhanger, x32dbg.

De tweede techniek maakt gebruik van de ZoekVensterW Windows API om te zoeken naar de volgende vensterklassen en titels die worden gebruikt door bekende analysetools:

  • PROCMON_WINDOW_CLASS
  • OLLYDBG
  • WinDbgFrameClass
  • OllyDbg – [CPU]
  • Immuniteitsfoutopsporing - [CPU]

Wanneer de malware rechtstreeks wordt uitgevoerd, start hij een kopie van zichzelf met 1 als opdrachtregelargument. Dit wordt herhaald door het nieuwe proces, waarbij het argument bij elke uitvoering met 1 wordt verhoogd. Wanneer dit argument specifieke waarden bereikt, worden bepaalde taken uitgevoerd. Merk op dat de exacte waarden variëren tussen monsters; de hieronder genoemde komen overeen met het monster met SHA-1 02D95E0C369B08248BFFAAC8607BBA119D83B95B. De taken zelf en de volgorde waarin ze worden uitgevoerd, zijn echter constant.

Afbeelding 3 toont een overzicht van dit gedrag samen met de taken die worden uitgevoerd wanneer de malware voor het eerst wordt uitgevoerd.

MQsTTang: De nieuwste achterdeur van Mustang Panda betreedt nieuw terrein met Qt en MQTT PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Figuur 3. Uitvoeringsgrafiek met de subprocessen en uitgevoerde taken

Tabel 1 bevat een lijst van de taken en de waarde waarmee elk ervan wordt uitgevoerd. We zullen ze in meer detail beschrijven in de komende paragrafen.

Tabel 1. Taken uitgevoerd door de achterdeur

Taak nummer Argumentwaarde Taakomschrijving
1 5 Start C&C-communicatie.
2 9 Maak een kopie en start.
3 32 Persistentiekopie maken.
4 119 Zorg voor doorzettingsvermogen.
5 148 Stop recursieve uitvoering.

Als een analysetool of debugger wordt gedetecteerd met behulp van de technieken die we eerder hebben beschreven, wordt het gedrag van taak 1 gewijzigd en worden taken 2, 3 en 4 volledig overgeslagen.

Taak 1: C&C-communicatie

Zoals eerder vermeld, communiceert MQsTTang met zijn C&C-server via het MQTT-protocol. Alle waargenomen monsters gebruiken 3.228.54.173 als makelaar. Deze server is een openbare makelaar die wordt beheerd door EMQX, die toevallig ook de beheerders zijn van de QMQTT-bibliotheek. Dit zou een manier kunnen zijn om het netwerkverkeer legitiem te laten lijken en de eigen infrastructuur van de Mustang Panda te verbergen. Het gebruik van deze openbare makelaar biedt ook veerkracht; de service zal waarschijnlijk niet worden verwijderd vanwege de vele legitieme gebruikers en zelfs als de huidige C&C-servers worden verbannen of verwijderd, zou Mustang Panda nieuwe kunnen opstarten en dezelfde MQTT-onderwerpen kunnen gebruiken zonder de werking van MQsTTang te verstoren.

Deze campagne zou echter ook een testcase kunnen zijn voor Mustang Panda alvorens te beslissen of ze de tijd en middelen zouden investeren om hun eigen makelaar op te zetten. Dit wordt ondersteund door het lage aantal monsters dat we hebben waargenomen en de zeer eenvoudige aard van MQsTTang.

Zoals weergegeven in afbeelding 4, gebruiken de malware en de C&C-server twee MQTT-onderwerpen voor hun communicatie. De eerste, iot/server2, wordt gebruikt voor communicatie van de client naar de server. De tweede wordt gebruikt voor communicatie van de server naar de client. Het volgt het formaat iot/v2/ WAAR wordt gegenereerd door de laatste 8 bytes, in hexadecimale vorm, van een UUID te nemen. Als er een analysetool wordt gedetecteerd, server2 en v2 worden respectievelijk vervangen door server0 en v0. Dit is waarschijnlijk om te voorkomen dat verdedigers worden getipt door de uitvoering van de malware voortijdig volledig af te breken.

MQsTTang: De nieuwste achterdeur van Mustang Panda betreedt nieuw terrein met Qt en MQTT PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 4. Vereenvoudigde netwerkgrafiek van de communicatie tussen de achterdeur en de C&C-server

Alle communicatie tussen de server en de client gebruikt hetzelfde coderingsschema. De payload van het MQTT-bericht is een JSON-object met een enkel attribuut genaamd msg. Om de waarde van dit attribuut te genereren, wordt de daadwerkelijke inhoud eerst base64-gecodeerd en vervolgens geXORed met de hardgecodeerde tekenreeks nasa, en base64 opnieuw gecodeerd. We zullen het exacte formaat van deze payloads beschrijven in de relevante secties.

Bij de eerste verbinding met de makelaar, abonneert de malware zich op zijn unieke onderwerp. Vervolgens, en daarna elke 30 seconden, publiceert de client een KeepAlive-bericht naar het onderwerp van de server. De inhoud van dit bericht is een JSON-object met de volgende indeling:

Wanneer de server een opdracht wil geven, publiceert hij een bericht naar het unieke onderwerp van de klant. De leesbare inhoud van dit bericht is gewoon de opdracht die moet worden uitgevoerd. Zoals weergegeven in figuur 5, voert de client de ontvangen opdracht uit met behulp van QProces::startopdracht vanuit het Qt-framework. De uitvoer, verkregen met behulp van QProces::readAllStandardOutput, wordt vervolgens teruggestuurd in een JSON-object met het volgende formaat:

MQsTTang: De nieuwste achterdeur van Mustang Panda betreedt nieuw terrein met Qt en MQTT PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Figuur 5. Uitvoering van ontvangen commando's met behulp van de QProces klasse

Aangezien alleen de inhoud van de standaarduitvoer wordt teruggestuurd, ontvangt de server geen fouten of waarschuwingen. Vanuit het standpunt van de server is een mislukte opdracht dus niet te onderscheiden van een opdracht die simpelweg geen uitvoer produceert, tenzij er een soort omleiding wordt uitgevoerd.

Taken 2 en 3: De malware kopiëren

De tweede en derde taak lijken redelijk op elkaar. Ze kopiëren het uitvoerbare bestand van de malware naar een hardgecodeerd pad; c:userspublicvdump.exe en c:userspublicvcall.exe respectievelijk. De gebruikte bestandsnamen verschillen per sample, maar staan ​​altijd in de C:gebruikerspubliek directory.

In de tweede taak wordt de nieuw gemaakte kopie vervolgens gestart met het opdrachtregelargument 97.

Taak 4: Vaststellen van persistentie

Persistentie wordt tot stand gebracht door de vierde taak, die een nieuwe waarde creëert qvlc ingesteld op c:userspublicvcall.exe onder de HKCUSoftwareMicrosoftWindowsHuidigeVersieUitvoeren register sleutel. Hierdoor wordt de malware uitgevoerd bij het opstarten.

Wanneer MQsTTang wordt uitgevoerd bij het opstarten als c:userspublicvcall.exe, wordt alleen de C&C-communicatietaak uitgevoerd.

Conclusie

De Mustang Panda-campagne die in dit artikel wordt beschreven, loopt op het moment van schrijven. De slachtofferrol is onduidelijk, maar de valse bestandsnamen komen overeen met de andere campagnes van de groep die zich richten op Europese politieke entiteiten.

Deze nieuwe MQsTTang-achterdeur biedt een soort externe shell zonder de toeters en bellen die horen bij de andere malwarefamilies van de groep. Het laat echter zien dat de Mustang Panda nieuwe technologieën voor zijn tools verkent. Het valt nog te bezien of deze achterdeur een terugkerend onderdeel van het arsenaal van de groep zal worden, maar het is weer een voorbeeld van de snelle ontwikkelings- en implementatiecyclus van de groep.

ESET Research biedt privé APT-inlichtingenrapporten en datafeeds. Voor vragen over deze service kunt u terecht op de ESET-bedreigingsinformatie pagina.

IoC's

Bestanden

SHA-1 Bestandsnaam Opsporing Omschrijving
A1C660D31518C8AFAA6973714DE30F3D576B68FC CV's Amb.rar Win32/Agent.AFBI RAR-archief gebruikt om MQsTTang backdoor te verspreiden.
430C2EF474C7710345B410F49DF853BDEAFBDD78 CV's Amb Officer PASPOORT Ministry Of Foreign Affairs.exe Win32/Agent.AFBI MQsTTang achterdeur.
F1A8BF83A410B99EF0E7FDF7BA02B543B9F0E66C Documenten.rar Win32/Agent.AFBI RAR-archief gebruikt om MQsTTang backdoor te verspreiden.
02D95E0C369B08248BFFAAC8607BBA119D83B95B PDF_Paspoort en cv's van diplomatieke leden uit Tokio van JAPAN.eXE Win32/Agent.AFBI MQsTTang achterdeur.
0EA5D10399524C189A197A847B8108AA8070F1B1 Documenten leden van diplomatieke delegatie uit Germany.Exe Win32/Agent.AFBI MQsTTang achterdeur.
982CCAF1CB84F6E44E9296C7A1DDE2CE6A09D7BB Documenten.rar Win32/Agent.AFBI RAR-archief gebruikt om MQsTTang backdoor te verspreiden.
740C8492DDA786E2231A46BFC422A2720DB0279A 23 van Ambassade van Japan.exe Win32/Agent.AFBI MQsTTang achterdeur.
AB01E099872A094DC779890171A11764DE8B4360 BoomerangLib.dll Win32/Korplug.TH Bekende Mustang Panda Korplug loader.
61A2D34625706F17221C1110D36A435438BC0665 breakpad.dll Win32/Korplug.UB Bekende Mustang Panda Korplug loader.
30277F3284BCEEF0ADC5E9D45B66897FA8828BFD coreclr.dll Win32/Agent.ADMW Bekende Mustang Panda Korplug loader.
BEE0B741142A9C392E05E0443AAE1FA41EF512D6 HPCustPartUI.dll Win32/Korplug.UB Bekende Mustang Panda Korplug loader.
F6F3343F64536BF98DE7E287A7419352BF94EB93 HPCustPartUI.dll Win32/Korplug.UB Bekende Mustang Panda Korplug loader.
F848C4F3B9D7F3FE1DB3847370F8EEFAA9BF60F1 libcef.dll Win32/Korplug.TX Bekende Mustang Panda Korplug loader.

Netwerk

IP Domein Hostingprovider Eerst gezien Details
3.228.54.173 makelaar.emqx.io Amazon.com, Inc. 2020-03-26 Legitieme openbare MQTT-makelaar.
80.85.156[.]151 NB Tsjeljabinsk-Signal LLC 2023-01-05 MQsTTang-bezorgserver.
80.85.157[.]3 NB Tsjeljabinsk-Signal LLC 2023-01-16 MQsTTang-bezorgserver.
185.144.31[.]86 NB Abuse-C-rol 2023-01-22 MQsTTang-bezorgserver.

Github-opslagplaatsen

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

MITRE ATT&CK-technieken

Deze tafel is gemaakt met behulp van versie 12 van het MITRE ATT&CK-raamwerk.

Tactiek ID Naam Omschrijving
Ontwikkeling van hulpbronnen T1583.003 Infrastructuur verwerven: Virtual Private Server Sommige servers die in de campagne worden gebruikt, staan ​​op shared hosting.
T1583.004 Infrastructuur verwerven: Server Sommige servers die in de campagne worden gebruikt, lijken exclusief voor Mustang Panda te zijn.
T1587.001 Ontwikkelmogelijkheden: Malware MQsTTang is een aangepaste achterdeur, waarschijnlijk ontwikkeld door Mustang Panda.
T1588.002 Mogelijkheden verkrijgen: Tool Meerdere legitieme en open-source tools, waaronder psexec, ps, krullen en plinken, zijn gevonden op de testserver.
T1608.001 Stagemogelijkheden: Malware uploaden MQsTTang is geüpload naar de webserver voor distributie.
T1608.002 Podiummogelijkheden: uploadtool Er zijn meerdere tools geüpload naar een FTP-server.
Eerste toegang T1566.002 Phishing: Spearphishing-link MQsTTang wordt verspreid via spearphishing-links naar een kwaadaardig bestand op een door een aanvaller gecontroleerde webserver.
Uitvoering T1106 Native API MQsTTang gebruikt de QProces class uit het Qt-framework om opdrachten uit te voeren.
T1204.002 Uitvoering door gebruiker: kwaadaardig bestand MQsTTang vertrouwt op de gebruiker om het gedownloade schadelijke bestand uit te voeren.
Volharding T1547.001 Boot of Logon Autostart Uitvoering: Register Run Keys / Startup Folder MQsTTang blijft bestaan ​​door een registry Run-sleutel te maken.
verdediging ontduiking T1036.004 Maskerade: Masquerade Taak of Dienst In de meeste voorbeelden wordt de registersleutel gemaakt met de naam qvlc. Dit komt overeen met de naam van een legitiem uitvoerbaar bestand dat door VLC wordt gebruikt.
T1036.005 Maskerade: match legitieme naam of locatie Bij het maken van kopieën gebruikt MQsTTang bestandsnamen van legitieme programma's.
T1480 Uitvoering vangrails MQsTTang controleert de paden van waaruit het wordt uitgevoerd om te bepalen welke taken moeten worden uitgevoerd.
T1622 Debugger-ontduiking MQsTTang detecteert actieve foutopsporingsprogramma's en verandert het gedrag ervan als deze aanwezig zijn.
Command and Control T1071 Applicatielaagprotocol MQsTTang communiceert met zijn C&C-server via het MQTT-protocol.
T1102.002 Webservice: bidirectionele communicatie MQsTTang gebruikt een legitieme openbare MQTT-makelaar.
T1132.001 Gegevenscodering: standaardcodering De inhoud van de berichten tussen de malware en de server is base64-gecodeerd.
T1573.001 Versleuteld kanaal: symmetrische cryptografie De inhoud van de berichten tussen de malware en de server wordt versleuteld met een herhalende XOR-sleutel.
exfiltratie T1041 Exfiltratie via C2-kanaal De output van uitgevoerde commando's wordt via hetzelfde protocol teruggestuurd naar de server.

MQsTTang: De nieuwste achterdeur van Mustang Panda betreedt nieuw terrein met Qt en MQTT PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Tijdstempel:

Meer van We leven veiligheid