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.
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 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.
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.
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:
{ “Alive”: “<malware’s uptime in minutes>”, “c_topic”: “<client’s unique topic>” } |
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:
{ “c_topic”: “<client’s unique topic>”, “ret”: “<Command output>” } |
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.
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. |
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://www.welivesecurity.com/2023/03/02/mqsttang-mustang-panda-latest-backdoor-treads-new-ground-qt-mqtt/
- 1
- 10
- 2020
- 2022
- 2023
- 7
- 9
- a
- Despre Noi
- accesibil
- realizat
- activitate
- plus
- TOATE
- permite
- mereu
- printre
- analiză
- și
- Anonim
- O alta
- separat
- api
- APT
- arhivă
- argument
- Arsenal
- articol
- Asia
- asociate
- Australia
- disponibil
- Stai
- înapoi
- ușă din dos
- interzis
- bazat
- deoarece
- deveni
- înainte
- în spatele
- fiind
- Crede
- clopote
- de mai jos
- Beneficiile
- între
- agent
- construit
- Bulgaria
- Campanie
- Campanii
- capacități
- caz
- Provoca
- sigur
- lanţuri
- Schimbare
- Canal
- Caracteristici
- Verificări
- şef
- clasă
- clase
- client
- COM
- Comunicare
- compromis
- încredere
- Conectarea
- constant
- conţine
- conține
- conţinut
- copiere
- ar putea
- a creat
- creează
- Crearea
- Curent
- personalizat
- CVS
- ciclu
- de date
- Decidând
- apărătorii
- livrare
- depinde de
- desfășurarea
- descrie
- descris
- detaliu
- detectat
- Determina
- dezvoltat
- Dezvoltare
- Dispozitive
- diferit
- Diplomaţie
- direct
- distribui
- distribuite
- distribuire
- Nu
- domeniu
- Domain Name
- jos
- numit
- fiecare
- Devreme
- Elaborat
- criptate
- în întregime
- entități
- Erori
- stabilit
- stabilirea
- Europa
- european
- Chiar
- Fiecare
- exemplu
- exemple
- Exclusiv
- a executa
- Executa
- execuție
- existent
- Explorarea
- A eșuat
- destul de
- familii
- FAST
- membru
- puțini
- Figura
- Fișier
- amprentă digitală
- First
- următor
- urmează
- străin
- formă
- format
- găsit
- Al patrulea
- Cadru
- din
- funcţie
- mai mult
- genera
- generată
- Germania
- obține
- GitHub
- guvernamental
- grafic
- Teren
- grup
- Grupului
- întâmpla
- HEX
- Ascunde
- Înalt
- hit-uri
- găzduit
- găzduire
- Totuși
- HTTPS
- in
- Inclusiv
- a crescut
- Indicatorii
- informații
- Infrastructură
- Instituţie
- Inteligență
- interesant
- invazie
- Investi
- IoT
- dispozitive iot
- problema
- IT
- în sine
- ianuarie
- Japonia
- JSON
- Cheie
- chei
- Copil
- cunoscut
- mare
- Nume
- Ultimele
- lansa
- a lansat
- strat
- Conduce
- Bibliotecă
- Probabil
- Linie
- legate de
- Link-uri
- Listă
- încărcător
- încărcare
- situat
- Uite
- Jos
- maşină
- face
- malware
- multe
- Hartă
- mascaradă
- Meci
- max-width
- Membri actuali
- menționat
- mesaj
- mesaje
- minister
- Monitorizarea
- mai mult
- cele mai multe
- multiplu
- nume
- Numit
- nume
- Natură
- reţea
- trafic de retea
- Nou
- notabil
- număr
- obiect
- obținut
- promoții
- Ofiţer
- ONE
- în curs de desfășurare
- deschide
- open-source
- operat
- operaţie
- comandă
- organizații
- Altele
- Prezentare generală
- propriu
- parte
- pașaport
- cale
- persistență
- persistă
- perspectivă
- Plato
- Informații despre date Platon
- PlatoData
- Punct
- Punct de vedere
- politic
- prezenţă
- prezenta
- precedent
- în prealabil
- privat
- probabil
- proces
- procese
- Programe
- Proiecte
- protocol
- furnizează
- public
- public
- publică
- QT
- RAR
- a primi
- primit
- recent
- recent
- recurente
- recursive
- registru
- legate de
- rămășițe
- la distanta
- repetat
- înlocuiește
- Rapoarte
- depozit
- cercetare
- cercetători
- Resurse
- REST
- Alerga
- funcţionare
- acelaşi
- schemă
- Al doilea
- secunde
- secțiuni
- pare
- Servere
- serviciu
- set
- comun
- Coajă
- indicat
- Emisiuni
- asemănător
- simplu
- simplificată
- pur şi simplu
- întrucât
- singur
- So
- Moale
- unele
- Sursă
- specific
- Rotire
- răspândire
- Stive
- Etapă
- înscenare
- standard
- lansare
- astfel de
- Suportat
- sintaxă
- tabel
- tactică
- Taiwan
- luare
- Ţintă
- vizate
- direcționare
- obiective
- Sarcină
- sarcini
- tehnici de
- Tehnologia
- test
- lor
- se
- Al treilea
- amenințare
- Prin
- timp
- titluri
- la
- Tokyo
- instrument
- Unelte
- subiect
- subiecte
- Urmă
- trafic
- tipic
- Ucraina
- neobișnuit
- în
- unic
- viitoare
- încărcat
- uptime
- us
- utilizare
- Utilizator
- utilizatorii
- obișnuit
- valoare
- Valori
- de
- Vizualizare
- Virtual
- web
- server de web
- dacă
- care
- în timp ce
- OMS
- larg
- voi
- ferestre
- fără
- ar
- scris
- zephyrnet