ESET-forskere erter MQsTTang, en ny bakdør brukt av Mustang Panda, som kommuniserer via MQTT-protokollen
ESET-forskere har analysert MQsTTang, en ny tilpasset bakdør som vi tilskriver Mustang Panda APT-gruppen. Denne bakdøren er en del av en pågående kampanje som vi kan spore tilbake til begynnelsen av januar 2023. I motsetning til de fleste av gruppens skadevare, ser ikke MQsTTang ut til å være basert på eksisterende familier eller offentlig tilgjengelige prosjekter.
Mustang Panda er kjent for sin tilpassede Korplug-varianter (også kalt PlugX) og forseggjorte lastekjeder. I et avvik fra gruppens vanlige taktikk, har MQsTTang bare en enkelt etappe og bruker ingen obfuskasjonsteknikker.
viktimologi
Vi har sett ukjente enheter i Bulgaria og Australia i vår telemetri. Vi har også informasjon som indikerer at denne kampanjen er rettet mot en statlig institusjon i Taiwan. På grunn av arten av lokkefilnavnene som brukes, tror vi imidlertid at politiske og statlige organisasjoner i Europa og Asia også blir målrettet. Dette vil også være i tråd med målrettingen av gruppens andre nylige kampanjer. Som dokumentert av medforskere ved Proofpoint, Mustang Panda har vært kjent for å målrette mot europeiske statlige enheter siden minst 2020 og har økt sin aktivitet i Europa ytterligere siden Russlands invasjon av Ukraina. Figur 1 viser vårt syn på målrettingen for denne kampanjen.
Attribution
Vi tilskriver denne nye bakdøren og kampanjen Mustang Panda med høy selvtillit basert på følgende indikatorer.
Vi fant arkiver som inneholder prøver av MQsTTang i to GitHub-depoter som tilhører brukeren YanNaingOo0072022. Et annet GitHub-lager for samme bruker ble brukt i en tidligere Mustang Panda-kampanje beskrevet av Avast i en desember 2022 blogginnlegg.
En av serverne som ble brukt i den nåværende kampanjen kjørte en offentlig tilgjengelig anonym FTP-server som ser ut til å bli brukt til å iscenesette verktøy og nyttelast. I /pub/gud katalogen til denne serveren er det flere Korplug-lastere, arkiver og verktøy som ble brukt i tidligere Mustang Panda-kampanjer. Dette er den samme katalogen som ble brukt av scenen beskrevet i det nevnte Avast-blogginnlegget. Denne serveren hadde også en /pub/gd katalogen, som var en annen bane som ble brukt i den kampanjen.
Noe av infrastrukturen som brukes i denne kampanjen samsvarer også med nettverksfingeravtrykket til tidligere kjente Mustang Panda-servere.
Teknisk analyse
MQsTTang er en barebones-bakdør som lar angriperen utføre vilkårlige kommandoer på et offers maskin og få utdata. Likevel har den noen interessante egenskaper. Den viktigste blant disse er bruken av MQTT-protokoll for C&C-kommunikasjon. MQTT brukes vanligvis til kommunikasjon mellom IoT-enheter og kontrollere, og protokollen har ikke blitt brukt i mange offentlig dokumenterte skadevarefamilier. Et slikt eksempel er Chrysaor, også kjent som Pegasus for Android. Fra en angripers perspektiv er en av MQTTs fordeler at den skjuler resten av deres infrastruktur bak en megler. Dermed kommuniserer den kompromitterte maskinen aldri direkte med C&C-serveren. Som vist i figur 2, oppnås denne muligheten ved å bruke åpen kildekode QMQTT bibliotek. Dette biblioteket avhenger av Qt rammeverk, hvorav en stor del er statisk koblet i skadelig programvare. Å bruke Qt-rammeverket for utvikling av skadelig programvare er også ganske uvanlig. Lasarus' MagicRAT er et av de sjeldne nylig dokumenterte eksemplene.
MQsTTang er distribuert i RAR-arkiver som kun inneholder en enkelt kjørbar fil. Disse kjørbare filene har vanligvis navn relatert til diplomati og pass som:
- CVer Amb Officer PASS Utenriksdepartementet.exe
- Dokumenter medlemmer av delegasjonen diplomatiske fra Tyskland.Exe
- PDF_Pass og CVer til diplomatiske medlemmer fra Tokyo fra JAPAN.eXE
- Merknad nr.18-NG-23 fra Embassy of Japan.exe
Disse arkivene ligger på en webserver uten tilknyttet domenenavn. Dette faktum, sammen med filnavnene, får oss til å tro at skadelig programvare spres via spearphishing.
Så langt har vi kun observert noen få prøver. Foruten variasjoner i noen konstanter og hardkodede strenger, er prøvene bemerkelsesverdig like. Den eneste bemerkelsesverdige endringen er tillegget av noen antianalyseteknikker i de nyeste versjonene. Den første av disse består i å bruke CreateToolhelp32Snapshot Windows API-funksjon for å iterere gjennom kjørende prosesser og se etter følgende kjente debuggere og overvåkingsverktøy.
- 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 at selv om skadelig programvare er en 32-biters kjørbar fil, sjekker den bare for tilstedeværelse av x64dbg og ikke dens 32-bits motstykke, x32dbg.
Den andre teknikken bruker FinnWindowW Windows API for å se etter følgende vindusklasser og titler som brukes av kjente analyseverktøy:
- PROCMON_WINDOW_CLASS
- OLLYDBG
- WinDbgFrameClass
- OllyDbg – [CPU]
- Immunitetsfeilsøker – [CPU]
Når den kjøres direkte, vil skadelig programvare starte en kopi av seg selv med 1 som et kommandolinjeargument. Dette gjentas av den nye prosessen, med argumentet som økes med 1 på hver kjøring. Når dette argumentet treffer spesifikke verdier, vil visse oppgaver bli utført. Merk at de nøyaktige verdiene varierer mellom prøvene; de nevnt nedenfor tilsvarer prøven med SHA-1 02D95E0C369B08248BFFAAC8607BBA119D83B95B. Oppgavene i seg selv og rekkefølgen de utføres i er imidlertid konstant.
Figur 3 viser en oversikt over denne oppførselen sammen med oppgavene som utføres når skadevaren kjøres første gang.
Tabell 1 inneholder en liste over oppgavene og verdien for hver av dem utføres. Vi vil beskrive dem mer detaljert i de kommende avsnittene.
Tabell 1. Oppgaver utført av bakdøren
Oppgavenummer | Argumentverdi | Oppgavebeskrivelse |
---|---|---|
1 | 5 | Start C&C-kommunikasjon. |
2 | 9 | Lag kopi og start. |
3 | 32 | Lag utholdenhetskopi. |
4 | 119 | Etabler utholdenhet. |
5 | 148 | Stopp rekursiv utførelse. |
Hvis et analyseverktøy eller debugger oppdages ved hjelp av teknikkene vi beskrev tidligere, endres oppførselen til oppgave 1 og oppgave 2, 3 og 4 hoppes over helt.
Oppgave 1: C&C kommunikasjon
Som tidligere nevnt, kommuniserer MQsTTang med sin C&C-server over MQTT-protokollen. Alle observerte prøver bruker 3.228.54.173 som megler. Denne serveren er en offentlig megler som drives av EMQX, som også tilfeldigvis er vedlikeholdere av QMQTT-biblioteket. Dette kan være en måte å få nettverkstrafikken til å virke legitim og skjule Mustang Pandas egen infrastruktur. Å bruke denne offentlige megleren gir også robusthet; tjenesten er usannsynlig å bli fjernet på grunn av dens mange legitime brukere, og selv om de nåværende C&C-serverne blir forbudt eller tatt ned, kan Mustang Panda spinne opp nye og bruke de samme MQTT-emnene uten å forstyrre MQsTTangs drift.
Imidlertid kan denne kampanjen også være en testsak av Mustang Panda før de bestemmer seg for om de skal investere tid og ressurser for å sette opp sin egen megler. Dette støttes av det lave antallet prøver vi har observert og den veldig enkle naturen til MQsTTang.
Som vist i figur 4 bruker malware- og C&C-serveren to MQTT-emner for sin kommunikasjon. Den første, iot/server2, brukes for kommunikasjon fra klienten til serveren. Den andre brukes til kommunikasjon fra serveren til klienten. Den følger formatet iot/v2/ hvor genereres ved å ta de siste 8 bytene, i hex-form, av en UUID. Hvis et analyseverktøy oppdages, server2 og v2 er henholdsvis erstattet med server0 og v0. Dette er sannsynligvis for å unngå å tipse forsvarere ved å fullstendig avbryte utføringen av skadelig programvare tidlig.
All kommunikasjon mellom serveren og klienten bruker samme kodingsskjema. MQTT-meldingens nyttelast er et JSON-objekt med et enkelt attributt navngitt msg. For å generere verdien av dette attributtet, blir det faktiske innholdet først base64-kodet, deretter XORed med den hardkodede strengen nasa, og base64 kodet igjen. Vi vil beskrive det nøyaktige formatet til disse nyttelastene i de relevante delene.
Ved første tilkobling til megleren, abonnerer skadevare på sitt unike emne. Deretter, og hvert 30. sekund deretter, publiserer klienten en KeepAlive-melding til serverens emne. Innholdet i denne meldingen er et JSON-objekt med følgende format:
{ “Alive”: “<malware’s uptime in minutes>”, “c_topic”: “<client’s unique topic>” } |
Når serveren ønsker å utstede en kommando, publiserer den en melding til klientens unike emne. Klartekstinnholdet i denne meldingen er ganske enkelt kommandoen som skal utføres. Som vist i figur 5, utfører klienten den mottatte kommandoen ved hjelp av QProcess::startCommand fra Qt-rammeverket. Utgangen, oppnådd ved hjelp av QProcess::readAllStandardOutput, sendes deretter tilbake i et JSON-objekt med følgende format:
{ “c_topic”: “<client’s unique topic>”, “ret”: “<Command output>” } |
Siden bare innholdet i standardutdata sendes tilbake, vil ikke serveren motta feil eller advarsler. Fra serverens synspunkt kan en mislykket kommando derfor ikke skilles fra en kommando som ganske enkelt ikke produserer noe utdata med mindre en form for omdirigering utføres.
Oppgave 2 og 3: Kopiering av skadelig programvare
Den andre og tredje oppgaven er ganske like hverandre. De kopierer den kjørbare programvaren til en hardkodet bane; c:userspublicvdump.exe og c:userspublicvcall.exe hhv. Filnavnene som brukes er forskjellige for hver prøve, men de er alltid plassert i C:userspublic katalogen.
I den andre oppgaven lanseres den nyopprettede kopien med kommandolinjeargumentet 97.
Oppgave 4: Etablere utholdenhet
Utholdenhet etableres av den fjerde oppgaven, som skaper en ny verdi qvlc satt til c:userspublicvcall.exe under HKCUSoftwareMicrosoftWindowsCurrentVersionRun registernøkkel. Dette vil føre til at skadelig programvare kjøres ved oppstart.
Når MQsTTang kjøres ved oppstart som c:userspublicvcall.exe, bare C&C-kommunikasjonsoppgaven utføres.
konklusjonen
Mustang Panda-kampanjen beskrevet i denne artikkelen pågår når dette skrives. Vitimologien er uklar, men lokkefilnavnene er i tråd med gruppens andre kampanjer som retter seg mot europeiske politiske enheter.
Denne nye MQsTTang-bakdøren gir et slags eksternt skall uten noen av klokkene og plystre knyttet til gruppens andre malware-familier. Det viser imidlertid at Mustang Panda utforsker nye teknologistabler for verktøyene sine. Det gjenstår å se om denne bakdøren vil bli en tilbakevendende del av gruppens arsenal, men det er enda et eksempel på gruppens raske utviklings- og distribusjonssyklus.
IoCs
Filer
SHA-1 | filnavn | Gjenkjenning | Beskrivelse |
---|---|---|---|
A1C660D31518C8AFAA6973714DE30F3D576B68FC | CVer Amb.rar | Win32/Agent.AFBI | RAR-arkiv som brukes til å distribuere MQsTTang-bakdør. |
430C2EF474C7710345B410F49DF853BDEAFBDD78 | CVer Amb Officer PASS Utenriksdepartementet.exe | Win32/Agent.AFBI | MQsTTang bakdør. |
F1A8BF83A410B99EF0E7FDF7BA02B543B9F0E66C | Documents.rar | Win32/Agent.AFBI | RAR-arkiv som brukes til å distribuere MQsTTang-bakdør. |
02D95E0C369B08248BFFAAC8607BBA119D83B95B | PDF_Pass og CVer til diplomatiske medlemmer fra Tokyo fra JAPAN.eXE | Win32/Agent.AFBI | MQsTTang bakdør. |
0EA5D10399524C189A197A847B8108AA8070F1B1 | Dokumenter medlemmer av delegasjonen diplomatiske fra Tyskland.Exe | Win32/Agent.AFBI | MQsTTang bakdør. |
982CCAF1CB84F6E44E9296C7A1DDE2CE6A09D7BB | Documents.rar | Win32/Agent.AFBI | RAR-arkiv som brukes til å distribuere MQsTTang-bakdør. |
740C8492DDA786E2231A46BFC422A2720DB0279A | 23 fra Embassy of Japan.exe | Win32/Agent.AFBI | MQsTTang bakdør. |
AB01E099872A094DC779890171A11764DE8B4360 | BoomerangLib.dll | Win32/Korplug.TH | Kjent Mustang Panda Korplug-laster. |
61A2D34625706F17221C1110D36A435438BC0665 | breakpad.dll | Win32/Korplug.UB | Kjent Mustang Panda Korplug-laster. |
30277F3284BCEEF0ADC5E9D45B66897FA8828BFD | coreclr.dll | Win32/Agent.ADMW | Kjent Mustang Panda Korplug-laster. |
BEE0B741142A9C392E05E0443AAE1FA41EF512D6 | HPCustPartUI.dll | Win32/Korplug.UB | Kjent Mustang Panda Korplug-laster. |
F6F3343F64536BF98DE7E287A7419352BF94EB93 | HPCustPartUI.dll | Win32/Korplug.UB | Kjent Mustang Panda Korplug-laster. |
F848C4F3B9D7F3FE1DB3847370F8EEFAA9BF60F1 | libcef.dll | Win32/Korplug.TX | Kjent Mustang Panda Korplug-laster. |
Network
IP | Domene | Hosting-leverandør | Først sett | Detaljer |
---|---|---|---|---|
3.228.54.173 | broker.emqx.io | Amazon.com, Inc. | 2020-03-26 | Legitime offentlig MQTT-megler. |
80.85.156[.]151 | N / A | Chelyabinsk-Signal LLC | 2023-01-05 | MQsTTang leveringsserver. |
80.85.157[.]3 | N / A | Chelyabinsk-Signal LLC | 2023-01-16 | MQsTTang leveringsserver. |
185.144.31[.]86 | N / A | Misbruk-C-rolle | 2023-01-22 | MQsTTang leveringsserver. |
Github-lagre
- https://raw.githubusercontent[.]com/YanNaingOo0072022/14/main/Documents.rar
- https://raw.githubusercontent[.]com/YanNaingOo0072022/ee/main/CVs Amb.rar
MITRE ATT&CK-teknikker
Dette bordet ble bygget vha versjon 12 av MITRE ATT&CK-rammeverket.
taktikk | ID | Navn | Beskrivelse |
---|---|---|---|
Ressursutvikling | T1583.003 | Skaff infrastruktur: Virtual Private Server | Noen servere som brukes i kampanjen er på delt hosting. |
T1583.004 | Anskaffe infrastruktur: Server | Noen servere som brukes i kampanjen ser ut til å være eksklusive for Mustang Panda. | |
T1587.001 | Utvikle evner: Skadelig programvare | MQsTTang er en tilpasset bakdør, sannsynligvis utviklet av Mustang Panda. | |
T1588.002 | Skaff evner: Verktøy | Flere legitime og åpen kildekodeverktøy, inkludert psexec, ps, curlog plink, ble funnet på oppsamlingsserveren. | |
T1608.001 | Stageegenskaper: Last opp skadelig programvare | MQsTTang ble lastet opp til webserveren for distribusjon. | |
T1608.002 | Stageegenskaper: Opplastingsverktøy | Flere verktøy ble lastet opp til en FTP-server. | |
Innledende tilgang | T1566.002 | Phishing: Spearphishing Link | MQsTTang distribueres via spearphishing-lenker til en ondsinnet fil på en angriperkontrollert webserver. |
Gjennomføring | T1106 | Innfødt API | MQsTTang bruker QProcess klasse fra Qt-rammeverket for å utføre kommandoer. |
T1204.002 | Brukerutførelse: Skadelig fil | MQsTTang er avhengig av at brukeren kjører den nedlastede ondsinnede filen. | |
Utholdenhet | T1547.001 | Oppstart eller pålogging Autostartutførelse: Registry Run Keys / Oppstartsmappe | MQsTTang vedvarer ved å opprette en registerkjørenøkkel. |
Forsvarsunndragelse | T1036.004 | Maskering: Maskeradeoppgave eller tjeneste | I de fleste eksempler er registernøkkelen opprettet med navnet qvlc. Dette samsvarer med navnet på en legitim kjørbar som brukes av VLC. |
T1036.005 | Masquerading: Match legitimt navn eller sted | Når du lager kopier, bruker MQsTTang filnavn på legitime programmer. | |
T1480 | Utførelsesrekkverk | MQsTTang sjekker banene den utføres fra for å bestemme hvilke oppgaver som skal utføres. | |
T1622 | Debugger Evasion | MQsTTang oppdager kjørende debuggere og endrer oppførselen hvis noen blir funnet å være tilstede. | |
Command and Control | T1071 | Application Layer Protocol | MQsTTang kommuniserer med sin C&C-server ved å bruke MQTT-protokollen. |
T1102.002 | Webtjeneste: Toveis kommunikasjon | MQsTTang bruker en legitim offentlig MQTT-megler. | |
T1132.001 | Datakoding: Standardkoding | Innholdet i meldingene mellom skadevare og server er base64-kodet. | |
T1573.001 | Kryptert kanal: symmetrisk kryptografi | Innholdet i meldingene mellom skadevare og server krypteres med en repeterende XOR-nøkkel. | |
exfiltration | T1041 | Eksfiltrering over C2-kanal | Utdataene fra utførte kommandoer sendes tilbake til serveren med samme protokoll. |
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: 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
- Om oss
- tilgjengelig
- oppnådd
- aktivitet
- tillegg
- Alle
- tillater
- alltid
- blant
- analyse
- og
- Anonym
- En annen
- hverandre
- api
- APT
- Arkiv
- argument
- Arsenal
- Artikkel
- asia
- assosiert
- Australia
- tilgjengelig
- Avast
- tilbake
- backdoor
- utestengt
- basert
- fordi
- bli
- før du
- bak
- være
- tro
- bjeller
- under
- Fordeler
- mellom
- megler
- bygget
- Bulgaria
- Kampanje
- Kampanjer
- evner
- saken
- Årsak
- viss
- kjeder
- endring
- Kanal
- egenskaper
- Sjekker
- sjef
- klasse
- klasser
- kunde
- COM
- Kommunikasjon
- kompromittert
- selvtillit
- Tilkobling
- konstant
- inneholde
- inneholder
- innhold
- kopiering
- kunne
- opprettet
- skaper
- Opprette
- Gjeldende
- skikk
- CVS
- syklus
- dato
- Avgjør
- Defenders
- levering
- avhenger
- distribusjon
- beskrive
- beskrevet
- detalj
- oppdaget
- Bestem
- utviklet
- Utvikling
- Enheter
- forskjellig
- diplomati
- direkte
- distribuere
- distribueres
- distribusjon
- ikke
- domene
- Domain Name
- ned
- dubbet
- hver enkelt
- Tidlig
- Utdype
- kryptert
- fullstendig
- enheter
- feil
- etablert
- etablere
- Europa
- europeisk
- Selv
- Hver
- eksempel
- eksempler
- Eksklusiv
- henrette
- Utfører
- gjennomføring
- eksisterende
- Utforske
- Mislyktes
- ganske
- familier
- FAST
- kar
- Noen få
- Figur
- filet
- fingeravtrykk
- Først
- etter
- følger
- utenlandske
- skjema
- format
- funnet
- Fjerde
- Rammeverk
- fra
- funksjon
- videre
- generere
- generert
- Tyskland
- få
- GitHub
- statlig
- graf
- Ground
- Gruppe
- Gruppens
- skje
- HEX
- Gjemme seg
- Høy
- Hits
- vert
- Hosting
- Men
- HTTPS
- in
- Inkludert
- økt
- indikatorer
- informasjon
- Infrastruktur
- Institusjon
- Intelligens
- interessant
- invasjon
- Investere
- IOT
- Iiot enheter
- utstedelse
- IT
- selv
- Januar
- Japan
- JSON
- nøkkel
- nøkler
- Type
- kjent
- stor
- Siste
- siste
- lansere
- lansert
- lag
- Fører
- Bibliotek
- Sannsynlig
- linje
- knyttet
- lenker
- Liste
- loader
- lasting
- ligger
- Se
- Lav
- maskin
- gjøre
- malware
- mange
- kart
- Masquerade
- Match
- max bredde
- medlemmer
- nevnt
- melding
- meldinger
- departement
- overvåking
- mer
- mest
- flere
- navn
- oppkalt
- navn
- Natur
- nettverk
- nettverkstrafikk
- Ny
- bemerkelsesverdig
- Antall
- objekt
- innhentet
- Tilbud
- Offiser
- ONE
- pågående
- åpen
- åpen kildekode
- operert
- drift
- rekkefølge
- organisasjoner
- Annen
- oversikt
- egen
- del
- pass
- banen
- utholdenhet
- vedvarer
- perspektiv
- plato
- Platon Data Intelligence
- PlatonData
- Point
- Synspunkt
- politisk
- tilstedeværelse
- presentere
- forrige
- tidligere
- privat
- sannsynligvis
- prosess
- Prosesser
- programmer
- prosjekter
- protokollen
- gir
- offentlig
- offentlig
- utgir
- QT
- SJELDEN
- motta
- mottatt
- nylig
- nylig
- gjentakende
- rekursiv
- registret
- i slekt
- relevant
- forblir
- fjernkontroll
- gjentatt
- erstattet
- Rapporter
- Repository
- forskning
- forskere
- Ressurser
- REST
- Kjør
- rennende
- samme
- ordningen
- Sekund
- sekunder
- seksjoner
- synes
- Servere
- tjeneste
- sett
- delt
- Shell
- vist
- Viser
- lignende
- Enkelt
- forenklet
- ganske enkelt
- siden
- enkelt
- So
- Soft
- noen
- kilde
- spesifikk
- Snurre rundt
- spre
- Stabler
- Scene
- iscenesettelse
- Standard
- oppstart
- slik
- Støttes
- syntaks
- bord
- taktikk
- Taiwan
- ta
- Target
- målrettet
- rettet mot
- mål
- Oppgave
- oppgaver
- teknikker
- Teknologi
- test
- De
- deres
- seg
- Tredje
- trussel
- Gjennom
- tid
- titler
- til
- tokyo
- verktøy
- verktøy
- Tema
- temaer
- Trace
- trafikk
- typisk
- Ukraina
- Uvanlig
- etter
- unik
- kommende
- lastet opp
- oppetid
- us
- bruke
- Bruker
- Brukere
- vanligvis
- verdi
- Verdier
- av
- Se
- virtuelle
- web
- webserveren
- om
- hvilken
- mens
- HVEM
- bred
- vil
- vinduer
- uten
- ville
- skriving
- zephyrnet