Ce billet de blog sur LuckyMouse est un extrait du rapport « FLINT 2022-045 – LuckyMouse utilise une application Electron dérobée pour cibler MacOS » (SEKOIA.IO Flash Intelligence) envoyé à nos clients le 10 août , 2022.
Remarque : TrendMicro a publié sur la même campagne sous le titre : «Iron Tiger Compromises Chat Application Mimi, Targets Windows, Mac, and Linux Users».
Table of contents
Résumé
Lors d’un examen de l’infrastructure Command and Control (C2) HyberBro liée à l’ensemble d’intrusion China-nexus LuckyMouse, SEKOIA a repéré une connexion inhabituelle avec une application. Une enquête plus approfondie a conduit à identifier cette application comme « MìMì » (秘秘 – « secret », alias Mi). Mimi est une application Electron en chinois développée par Xiamen Baiquan Information Technology Co. Ltd. SEKOIA a établi que la version MacOS de « MìMì » Messenger est protégée par un cheval de Troie depuis le 26 mai 2022 pour télécharger et exécuter un binaire Mach-O appelé « rshell ».
A ce stade, SEKOIA n’est pas en mesure d’apprécier l’objectif de cette campagne. Comme l’utilisation de cette application en Chine semble faible, il est plausible qu’elle ait été développée comme un outil de surveillance ciblé. Il est également probable que, suite à l’ingénierie sociale menée par les opérateurs, des utilisateurs ciblés soient incités à télécharger cette application, prétendument pour contourner la censure des autorités chinoises.
Ce n’est pas la première fois qu’une application de messagerie faisant tomber un implant se connectant à l’infrastructure LuckyMouse est observée. En 2020, les analystes d’ESET avaient découvert des versions compromises d’Able Desktop, une application de messagerie largement utilisée en Mongolie dans le cadre de l’opération « StealthyTrident ». Dans cette campagne, Able Desktop a été utilisé pour déposer plusieurs implants, dont PlugX, Tmanger et HyperBro, connus pour faire partie de l’ensemble d’outils LuckyMouse.
Cependant, c’est la première fois que SEKOIA observe LuckyMouse ciblant MacOS. De plus, si cette application est exclusivement utilisée par des citoyens chinois, ce serait la première fois que nous identifions LuckyMouse impliqué dans la surveillance domestique. Ce FLINT présente nos conclusions sur cette campagne, y compris une description de l’implant Rshell et des IOC associés.
Porte dérobée « MìMì » Messenger
L’application « Mi » est une application de messagerie Electron disponible pour les plateformes Android, iOS, Windows et MacOS. Comme Mi n’est pas largement promu et que son site Web associé (www.mmimchat[.]com) n’affiche pas de description détaillée, de conditions générales d’utilisation ou de liens vers les réseaux sociaux, SEKOIA a rapidement remis en question sa légitimité.
Figure 1. Site Web de Mimi à l’adresse www.mmimchat[.]com
De plus, les fichiers hébergés sur le site Web ont été modifiés pour la dernière fois le 26 juillet. Sur la base des journaux de modifications de l’Apple Store et du DNS passif, nous avons estimé que les premières traces de cette application remontent à juin. 2020. Cependant, SEKOIA n’a pas été en mesure d’évaluer si cette application est légitime, ou si elle a été conçue ou réutilisée comme un outil de surveillance. De plus, sur la base de nos enquêtes open source, il n’est pas possible d’évaluer si Xiamen Baiquan Information Technology Co. Ltd. est une société légitime ou une société fictive.
La version MacOS de l’application « Mi » est une ElectronApp emballée dans un fichier Apple Disk Image. Cette application semble être fonctionnelle, où les utilisateurs finaux n’ont qu’à s’inscrire pour pouvoir discuter avec leurs contacts. Cependant, dans la version 2.3.0, publiée le 26 mai 2022, le fichier ./mimi.app/Contents/Resources/app/electron-main.js était trojanisé. Comme indiqué ci-dessous, cela a été implémenté en plaçant un code JavaScript Dean Edwards Packed au début de la fonction module.exports.
Figure 2. Fichier electron-main.js avec porte dérobée.
Ce code, exécuté au moment de l’exécution, vérifie si l’environnement est MacOS (darwin) puis télécharge l’implant « rshell » à partir de 139.180.216.65, une adresse IP déjà associée à LuckyMouse HyperBro C2. La charge utile récupérée est écrite dans le dossier temporaire, chmodée avec l’autorisation d’exécution, puis exécutée comme indiqué dans le code désobscurci :
Figure 3. Code responsable du téléchargement et de l’exécution de RShell.
Alors que les analystes de SEKOIA ont vérifié les versions Windows, iOS et Android de l’application, aucune porte dérobée n’a été trouvée dans les versions actuelles. Cependant, TrendMicro a trouvé d’anciennes versions de Linux et de Windows dérobées. Lisez leur analyse ici.
Implant RShell Mach-O
L’implant téléchargé, nommé RShell par ses développeurs, est écrit en C++ et embarque les librairies Boost.Asio et nlohmann/json. Cette porte dérobée utilise BJSON (Binary JSON) sur des sockets TCP pour communiquer avec son serveur de commande et de contrôle, sans aucun cryptage et n’affiche pas de mécanisme de persistance.
Lors de l’exécution, la porte dérobée RShell tente de se connecter au serveur C2. Ce « message Hello » au serveur C2 contient :
- un GUID aléatoire, ajouté à chaque réponse au serveur C2
- le nom d’hôte
- les adresses IPv4
- le type de connexion (« login » par exemple)
- le nom d’utilisateur actuel
- la version du noyau.
Figure 4. Paquet Hello de l’implant.
La porte dérobée RShell accepte deux « types » de commandes : « cmd » et « file ».
Le groupe « cmd » contient trois commandes :
- init() : démarre un bash
- data(data) : écrit des données dans le bash
- close() : termine le bash.
Le second type de commandes, « file », permet d’interagir avec le système de fichiers :
- dir(path) : renvoie une liste de fichiers et de sous-répertoires pour le chemin spécifié
- init() : renvoie une liste de fichiers et de sous-répertoires pour le système de fichiers racine (équivalent à dir(“/”))
- down(path) : ouvre un fichier en mode binaire et lecture seule et renvoie la taille du fichier
- read(path) : lit le fichier spécifié. Le fichier doit d’abord avoir été ouvert avec la commande down
- upload(path) : ouvre un fichier en mode binaire et en écriture seule
- write(data, path) : écrit des données dans le fichier spécifié. Comme pour la commande read, le fichier doit d’abord avoir été ouvert avec la commande upload avant
- del(path) : supprime le fichier ou le répertoire spécifié
- close(path) : ferme le fichier
Les figures suivantes présentent un exemple de requête et de réponse pour le répertoire commande.
Figure 5. Exemple de requête dir
Figure 6. Exemple de réponse dir
Un message keepalive est envoyé au serveur C2 toutes les 40 secondes. Le serveur doit faire écho à ce message. Partant de ce constat, nous avons créé une règle Suricata pour repérer cette menace dans vos flux réseau (voir annexe).
Liens avec LuckyMouse
Des liens d’infrastructure ont été établis entre China-nexus Intrusion Set LuckyMouse et cette opération.
Il convient de noter qu’au cours de notre enquête, le même serveur HTTP a également servi un HyperBro qui a été configuré pour communiquer via HTTPs vers 139.180.216[.]65. La DLL malveillante de cet échantillon HyperBro a été signée par un certificat connu pour être volé puis utilisé par LuckyMouse. Les fichiers lançant cet exemple étaient accessibles aux URL suivantes :
- http://139.180.216.65/dlpumgr32.exe
- hxxp://139.180.216.65/dlpprem32.dll
- hxxp://139.180.216.65/dlpprem32.bin
Deuxièmement, LuckyMouse et Les opérateurs RShell utilisent la même plage IP, à savoir 103.79.76.0/22.
Alors que cette plage d’IP était récemment utilisée par LuckyMouse, notamment pour héberger trois serveurs HyperBro C2 (103.79.77[.]200, 103.79.76[.]232, 103.79.78[.]48), deux RShell C2 ont également été identifiés chez 103.79.76[.]88 et 103.79.77[.]178.
Enfin, comme documenté par ESET, les applications de messagerie compromises ont déjà été exploitées par LuckyMouse dans des activités passées et cela Intrusion Set a été observé en utilisant le packer Dean Edwards Javascript dans les précédentes campagnes de point d’eau.
Conclusion
Sur la base de nos enquêtes, SEKOIA associe cette activité à LuckyMouse avec une grande confiance. Il est plausible que cette activité indique une extension du mandat de LuckyMouse, incluant désormais la surveillance. Cependant, comme cet ensemble d’intrusion a été principalement observé en train de mener des activités d’espionnage en continu, notamment contre les secteurs de la technologie et du gouvernement, SEKOIA évalue que cette hypothèse est peu probable.
Au moment de la rédaction, SEKOIA s’abstient de faire une quelconque appréciation sur la motivation du Set d’Intrusion et continuera à suivre de près ses activités. Quels que soient les objectifs de LuckyMouse, il est particulièrement intéressant d’observer le ciblage de l’environnement MacOS. SEKOIA évalue que cet ensemble d’intrusion continuera à mettre à jour et à améliorer ses capacités à court terme.
IOCs & données techniques
Related infrastructure
infrastructure
103.79.76[.]88 103.79.77[.]178 139.180.216[.]65
RShell hashes
8c3be245cbbe9206a5d146017c14b8f965ab7045268033d70811d5bcc4b796ec rshell 3a9e72b3810b320fa6826a1273732fee7a8e2b2e5c0fd95b8c36bbab970e830a rshell
Compromised DMG images
f6e0e5c9b9d43e008805644d937770b399f859cbba475ad837805d9adec13a2c 2.3.0.dmg 4742c1987fdd968d7f094dc5a3ea3e9b5340b47e5a61846ac6ac7ae03fc7288f 2.3.1.dmg 64e771c894616100202e83f3574f8accc8453138af6709367c99157e33bb613a 2.3.2.dmg 466981b6aa38ae35a2c0e21a2066b4e803cc0bf76409eeb605892604c20ccf3a 2.3.3.dmg
HyperBro implant
Warning: dlpumgr32.exe is a legit file
ef2f20d1016cd39ff44f1399c8aa5c1ff5bfd4850d611ba375fbeff7f7e3eaf6 dlpprem32.bin 22c3c2bf77a94ed5f207c00e240f558d6411308d237779ffb12e04bbe2c90356 dlpprem32.dll 07758c93ba33843a9c5603f900f2ad0231c64ec77f6bba6de83ed6e2902022e4 dlpumgr32.exe
YARA rules
rule apt_LuckyMouse_RShell_strings { meta: id = "89f18013-ea3e-440f-821e-cef102a43b7b" version = "1.0" malware = "RShell" intrusion_set = "LuckyMouse" description = "Detects LuckyMouse RShell Mach-O implant" source = "SEKOIA" creation_date = "2022-08-05" classification = "TLP:WHITE" strings: $ = { 64 69 72 00 70 61 74 68 00 64 6F 77 6E 00 72 65 61 64 00 75 70 6C 6F 61 64 00 77 72 69 74 65 00 64 65 6C } $ = { 6C 6F 67 69 6E 00 68 6F 73 74 6E 61 6D 65 00 6C 61 6E 00 75 73 65 72 6E 61 6D 65 00 76 65 72 73 69 6F 6E } condition: uint32be(0) == 0xCFFAEDFE and filesize < 300KB and all of them } rule apt_LuckyMouse_Compromised_ElectronApp { meta: id = "7702217d-771f-47af-8eaa-d5acf1e14f4d" version = "1.0" intrusion_set = "LuckyMouse" description = "Detects compromised ElectronApp" source = "SEKOIA" creation_date = "2022-08-05" classification = "TLP:WHITE" strings: $s = "module.exports=function(t){eval(function(p,a,c,k,e,r)" condition: $s at 0 and filesize < 100KB }
Suricata rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (flow: from_client, established;content:"|19 00 00 00 02 74 79 70 65 00 0a 00 00 00 6b 65 65 70 61 6c 69 76 65 00 00|";dsize:25;msg:"Detects a LuckyMouse RShell beaconing packet";sid:XXXXXXXXX; rev:001; threshold: type limit, track by_src, seconds 500, count 1;)
Vous pouvez découvrir la manière dont SEKOIA.IO peut vous aider à traquer les menaces informatiques.
Échangez avec l’équipe
Vous souhaitez en savoir plus sur nos solutions de protection ? Vous voulez découvrir nos produits de XDR et de CTI ? Vous avez un projet de cybersécurité dans votre organisation ? Prenez rendez-vous et rencontrons-nous !
Lire aussi :