MQsTTang: cea mai recentă ușă din spate a lui Mustang Panda pătrunde pe noi terenuri cu Qt și MQTT

MQsTTang: cea mai recentă ușă din spate a lui Mustang Panda pătrunde pe noi terenuri cu Qt și MQTT

Cercetătorii ESET dezvăluie MQsTTang, o nouă ușă din spate folosită de Mustang Panda, care comunică prin protocolul MQTT

Cercetătorii ESET au analizat MQsTTang, o nouă ușă din spate personalizată pe care o atribuim grupului Mustang Panda APT. Această ușă din spate face parte dintr-o campanie în desfășurare pe care o putem urmări până la începutul lunii ianuarie 2023. Spre deosebire de majoritatea programelor malware ale grupului, MQsTTang nu pare să se bazeze pe familii existente sau proiecte disponibile public.

Mustang Panda este cunoscut pentru ea variante personalizate de Korplug (numit și PlugX) și lanțuri de încărcare elaborate. Într-o abatere de la tactica obișnuită a grupului, MQsTTang are doar o singură etapă și nu folosește nicio tehnică de ofuscare.

victimologie

Am văzut entități necunoscute în Bulgaria și Australia în telemetria noastră. Avem, de asemenea, informații care indică faptul că această campanie vizează o instituție guvernamentală din Taiwan. Cu toate acestea, datorită naturii numelor de fișiere momeală utilizate, credem că sunt vizate și organizațiile politice și guvernamentale din Europa și Asia. Acest lucru ar fi, de asemenea, în concordanță cu țintirea celorlalte campanii recente ale grupului. La fel de documentate de colegii cercetători de la Proofpoint, se știe că Mustang Panda vizează entitățile guvernamentale europene cel puțin din 2020 și și-a sporit și mai mult activitatea în Europa, de la invazia Rusiei în Ucraina. Figura 1 arată punctul nostru de vedere asupra direcționării acestei campanii.

MQsTTang: Mustang Panda’s latest backdoor treads new ground with Qt and MQTT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figura 1. Hartă care arată țintele cunoscute și suspectate ale MQsTTang

atribuire

Atribuim această nouă ușă din spate și campania lui Mustang Panda cu mare încredere pe baza următorilor indicatori.

Am găsit arhive care conțin mostre de MQsTTang în două depozite GitHub aparținând utilizatorului YanNaingOo0072022. Un alt depozit GitHub al aceluiași utilizator a fost folosit într-o campanie anterioară Mustang Panda descrisă de Avast într-o Postare pe blog din decembrie 2022.

Unul dintre serverele utilizate în campania actuală rula un server FTP anonim, accesibil publicului, care pare să fie folosit pentru a organiza instrumente și încărcături utile. În /pub/zeu directorul acestui server există mai multe încărcătoare, arhive și instrumente Korplug care au fost folosite în campaniile anterioare Mustang Panda. Acesta este același director care a fost folosit de către stager descris în postarea de blog Avast menționată mai sus. Acest server avea și un /pub/gd director, care a fost o altă cale folosită în acea campanie.

O parte din infrastructura folosită în această campanie se potrivește și cu amprenta rețelei a serverelor Mustang Panda cunoscute anterior.

Analiza tehnica

MQsTTang este o ușă din spate care permite atacatorului să execute comenzi arbitrare pe mașina unei victime și să obțină rezultatul. Chiar și așa, prezintă câteva caracteristici interesante. Principalul dintre acestea este utilizarea de către acesta a Protocolul MQTT pentru comunicarea C&C. MQTT este folosit de obicei pentru comunicarea între dispozitivele IoT și controlere, iar protocolul nu a fost folosit în multe familii de malware documentate public. Un astfel de exemplu este Chrysaor, cunoscut și ca Pegasus pentru Android. Din perspectiva unui atacator, unul dintre avantajele MQTT este că ascunde restul infrastructurii în spatele unui broker. Astfel, mașina compromisă nu comunică niciodată direct cu serverul C&C. După cum se vede în Figura 2, această capacitate este obținută prin utilizarea sursei deschise Biblioteca QMQTT. Această bibliotecă depinde de Cadrul Qt, din care o mare parte este legată static în malware. Utilizarea cadrului Qt pentru dezvoltarea de malware este, de asemenea, destul de neobișnuită. MagicRAT al lui Lazăr este unul dintre rarele exemple documentate recent.

MQsTTang: Mustang Panda’s latest backdoor treads new ground with Qt and MQTT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figura 2. RTTI care arată clasele din biblioteca QMQTT

MQsTTang este distribuit în arhive RAR care conțin doar un singur executabil. Aceste executabile au de obicei nume legate de Diplomație și pașapoarte, cum ar fi:

  • CV-uri Amb Officer PASAPORT Ministerul Afacerilor Externe.exe
  • Acte membri ai delegatiei diplomatice din Germania.Exe
  • PDF_Pașaport și CV-uri ale membrilor diplomatici din Tokyo ai JAPAN.eXE
  • Nota nr.18-NG-23 de la Ambasada Japoniei.exe

Aceste arhive sunt găzduite pe un server web fără nume de domeniu asociat. Acest fapt, împreună cu numele fișierelor, ne face să credem că malware-ul este răspândit prin spearphishing.

Până acum, am observat doar câteva mostre. Pe lângă variațiile unor constante și șiruri hardcoded, eșantioanele sunt remarcabil de similare. Singura schimbare notabilă este adăugarea unor tehnici anti-analiza în ultimele versiuni. Prima dintre acestea constă în utilizarea CreateToolhelp32Snapshot Funcția API Windows pentru a repeta prin procesele care rulează și pentru a căuta următoarele instrumente de depanare și monitorizare cunoscute.

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

Rețineți că, deși malware-ul este un executabil pe 32 de biți, verifică doar prezența lui x64dbg și nu omologul său pe 32 de biți, x32dbg.

A doua tehnică folosește GăsițiWindowW API-ul Windows pentru a căuta următoarele clase și titluri de ferestre utilizate de instrumentele de analiză cunoscute:

  • PROCMON_WINDOW_CLASS
  • OLLYDBG
  • WinDbgFrameClass
  • OllyDbg – [CPU]
  • Depanator imunitate – [CPU]

Când este executat direct, malware-ul va lansa o copie a lui însuși cu 1 ca argument în linia de comandă. Acest lucru este repetat de noul proces, argumentul fiind incrementat cu 1 la fiecare rulare. Când acest argument atinge anumite valori, anumite sarcini vor fi executate. Rețineți că valorile exacte variază între eșantioane; cele menționate mai jos corespund eșantionului cu SHA-1 02D95E0C369B08248BFFAAC8607BBA119D83B95B. Cu toate acestea, sarcinile în sine și ordinea în care sunt executate sunt constante.

Figura 3 prezintă o privire de ansamblu asupra acestui comportament împreună cu sarcinile care sunt executate la prima rulare a malware-ului.

MQsTTang: Mustang Panda’s latest backdoor treads new ground with Qt and MQTT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figura 3. Graficul de execuție care arată subprocesele și sarcinile executate

Tabelul 1 conține o listă a sarcinilor și valoarea la care fiecare dintre ele este executată. Le vom descrie mai detaliat în paragrafele următoare.

Tabelul 1. Sarcinile executate de backdoor

Numărul sarcinii Valoarea argumentului Descrierea sarcinii
1 5 Începeți comunicarea C&C.
2 9 Creați o copie și lansați.
3 32 Creați o copie de persistență.
4 119 Stabiliți persistența.
5 148 Opriți execuția recursivă.

Dacă orice instrument de analiză sau depanator este detectat folosind tehnicile descrise anterior, comportamentul sarcinii 1 este modificat și sarcinile 2, 3 și 4 sunt omise complet.

Sarcina 1: Comunicarea C&C

După cum sa menționat anterior, MQsTTang comunică cu serverul său C&C prin protocolul MQTT. Toate mostrele observate folosesc 3.228.54.173 ca broker. Acest server este un broker public operat de EMQX, care se întâmplă să fie și întreținătorii bibliotecii QMQTT. Aceasta ar putea fi o modalitate de a face traficul de rețea să pară legitim și de a ascunde infrastructura proprie a Mustang Panda. Utilizarea acestui broker public oferă, de asemenea, rezistență; Este puțin probabil ca serviciul să fie dezactivat din cauza numărului său de utilizatori legitimi și, chiar dacă actualele servere C&C sunt interzise sau eliminate, Mustang Panda ar putea crea altele noi și ar putea folosi aceleași subiecte MQTT fără a perturba funcționarea MQsTTang.

Cu toate acestea, această campanie ar putea fi, de asemenea, un caz de testare pentru Mustang Panda înainte de a decide dacă să investească timpul și resursele pentru a-și crea propriul broker. Acest lucru este susținut de numărul redus de mostre pe care le-am observat și de natura foarte simplă a MQsTTang.

După cum se arată în Figura 4, malware-ul și serverul C&C folosesc două subiecte MQTT pentru comunicarea lor. Primul, iot/server2, este folosit pentru comunicarea de la client la server. Al doilea este folosit pentru comunicarea de la server la client. Urmează formatul iot/v2/ Unde este generat prin preluarea ultimilor 8 octeți, în formă hexadecimală, ai unui UUID. Dacă este detectat vreun instrument de analiză, server2 și v2 sunt respectiv înlocuite cu server0 și v0. Acest lucru este probabil pentru a evita informarea apărătorilor prin întreruperea completă a execuției programului malware din timp.

MQsTTang: Mustang Panda’s latest backdoor treads new ground with Qt and MQTT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figura 4. Graficul de rețea simplificat al comunicării dintre ușa din spate și serverul C&C

Toate comunicațiile dintre server și client utilizează aceeași schemă de codificare. Sarcina utilă a mesajului MQTT este un obiect JSON cu un singur atribut numit msg. Pentru a genera valoarea acestui atribut, conținutul real este mai întâi codificat în bază64, apoi XOR cu șirul codificat hard NASA, iar base64 a fost codificat din nou. Vom descrie formatul exact al acestor încărcături utile în secțiunile relevante.

La prima conectare la broker, malware-ul se abonează la subiectul său unic. Apoi, și la fiecare 30 de secunde după aceea, clientul publică un mesaj KeepAlive la subiectul serverului. Conținutul acestui mesaj este un obiect JSON cu următorul format:

Când serverul dorește să lanseze o comandă, publică un mesaj către subiectul unic al clientului. Conținutul text simplu al acestui mesaj este pur și simplu comanda care trebuie executată. După cum se arată în Figura 5, clientul execută comanda primită folosind QProcess::startCommand din cadrul Qt. Ieșirea, obținută folosind QProcess::readAllStandardOutput, este apoi trimis înapoi într-un obiect JSON cu următorul format:

MQsTTang: Mustang Panda’s latest backdoor treads new ground with Qt and MQTT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figura 5. Executarea comenzilor primite folosind QProcess clasă

Deoarece numai conținutul ieșirii standard este trimis înapoi, serverul nu va primi erori sau avertismente. Din punctul de vedere al serverului, o comandă eșuată este astfel imposibil de distins de o comandă care pur și simplu nu produce nicio ieșire decât dacă este efectuată un fel de redirecționare.

Sarcinile 2 și 3: Copierea malware-ului

A doua și a treia sarcină sunt destul de asemănătoare între ele. Ei copiază executabilul malware-ului pe o cale hardcoded; c:userspublicvdump.exe și c:userspublicvcall.exe respectiv. Numele de fișiere utilizate sunt diferite pentru fiecare probă, dar sunt întotdeauna localizate în fișierul C:userspublic director.

În a doua sarcină, copia nou creată este apoi lansată cu argumentul liniei de comandă 97.

Sarcina 4: Stabilirea persistenței

Persistența este stabilită de a patra sarcină, care creează o nouă valoare qvlc setat la c:userspublicvcall.exe în temeiul HKCUSoftwareMicrosoftWindowsCurrentVersionRun cheie de registry. Acest lucru va face ca malware-ul să fie executat la pornire.

Când MQsTTang este executat la pornire ca c:userspublicvcall.exe, numai sarcina de comunicare C&C este executată.

Concluzie

Campania Mustang Panda descrisă în acest articol este în desfășurare în momentul scrierii acestui articol. Victimologia este neclară, dar numele de fișiere momeală sunt în concordanță cu celelalte campanii ale grupului care vizează entități politice europene.

Această nouă ușă din spate MQsTTang oferă un fel de shell de la distanță fără niciunul dintre clopotele și fluierele asociate cu celelalte familii de malware ale grupului. Cu toate acestea, arată că Mustang Panda explorează noi tehnologii pentru instrumentele sale. Rămâne de văzut dacă această ușă din spate va deveni o parte recurentă din arsenalul grupului, dar este încă un exemplu al ciclului rapid de dezvoltare și implementare a grupului.

ESET Research oferă rapoarte private de informații APT și fluxuri de date. Pentru orice întrebări despre acest serviciu, vizitați ESET Threat Intelligence .

IoC-uri

Fişiere

SHA-1 Filename Detectare Descriere
A1C660D31518C8AFAA6973714DE30F3D576B68FC CV-uri Amb.rar Win32/Agent.AFBI Arhiva RAR folosită pentru a distribui backdoor MQsTTang.
430C2EF474C7710345B410F49DF853BDEAFBDD78 CV-uri Amb Officer PASAPORT Ministerul Afacerilor Externe.exe Win32/Agent.AFBI MQsTTang ușă din spate.
F1A8BF83A410B99EF0E7FDF7BA02B543B9F0E66C Documente.rar Win32/Agent.AFBI Arhiva RAR folosită pentru a distribui backdoor MQsTTang.
02D95E0C369B08248BFFAAC8607BBA119D83B95B PDF_Pașaport și CV-uri ale membrilor diplomatici din Tokyo ai JAPAN.eXE Win32/Agent.AFBI MQsTTang ușă din spate.
0EA5D10399524C189A197A847B8108AA8070F1B1 Acte membri ai delegatiei diplomatice din Germania.Exe Win32/Agent.AFBI MQsTTang ușă din spate.
982CCAF1CB84F6E44E9296C7A1DDE2CE6A09D7BB Documente.rar Win32/Agent.AFBI Arhiva RAR folosită pentru a distribui backdoor MQsTTang.
740C8492DDA786E2231A46BFC422A2720DB0279A 23 de la Ambasada Japoniei.exe Win32/Agent.AFBI MQsTTang ușă din spate.
AB01E099872A094DC779890171A11764DE8B4360 BoomerangLib.dll Win32/Korplug.TH Încărcător Mustang Panda Korplug cunoscut.
61A2D34625706F17221C1110D36A435438BC0665 breakpad.dll Win32/Korplug.UB Încărcător Mustang Panda Korplug cunoscut.
30277F3284BCEEF0ADC5E9D45B66897FA8828BFD coreclr.dll Win32/Agent.ADMW Încărcător Mustang Panda Korplug cunoscut.
BEE0B741142A9C392E05E0443AAE1FA41EF512D6 HPCustPartUI.dll Win32/Korplug.UB Încărcător Mustang Panda Korplug cunoscut.
F6F3343F64536BF98DE7E287A7419352BF94EB93 HPCustPartUI.dll Win32/Korplug.UB Încărcător Mustang Panda Korplug cunoscut.
F848C4F3B9D7F3FE1DB3847370F8EEFAA9BF60F1 libcef.dll Win32/Korplug.TX Încărcător Mustang Panda Korplug cunoscut.

Reţea

IP domeniu Furnizor de găzduire Prima dată văzut Detalii
3.228.54.173 broker.emqx.io Amazon.com, Inc 2020-03-26 Broker MQTT public legitim.
80.85.156[.]151 - Chelyabinsk-Signal LLC 2023-01-05 Server de livrare MQsTTang.
80.85.157[.]3 - Chelyabinsk-Signal LLC 2023-01-16 Server de livrare MQsTTang.
185.144.31[.]86 - Abuz-C Rol 2023-01-22 Server de livrare MQsTTang.

Arhivele Github

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

Tehnici MITRE ATT&CK

Acest tabel a fost construit folosind Versiunea 12 din cadrul MITRE ATT&CK.

tactică ID Nume si Prenume Descriere
Dezvoltarea resurselor T1583.003 Achiziționați infrastructură: server privat virtual Unele servere utilizate în campanie sunt pe găzduire partajată.
T1583.004 Achiziționați infrastructură: Server Unele servere folosite în campanie par a fi exclusiv Mustang Panda.
T1587.001 Dezvoltarea capacităților: Malware MQsTTang este o ușă din spate personalizată, probabil dezvoltată de Mustang Panda.
T1588.002 Obține Capabilități: Instrument Mai multe instrumente legitime și open-source, inclusiv psexec, ps, răsuci, și plink, au fost găsite pe serverul de staging.
T1608.001 Capabilități de etapă: Încărcați programe malware MQsTTang a fost încărcat pe serverul web pentru distribuire.
T1608.002 Capabilități de etapă: Instrument de încărcare Mai multe instrumente au fost încărcate pe un server FTP.
Acces inițial T1566.002 Phishing: Link de spearphishing MQsTTang este distribuit prin linkuri spearphishing către un fișier rău intenționat de pe un server web controlat de atacator.
Execuție T1106 API nativ MQsTTang folosește QProcess clasa din cadrul Qt pentru a executa comenzi.
T1204.002 Execuție utilizator: fișier rău intenționat MQsTTang se bazează pe utilizator pentru a executa fișierul rău intenționat descărcat.
Persistență T1547.001 Execuție de pornire automată de pornire sau de conectare: chei de rulare a registrului / folder de pornire MQsTTang persistă prin crearea unei chei Run de registry.
Evaziunea apărării T1036.004 Masquerading: Masquerade Sarcină sau serviciu În majoritatea exemplelor, cheia de registry este creată cu numele qvlc. Acesta se potrivește cu numele unui executabil legitim utilizat de VLC.
T1036.005 Masquerading: potriviți numele sau locația legitimă Când creează copii, MQsTTang folosește numele de fișiere ale programelor legitime.
T1480 Balustrade de execuție MQsTTang verifică căile din care este executat pentru a determina ce sarcini să execute.
T1622 Evaziunea depanatorului MQsTTang detectează depanatoarele care rulează și își modifică comportamentul dacă se găsește că există.
Comandă și Control T1071 Protocolul stratului de aplicație MQsTTang comunică cu serverul său C&C utilizând protocolul MQTT.
T1102.002 Serviciu web: Comunicare bidirecțională MQsTTang folosește un broker MQTT public legitim.
T1132.001 Codificarea datelor: codificare standard Conținutul mesajelor dintre malware și server este codificat în base64.
T1573.001 Canal criptat: Criptografie simetrică Conținutul mesajelor dintre malware și server este criptat folosind o cheie XOR repetată.
Exfiltrarea T1041 Exfiltrare peste canalul C2 Ieșirea comenzilor executate este trimisă înapoi la server folosind același protocol.

MQsTTang: Mustang Panda’s latest backdoor treads new ground with Qt and MQTT PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Timestamp-ul:

Mai mult de la Traim Securitate