Les chercheurs d'ESET dévoilent MQsTTang, une nouvelle porte dérobée utilisée par Mustang Panda, qui communique via le protocole MQTT
Les chercheurs d'ESET ont analysé MQsTTang, une nouvelle porte dérobée personnalisée que nous attribuons au groupe Mustang Panda APT. Cette porte dérobée fait partie d'une campagne en cours qui remonte au début de janvier 2023. Contrairement à la plupart des logiciels malveillants du groupe, MQsTTang ne semble pas être basé sur des familles existantes ou des projets accessibles au public.
Mustang Panda est connu pour ses variantes Korplug personnalisées (également appelé PlugX) et des chaînes de chargement élaborées. Contrairement aux tactiques habituelles du groupe, MQsTTang n'a qu'une seule étape et n'utilise aucune technique d'obscurcissement.
Victimologie
Nous avons vu des entités inconnues en Bulgarie et en Australie dans notre télémétrie. Nous avons également des informations indiquant que cette campagne vise une institution gouvernementale à Taïwan. Cependant, en raison de la nature des noms de fichiers leurres utilisés, nous pensons que des organisations politiques et gouvernementales en Europe et en Asie sont également ciblées. Cela serait également en ligne avec le ciblage des autres campagnes récentes du groupe. Comme documenté par des collègues chercheurs de Proofpoint, Mustang Panda est connu pour cibler les entités gouvernementales européennes depuis au moins 2020 et a encore accru son activité en Europe depuis l'invasion de l'Ukraine par la Russie. La figure 1 montre notre vision du ciblage pour cette campagne.
attribution
Nous attribuons cette nouvelle porte dérobée et la campagne à Mustang Panda avec une grande confiance sur la base des indicateurs suivants.
Nous avons trouvé des archives contenant des exemples de MQsTTang dans deux dépôts GitHub appartenant à l'utilisateur YanNaingOo0072022. Un autre référentiel GitHub du même utilisateur a été utilisé dans une précédente campagne Mustang Panda décrite par Avast dans un Article de blog de décembre 2022.
L'un des serveurs utilisés dans la campagne actuelle exécutait un serveur FTP anonyme accessible au public qui semble être utilisé pour mettre en scène des outils et des charges utiles. Dans le /pub/dieu répertoire de ce serveur, il existe plusieurs chargeurs, archives et outils Korplug qui ont été utilisés dans les campagnes précédentes de Mustang Panda. Il s'agit du même répertoire que celui utilisé par le stager décrit dans le blog Avast susmentionné. Ce serveur disposait également d'un /pub/gd répertoire, qui était un autre chemin utilisé dans cette campagne.
Une partie de l'infrastructure utilisée dans cette campagne correspond également à l'empreinte réseau des serveurs Mustang Panda précédemment connus.
L'analyse technique
MQsTTang est une porte dérobée barebone qui permet à l'attaquant d'exécuter des commandes arbitraires sur la machine d'une victime et d'obtenir le résultat. Malgré tout, il présente des caractéristiques intéressantes. Le principal d'entre eux est son utilisation de la Protocole MQTT pour la communication C&C. MQTT est généralement utilisé pour la communication entre les appareils IoT et les contrôleurs, et le protocole n'a pas été utilisé dans de nombreuses familles de logiciels malveillants documentés publiquement. Un tel exemple est Chrysaor, également connu sous le nom de Pégase pour Android. Du point de vue d'un attaquant, l'un des avantages de MQTT est qu'il cache le reste de son infrastructure derrière un courtier. Ainsi, la machine compromise ne communique jamais directement avec le serveur C&C. Comme le montre la figure 2, cette capacité est obtenue en utilisant l'open source bibliothèque QMQTT. Cette bibliothèque dépend de la Framework Qt, dont une grande partie est liée de manière statique dans le logiciel malveillant. L'utilisation du framework Qt pour le développement de logiciels malveillants est également assez rare. MagicRAT de Lazare est l'un des rares exemples récemment documentés.
MQsTTang est distribué dans des archives RAR qui ne contiennent qu'un seul exécutable. Ces exécutables ont généralement des noms liés à la diplomatie et aux passeports tels que :
- CVs Officier Amb PASSEPORT Ministry Of Foreign Affairs.exe
- Documents membres de la délégation diplomatique d'Allemagne.Exe
- PDF_Passeport et CV des membres diplomatiques de Tokyo du JAPON.eXE
- Note No.18-NG-23 de Embassy of Japan.exe
Ces archives sont hébergées sur un serveur web sans nom de domaine associé. Ce fait, ainsi que les noms de fichiers, nous amène à croire que le malware se propage via le spearphishing.
Jusqu'à présent, nous n'avons observé que quelques échantillons. Outre les variations de certaines constantes et chaînes codées en dur, les échantillons sont remarquablement similaires. Le seul changement notable est l'ajout de certaines techniques d'anti-analyse dans les dernières versions. La première consiste à utiliser les CreateToolhelp32Snapshot Fonction API Windows pour parcourir les processus en cours d'exécution et rechercher les débogueurs et outils de surveillance connus suivants.
- 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
Notez que, bien que le logiciel malveillant soit un exécutable 32 bits, il vérifie uniquement la présence de x64dbg et non son homologue 32 bits, x32dbg.
La deuxième technique utilise la RechercherFenêtreW API Windows pour rechercher les classes et titres de fenêtre suivants utilisés par les outils d'analyse connus :
- PROCMON_WINDOW_CLASS
- OLLYDBBG
- WinDbgFrameClass
- OllyDbg – [CPU]
- Débogueur d'immunité - [CPU]
Lorsqu'il est exécuté directement, le logiciel malveillant lance une copie de lui-même avec 1 comme argument de ligne de commande. Ceci est répété par le nouveau processus, l'argument étant incrémenté de 1 à chaque exécution. Lorsque cet argument atteint des valeurs spécifiques, certaines tâches seront exécutées. Notez que les valeurs exactes varient entre les échantillons ; ceux mentionnés ci-dessous correspondent à l'échantillon avec SHA-1 02D95E0C369B08248BFFAAC8607BBA119D83B95B. Cependant, les tâches elles-mêmes et l'ordre dans lequel elles sont exécutées sont constants.
La figure 3 montre un aperçu de ce comportement ainsi que les tâches qui sont exécutées lors de la première exécution du logiciel malveillant.
Le tableau 1 contient une liste des tâches et la valeur à laquelle chacune d'elles est exécutée. Nous les décrirons plus en détail dans les prochains paragraphes.
Tableau 1. Tâches exécutées par la porte dérobée
Numéro de tâche | Valeur des arguments | Description de la tâche |
---|---|---|
1 | 5 | Démarrez la communication C&C. |
2 | 9 | Créer une copie et lancer. |
3 | 32 | Créer une copie de persistance. |
4 | 119 | Établir la persévérance. |
5 | 148 | Arrête l'exécution récursive. |
Si un outil d'analyse ou un débogueur est détecté à l'aide des techniques que nous avons décrites précédemment, le comportement de la tâche 1 est modifié et les tâches 2, 3 et 4 sont entièrement ignorées.
Tâche 1 : Communication C&C
Comme mentionné précédemment, MQsTTang communique avec son serveur C&C via le protocole MQTT. Tous les échantillons observés utilisent 3.228.54.173 comme courtier. Ce serveur est un courtier public exploité par EMQX, qui se trouve également être le mainteneur de la bibliothèque QMQTT. Cela pourrait être un moyen de donner l'impression que le trafic réseau est légitime et de cacher la propre infrastructure de Mustang Panda. L'utilisation de ce courtier public offre également de la résilience ; il est peu probable que le service soit supprimé en raison de ses nombreux utilisateurs légitimes et, même si les serveurs C&C actuels sont interdits ou supprimés, Mustang Panda pourrait en créer de nouveaux et utiliser les mêmes sujets MQTT sans perturber le fonctionnement de MQsTTang.
Cependant, cette campagne pourrait également être un cas test par Mustang Panda avant de décider d'investir du temps et des ressources pour créer son propre courtier. Ceci est soutenu par le faible nombre d'échantillons que nous avons observés et la nature très simple de MQsTTang.
Comme le montre la figure 4, le logiciel malveillant et le serveur C&C utilisent deux rubriques MQTT pour leur communication. Le premier, iot/serveur2, est utilisé pour la communication du client vers le serveur. Le second est utilisé pour la communication du serveur vers le client. Il suit le format iot/v2/ De est généré en prenant les 8 derniers octets, sous forme hexadécimale, d'un UUID. Si un outil d'analyse est détecté, server2 et les v2 sont respectivement remplacés par server0 et les v0. C'est probablement pour éviter d'avertir les défenseurs en annulant complètement l'exécution du malware plus tôt.
Toutes les communications entre le serveur et le client utilisent le même schéma de codage. La charge utile du message MQTT est un objet JSON avec un seul attribut nommé msg. Pour générer la valeur de cet attribut, le contenu réel est d'abord encodé en base64, puis XOR avec la chaîne codée en dur nasa, et encodés en base64 à nouveau. Nous décrirons le format exact de ces charges utiles dans les sections pertinentes.
Lors de la première connexion au courtier, le logiciel malveillant s'abonne à son sujet unique. Ensuite, et toutes les 30 secondes par la suite, le client publie un message KeepAlive dans le sujet du serveur. Le contenu de ce message est un objet JSON au format suivant :
{ “Alive”: “<malware’s uptime in minutes>”, “c_topic”: “<client’s unique topic>” } |
Lorsque le serveur veut émettre une commande, il publie un message dans le sujet unique du client. Le contenu en clair de ce message est simplement la commande à exécuter. Comme le montre la figure 5, le client exécute la commande reçue en utilisant QProcess :: startCommand du framework Qt. La sortie, obtenue à l'aide de QProcess ::readAllStandardOutput, est ensuite renvoyé dans un objet JSON au format suivant :
{ “c_topic”: “<client’s unique topic>”, “ret”: “<Command output>” } |
Étant donné que seul le contenu de la sortie standard est renvoyé, le serveur ne recevra pas d'erreurs ni d'avertissements. Du point de vue du serveur, une commande qui a échoué est donc indiscernable d'une commande qui ne produit simplement aucune sortie à moins qu'une sorte de redirection ne soit effectuée.
Tâches 2 et 3 : copier le logiciel malveillant
Les deuxième et troisième tâches sont assez similaires les unes aux autres. Ils copient l'exécutable du logiciel malveillant dans un chemin codé en dur ; c:userspublicvdump.exe et les c:userspublicvcall.exe respectivement. Les noms de fichiers utilisés sont différents pour chaque échantillon, mais ils sont toujours situés dans le C:utilisateurspublic répertoire.
Dans la deuxième tâche, la copie nouvellement créée est ensuite lancée avec l'argument de ligne de commande 97.
Tâche 4 : Établir la persévérance
La persistance est établie par la quatrième tâche, qui crée une nouvelle valeur qvlc ajuster à c:userspublicvcall.exe sous le HKCULogicielMicrosoftWindowsVersion actuelleExécuter clé d'enregistrement. Cela entraînera l'exécution du logiciel malveillant au démarrage.
Lorsque MQsTTang est exécuté au démarrage en tant que c:userspublicvcall.exe, seule la tâche de communication C&C est exécutée.
Conclusion
La campagne Mustang Panda décrite dans cet article est en cours au moment de la rédaction de cet article. La victimologie n'est pas claire, mais les noms de fichiers leurres sont conformes aux autres campagnes du groupe qui ciblent des entités politiques européennes.
Cette nouvelle porte dérobée MQsTTang fournit une sorte de shell distant sans les cloches et les sifflets associés aux autres familles de logiciels malveillants du groupe. Cependant, cela montre que Mustang Panda explore de nouvelles piles technologiques pour ses outils. Il reste à voir si cette porte dérobée deviendra un élément récurrent de l'arsenal du groupe, mais c'est un exemple de plus du cycle de développement et de déploiement rapide du groupe.
IoCs
Fichiers
SHA-1 | Nom de fichier | Détection | Description |
---|---|---|---|
A1C660D31518C8AFAA6973714DE30F3D576B68FC | CV Amb.rar | Win32/Agent.AFBI | Archive RAR utilisée pour distribuer la porte dérobée MQsTTang. |
430C2EF474C7710345B410F49DF853BDEAFBDD78 | CVs Officier Amb PASSEPORT Ministry Of Foreign Affairs.exe | Win32/Agent.AFBI | Porte dérobée MQsTTang. |
F1A8BF83A410B99EF0E7FDF7BA02B543B9F0E66C | Documents.rar | Win32/Agent.AFBI | Archive RAR utilisée pour distribuer la porte dérobée MQsTTang. |
02D95E0C369B08248BFFAAC8607BBA119D83B95B | PDF_Passeport et CV des membres diplomatiques de Tokyo du JAPON.eXE | Win32/Agent.AFBI | Porte dérobée MQsTTang. |
0EA5D10399524C189A197A847B8108AA8070F1B1 | Documents membres de la délégation diplomatique d'Allemagne.Exe | Win32/Agent.AFBI | Porte dérobée MQsTTang. |
982CCAF1CB84F6E44E9296C7A1DDE2CE6A09D7BB | Documents.rar | Win32/Agent.AFBI | Archive RAR utilisée pour distribuer la porte dérobée MQsTTang. |
740C8492DDA786E2231A46BFC422A2720DB0279A | 23 de Ambassade du Japon.exe | Win32/Agent.AFBI | Porte dérobée MQsTTang. |
AB01E099872A094DC779890171A11764DE8B4360 | BoomerangLib.dll | Win32/Korplug.TH | Chargeur connu Mustang Panda Korplug. |
61A2D34625706F17221C1110D36A435438BC0665 | breakpad.dll | Win32/Korplug.UB | Chargeur connu Mustang Panda Korplug. |
30277F3284BCEEF0ADC5E9D45B66897FA8828BFD | coreclr.dll | Win32/Agent.ADMW | Chargeur connu Mustang Panda Korplug. |
BEE0B741142A9C392E05E0443AAE1FA41EF512D6 | HPCustPartUI.dll | Win32/Korplug.UB | Chargeur connu Mustang Panda Korplug. |
F6F3343F64536BF98DE7E287A7419352BF94EB93 | HPCustPartUI.dll | Win32/Korplug.UB | Chargeur connu Mustang Panda Korplug. |
F848C4F3B9D7F3FE1DB3847370F8EEFAA9BF60F1 | libcef.dll | Win32/Korplug.TX | Chargeur connu Mustang Panda Korplug. |
Réseau
IP | Domaine | Fournisseur d'hébergement | Vu la première fois | Détails |
---|---|---|---|---|
3.228.54.173 | courtier.emqx.io | Amazon.com, Inc. | 2020-03-26 | Courtier MQTT public légitime. |
80.85.156[.]151 | N/D | Tcheliabinsk-Signal LLC | 2023-01-05 | Serveur de livraison MQsTTang. |
80.85.157[.]3 | N/D | Tcheliabinsk-Signal LLC | 2023-01-16 | Serveur de livraison MQsTTang. |
185.144.31[.]86 | N/D | Rôle Abus-C | 2023-01-22 | Serveur de livraison MQsTTang. |
Dépôts Github
- https://raw.githubusercontent[.]com/YanNaingOo0072022/14/main/Documents.rar
- https://raw.githubusercontent[.]com/YanNaingOo0072022/ee/main/CVs Amb.rar
Techniques d'ATT&CK D'ONGLET
Ce tableau a été construit avec Version 12 du cadre MITRE ATT&CK.
Tactique | ID | Nom | Description |
---|---|---|---|
Développement des ressources | T1583.003 | Acquérir une infrastructure : serveur privé virtuel | Certains serveurs utilisés dans la campagne sont sur un hébergement mutualisé. |
T1583.004 | Acquérir une infrastructure : serveur | Certains serveurs utilisés dans la campagne semblent être exclusifs à Mustang Panda. | |
T1587.001 | Développer des capacités : logiciels malveillants | MQsTTang est une porte dérobée personnalisée, probablement développée par Mustang Panda. | |
T1588.002 | Obtenir des capacités : outil | Plusieurs outils légitimes et open source, y compris psexec, ps, boucleet une plink, ont été trouvés sur le serveur intermédiaire. | |
T1608.001 | Fonctionnalités d'étape : télécharger des logiciels malveillants | MQsTTang a été téléchargé sur le serveur Web pour distribution. | |
T1608.002 | Fonctionnalités de scène : outil de téléchargement | Plusieurs outils ont été téléchargés sur un serveur FTP. | |
Accès initial | T1566.002 | Hameçonnage : lien de harponnage | MQsTTang est distribué via des liens de harponnage vers un fichier malveillant sur un serveur Web contrôlé par un attaquant. |
Internationaux | T1106 | API native | MQsTTang utilise le QProcessus classe du framework Qt pour exécuter des commandes. |
T1204.002 | Exécution utilisateur : fichier malveillant | MQsTTang compte sur l'utilisateur pour exécuter le fichier malveillant téléchargé. | |
Persistence | T1547.001 | Exécution de démarrage automatique au démarrage ou à l'ouverture de session : clés d'exécution du registre/dossier de démarrage | MQsTTang persiste en créant une clé de registre Run. |
Évasion défensive | T1036.004 | Mascarade : Tâche ou service de mascarade | Dans la plupart des exemples, la clé de registre est créée avec le nom qvlc. Cela correspond au nom d'un exécutable légitime utilisé par VLC. |
T1036.005 | Masquage : correspond à un nom ou à un emplacement légitime | Lors de la création de copies, MQsTTang utilise les noms de fichiers de programmes légitimes. | |
T1480 | Garde-corps d'exécution | MQsTTang vérifie les chemins à partir desquels il est exécuté pour déterminer les tâches à exécuter. | |
T1622 | Évasion du débogueur | MQsTTang détecte les débogueurs en cours d'exécution et modifie son comportement s'il en trouve. | |
Commander et contrôler | T1071 | Protocole de la couche application | MQsTTang communique avec son serveur C&C en utilisant le protocole MQTT. |
T1102.002 | Service Web : communication bidirectionnelle | MQsTTang utilise un courtier MQTT public légitime. | |
T1132.001 | Codage des données : Codage standard | Le contenu des messages entre le malware et le serveur est encodé en base64. | |
T1573.001 | Canal crypté : cryptographie symétrique | Le contenu des messages entre le logiciel malveillant et le serveur est crypté à l'aide d'une clé XOR répétitive. | |
exfiltration | T1041 | Exfiltration sur le canal C2 | La sortie des commandes exécutées est renvoyée au serveur en utilisant le même protocole. |
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: 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
- A Propos
- accessible
- atteint
- activité
- ajout
- Tous
- permet
- toujours
- parmi
- selon une analyse de l’Université de Princeton
- et les
- Témoignages
- Une autre
- A PART
- api
- APT
- Archive
- argument
- Arsenal
- article
- Asie
- associé
- Australie
- disponibles
- Avast
- RETOUR
- détourné
- interdit
- basé
- car
- devenez
- before
- derrière
- va
- CROYONS
- cloches
- ci-dessous
- avantages.
- jusqu'à XNUMX fois
- courtier
- construit
- Bulgarie
- Campagne
- Campagnes
- capacités
- maisons
- Causes
- certaines
- Chaînes
- Change
- Développement
- caractéristiques
- Contrôles
- chef
- classe
- les classes
- client
- COM
- Communication
- Compromise
- confiance
- Connecter les
- constant
- contiennent
- contient
- contenu
- copier
- pourriez
- créée
- crée des
- La création
- Courant
- Customiser
- CVS
- cycle
- données
- Décider
- défenseurs
- page de livraison.
- dépend
- déploiement
- décrire
- décrit
- détail
- détecté
- Déterminer
- développé
- Développement
- Compatibles
- différent
- Diplomatie
- directement
- distribuer
- distribué
- distribution
- Ne fait pas
- domaine
- Services
- down
- doublé
- chacun
- "Early Bird"
- Élaborer
- crypté
- entièrement
- entités
- Erreurs
- établies
- établissement
- Europe
- du
- Pourtant, la
- Chaque
- exemple
- exemples
- Exclusive
- exécuter
- Exécute
- exécution
- existant
- Explorer
- Échoué
- équitablement
- familles
- RAPIDE
- compagnon
- few
- Figure
- Déposez votre dernière attestation
- empreinte digitale
- Prénom
- Abonnement
- suit
- étranger
- formulaire
- le format
- trouvé
- Quatrièmement
- Framework
- De
- fonction
- plus
- générer
- généré
- Allemagne
- obtenez
- GitHub
- gouvernemental
- graphique
- Sol
- Réservation de groupe
- Groupes
- arriver
- HEX
- Cacher
- Haute
- Hits
- organisé
- hébergement
- Cependant
- HTTPS
- in
- Y compris
- increased
- Indicateurs
- d'information
- Infrastructure
- Institution
- Intelligence
- intéressant
- invasion
- Investir
- IOT
- iot devices
- aide
- IT
- lui-même
- Janvier
- Japon
- json
- ACTIVITES
- clés
- Genre
- connu
- gros
- Nom
- Nouveautés
- lancer
- lancé
- couche
- Conduit
- Bibliothèque
- Probable
- Gamme
- lié
- Gauche
- Liste
- chargeur
- chargement
- situé
- Style
- Faible
- click
- a prendre une
- malware
- de nombreuses
- Localisation
- mascarade
- Match
- largeur maximale
- Membres
- mentionné
- message
- messages
- ministère
- Stack monitoring
- PLUS
- (en fait, presque toutes)
- plusieurs
- prénom
- Nommé
- noms
- Nature
- réseau et
- trafic réseau
- Nouveauté
- notable
- nombre
- objet
- obtenu
- Offres Speciales
- Financier
- ONE
- en cours
- ouvert
- open source
- réalisés
- opération
- de commander
- organisations
- Autre
- vue d'ensemble
- propre
- partie
- passeport
- chemin
- persistance
- persiste
- objectifs
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- Point de vue
- politique
- présence
- représentent
- précédent
- précédemment
- Privé
- Probablement
- processus
- les process
- Programmes
- projets
- protocole
- fournit
- public
- publiquement
- Publie
- QT
- RARE
- recevoir
- reçu
- récent
- récemment
- récurrent
- Récursif
- enregistrement
- en relation
- pertinent
- reste
- éloigné
- répété
- remplacé
- Rapports
- dépôt
- un article
- chercheurs
- Resources
- REST
- Courir
- pour le running
- même
- programme
- Deuxièmement
- secondes
- les sections
- semble
- Serveurs
- service
- set
- commun
- coquillage
- montré
- Spectacles
- similaires
- étapes
- simplifié
- simplement
- depuis
- unique
- So
- Soft
- quelques
- Identifier
- groupe de neurones
- Spin
- propagation
- Combos
- Étape
- mise en scène
- Standard
- Commencez
- tel
- Appareils
- syntaxe
- table
- tactique
- Taïwan
- prise
- Target
- des campagnes marketing ciblées,
- ciblage
- objectifs
- Tâche
- tâches
- techniques
- Technologie
- tester
- Le
- leur
- se
- Troisièmement
- menace
- Avec
- fiable
- titres
- à
- tokyo
- outil
- les outils
- sujet
- Les sujets
- Tracer
- circulation
- typiquement
- Ukraine
- Rare
- sous
- expérience unique et authentique
- prochain
- téléchargé
- Stabilité
- us
- utilisé
- Utilisateur
- utilisateurs
- d'habitude
- Plus-value
- Valeurs
- via
- Voir
- Salle de conférence virtuelle
- web
- le serveur web
- que
- qui
- tout en
- WHO
- large
- sera
- fenêtres
- sans
- pourra
- écriture
- zéphyrnet