Mikroceen: Espionnage de réseaux de haut niveau en Asie centrale

Des chercheurs d'ESET dissèquent une backdoor déployée lors d'attaques contre de multiples agences gouvernementales et de grandes organisations opérant dans deux secteurs d'infrastructures critiques en Asie.

Des chercheurs d’ESET dissèquent une backdoor déployée lors d’attaques contre de multiples agences gouvernementales et de grandes organisations opérant dans deux secteurs d’infrastructures critiques en Asie.

Dans ce billet commun avec nos collègues chercheurs d’Avast, nous fournissons une analyse technique d’un RAT (remote access trojan) en constante évolution, qui a été utilisée dans diverses campagnes ciblées contre des sujets publics et privés depuis fin 2017. Nous avons observé de multiples cas d’attaques impliquant cette RAT, et toutes se sont produites en Asie centrale. Parmi les sujets ciblés figuraient plusieurs entreprises importantes dans les secteurs des télécommunications et du gaz, ainsi que des entités gouvernementales.

De plus, nous faisons le lien entre la dernière campagne et trois rapports publiés précédemment : Kaspersky a publié sa recherche sur l’usage de Microcin contre le personnel militaire russe, Palo Alto Networks, sur BYEBY contre le gouvernement bélarussien et Checkpoint, sur Vicious Panda contre le secteur public mongol. Nous abordons également d’autres logiciels malveillants qui faisaient généralement partie de la panoplie de l’attaquant avec le RAT. Nous avons choisi le nom de Mikroceen pour couvrir tous les cas du RAT, en reconnaissance du rapport initial de Kaspersky sur la famille. La faute d’orthographe est intentionnelle, afin d’éviter la notion microbiologique établie, mais aussi pour avoir au moins un accord phonémique.

Rapprochements

Discutons d’abord de Mikroceen, qui est un simple RAT, et expliquons ce qui nous mène à croire que les rapports de Kaspersky, Palo Alto Networks et Checkpoint écrivent sur la même famille spécifique de logiciels malveillants (parmi les autres outils malveillants mentionnés). La figure 1 présente une comparaison de la boucle de déchiffrement utilisée pour les données de configuration comprenant le domaine C&C, un nom et un mot de passe associés à chaque échantillon du RAT. La boucle est pratiquement la même et elle est implémentée en trois exemplaires consécutifs. Checkpoint a également examiné les similitudes des en-têtes HTTP dans les sections de données entre BYEBY et Vicious Panda, ainsi qu’un message de journalisation partagé V09SS0lO que base64 décode en WORKIN. La chaîne codée est également présente dans Microcin.

Figure 1. Partie du code utilisé pour déchiffrer les données internes; le nom de la DLL exportée se trouve en bas

Dans la section L’Arsenal des attaquants ci-dessous, nous comparons également les grammaires de commande des fonctionnalités du RAT et les messages d’erreur typiques qui sont enregistrés pendant l’exécution avec ses instances précédentes. Pour étayer les preuves, le fournisseur préféré de l’infrastructure des attaquants et les logiciels malveillants les plus typiques trouvés simultanément sur les réseaux compromis. Tous ces indices devraient permettre d’affirmer avec certitude qu’il s’agit de la même famille de logiciels malveillants.

Chronologie et victimologie

La figure 2 illustre l’évolution de la menace dans le temps. Comme nous l’avons mentionné précédemment, la région de l’Asie centrale a rejoint la Russie, le Belarus et la Mongolie en tant que zones victimes des intrusions de Mikroceen. Ces victimes n’étaient pas des utilisateurs de bureau, mais des terminaux de réseaux d’entreprise où l’on s’attend à un niveau de sécurité plus élevé.

Figure 2. Chronologie des événements associés à Mikroceen

Figure 3. Les récentes campagnes en Asie centrale entourées de celles précédemment rapportées

L’arsenal des attaquants

Décrivons les outils que les attaquants ont utilisés dans leur campagne en Asie centrale. Malheureusement, nous n’avons pas pu découvrir comment ils sont entrés dans les réseaux compromis.

RAT (porte dérobée du côté client)

Une fois que les intrus ont pris pied sur une machine victime, le code de la figure 4 sert à installer le RAT sur le système. Notez le paramètre start= auto, qui établit la persistance du logiciel malveillant après un redémarrage.

Figure 4. Code du lot d’installation

Comme nous l’avons déjà mentionné, chaque bot est livré avec des données de configuration soit le serveur C&C, nom du client et mot de passe du client. Le nom du bot apparaît dans l’interface côté serveur. Ce qui est assez inhabituel, c’est qu’un opérateur doit s’authentifier en entrant le mot de passe du client afin de contrôler ce dernier. Nous ne pouvons que spéculer sur l’objectif, mais il pourrait servir de protection contre la prise de contrôle du botnet, au cas où un acteur concurrent ou les forces de l’ordre saisiraient leur infrastructure. Nous constatons donc que certains efforts ont été faits pour la sécurité de la connexion client-serveur. En outre, le client peut se connecter directement au serveur C&C ou acheminer le trafic via un proxy, ce qui pourrait être utile – notamment dans les réseaux d’entreprise. La connexion est en outre sécurisée par un certificat et c’est une caractéristique qui distingue Mikroceen de la légion de portes dérobées que nous avons connue jusqu’à présent.

Mikroceen utilise les mêmes fonctionnalités de base que celles déjà décrites par Palo Alto Networks à propos de BYEBY. La grammaire des commandes est assez spécifique, car chaque commande est tronquée à 6 lettres puis encodée en base64. Il en résulte un mot incompréhensible de 8 lettres dans le code. Alors que dans les cas précédents, le codage était simple, dans la campagne en Asie centrale, une couche de codage inconnue supplémentaire a été ajoutée. Dans ce cas, la connexion des mots de 8 lettres avec les commandes a été faite par accord au niveau du code.

CommandMicrocin, BYEBY, Vicious PandaMikroceen
hello!aGVsbG8hAmbZDkEx
GOODBYR09PREJZeYTS5IwW
BYE BYQllFIEJZbo7aO8Nb
DISCONRElTQ09O6GEI6owo
LIST DTElTVCBEKi0Swb7I
STARTCU1RBUlRD h71RBG8X
COMMANQ09NTUFO5fdi2TfG
TRANSF + (UPLOAD, DOWNLO)VFJBTlNG + (VVBMT0FE, RE9XTkxP)J8AoctiB + (QHbU0hQo, hwuvE43y)
EXECUTRVhFQ1VUgRQ7mIYr

Tableau 1. Grammaire des commandes de différentes instances du RAT                                                                                                                                                                         

Pendant l’exécution, le client enregistre les messages de débogage dans un fichier temporaire. Cela varie selon les différentes instances de Mikroceen. Le tableau 2 présente une comparaison de ces messages d’un cas à l’autre et fournit des preuves supplémentaires qui relient les instances de Mikroceen.

 MicrocinBYEBYVicious PandaMikroceen
32-bit64-bit
Folder% CSIDL_COMMON_DOCUMENTS%%TEMP%% CSIDL_COMMON_DOCUMENTS%%TEMP%%TEMP%
Filename7B296FB0.CABvmunisvc.cab5E8C6FF0.CAB7B296FB0.CABW52G86ST.TMP
Keywords at mainV09SS0lO
U3RhcnQ=
V09SS0lO
U3RhcnQ=
V09SS0lO
U3RhcnQ=
V09SS0lOGvFa8Sei
Keyword at connectZGlyZWN0ZGlyZWN0ZGlyZWN0wfZ155bJwfZ155bJ

Tableau 2. Messages de connexion dans un fichier temporaire

Apparition simultanée de logiciels malveillants

Les rapports précédents mentionnent toujours un large arsenal d’outils qui sont utilisés dans les attaques. Dans notre cas, c’était le même – pas seulement Mikroceen, mais aussi d’autres logiciels malveillants. Voici les trois outils les plus importants que nous avons observés dans les réseaux compromis.

Mouvement lateral via Mimikatz

Les attaquants ont utilisé leur implémentation de Mimikatz, livrée via un mécanisme à deux étapes : la première étape était un dropper généralement appelé installer.exe ou Yokel64.exe, qui déposait la charge utile principale avec un nom DLL externe indicatif mktz64.dll dans la deuxième étape. Bien que Mikroceen n’ait jamais fourni d’informations de débogage, nous pouvons voir ici la chaîne E:\2018_\MimHash\mimikatz\Bin\mktzx64.pdb.

Figure 5. Une chaîne de PDB dans la charge utile de Mimikatz

Mimikatz est un projet open source développé depuis 2007 par le chercheur français en sécurité Benjamin Delpy. Il s’agit d’un outil robuste qui, entre autres, peut contourner divers schémas d’authentification Windows, essentiellement en vidant les données d’identification de la base de données Windows Local Security Account. Il est principalement utilisé par les équipes rouges en matière de sécurité informatique, mais il est également utilisé à mauvais escient par les acteurs de l’APT, par exemple LazarusTelebotsOkrum, etc. Après l’avoir exécuté dans un environnement virtuel de test, sa sortie est (les espaces incorrects avant les virgules sont présents dans la version originale) :

Mouvement latéral via WMI

Les attaquants utilisent un outil supplémentaire pour se propager dans le réseau. Cette fois, ils utilisent l’instrument de gestion Windows (WMI). Toutes les données pertinentes sont nécessaires comme le nom du fichier, car pendant l’exécution il attend @@<ComputerName>,<UserName>,<Password>,.exe.  Dans un premier temps, une console est établie vers un ordinateur distant, où la connexion est identifiée par <ComputerName> et authentifiée par (<UserName>, <Password>). Ensuite, la sécurité du proxy est réglée au niveau strict, ce qui signifie que les arguments de chaque appel de procédure à distance sont chiffrés et que l’accès du serveur aux ressources locales est autorisé. Ensuite, WMI est utilisé à nouveau pour récupérer Win32_Process class, qui à son tour est utilisée pour créer un processus avec des paramètres donnés. Lorsque tout le travail est terminé, l’outil s’arrête de lui-même.

RAT Gh0st

Ce tristement célèbre et vieux RAT a été créé vers 2008. Dans le cas présent, il a été observé sous le nom rastls.dll sur les systèmes compromis, alors que le nom de la DLL exportée est généralement svchost.dll. Il tente de se connecter à https://yuemt.zzux[.]com:443 qui se résout à une adresse IP en Chine. C’est une exception pour laquelle on ne trouve pas d’explication, car le serveur n’appartient à aucun des fournisseurs de C&C utilisés par Mikroceen. De notre point de vue, il semble redondant d’utiliser cette porte dérobée supplémentaire, dont la capacité est entièrement fournie par Mikroceen elle-même.

Pour reconnaître cette porte dérobée, on observe la chaîne Gh0st dans le binaire. La chaîne de caractères uwqixgze} est utilisée comme caractère générique pour le domaine C&C.

Figure 6. Logiciel malveillant RAT Gh0st (fragment)

Panneau C&C (interface côté serveur)

Les rapports précédents mentionnent déjà la mauvaise sécurité opérationnelle des attaquants (leurs répertoires ouverts ont été observés par Kaspersky et Checkpoint), et les acteurs derrière continuent de faire fuir des outils qui ne sont pas nécessairement exploités du côté des victimes. Nous avons pu mettre la main sur une ancienne version du panneau de contrôle du RAT.  Sur la partie inférieure de la figure 7, il y a une interface graphique par laquelle tous les robots sont commandés. Elle est très minimaliste, ce qui peut être dû à une version plus ancienne datant de 2017, mais il suffit de la comparer avec le panneau de Gh0st RAT, vieux de plus de 10 ans. Il n’y a pas eu beaucoup d’améliorations depuis, visuellement ou fonctionnellement, donc l’introduction des connexions SSL semble être le principal changement entre les projets (la zone de texte pour « CN Name » sur la figure). Il semble que les opérateurs du botnet soient des clients de contenu des services Vultr, dont la société-mère est Choopa LLC, car leur infrastructure opérationnelle y est principalement hébergée, ce qui a également été observé dans la campagne Vicious Panda de Checkpoint. Il s’agit d’un fournisseur à toute épreuve, documenté par des chercheurs de Cisco dès 2015.

Figure 7. Interfaces pour le contrôle des bots : RAT Gh0st (2008) vs. l’interface de Mikroceen (2017)

Conclusion

Nous avons présenté l’analyse d’une mise en œuvre personnalisée d’un modèle client-serveur développé à des fins d’espionnage. Les développeurs de logiciels malveillants ont fait de gros efforts pour assurer la sécurité et la robustesse de la connexion avec leurs victimes et les opérateurs ont réussi à pénétrer des réseaux d’entreprise très fréquentés. En outre, ils disposent d’un ensemble plus important d’outils d’attaque et leurs projets sont en développement constant, principalement sous forme de variations de l’obscurcissement.

Indicateurs de compromission (IoC)

Voici les hachages d’échantillons décrits dans l’article. D’autres IoC collectés lors des attaques sont disponibles sur le GitHub d’ESET ou celui d’Avast.

SHATimestampDescriptionESET detection name
d215bb8af5581b31f194248fc3bd13d999a5991c2016-06-29 00:34:42Microcin (Kaspersky)
7771e1738fc2e4de210ac06a5e62c534
Win32/Mikroceen.A
7a63fc9db2bc1e9b1ef793723d5877e6b4c566b82017-07-06 08:15:31BYEBY (PANW) 383a2d8f421ad2f243cbc142e9715c78f867a114b037626c2097cb3e070f67d6Win32/Mikroceen.B
2f80f51188dc9aea697868864d88925d64c26abc2017-01-28 11:33:43Vicious Panda (Checkpoint)Win32/Mikroceen.C
302cf1a90507efbded6b8f53e380591a3eaf6dcb2019-04-25 01:15:40Mikroceen 32-bitWin32/Mikroceen.H
21ffd24b8074d7cffdf4cc339d1fa8fe892eba272018-12-10 07:46:25Mikroceen 64-bitWin64/Mikroceen.C
5192023133dce042da8b6220e4e7e2e0dcb000b32019-03-11 12:14:09MimikatzWin64/Riskware.Mimikatz.AQ
c18602552352fee592972603262fe15c2cdb215a2015-03-16 03:29:39Lateral Movement via WMIWin32/HackTool.Agent.NEZ
4de4b662055d3083a1bccf2bc49976cdd819bc012015-12-31 03:10:15Gh0st RATWin32/Farfli.CSY

Références

Techniques MITRE ATT&CK

TacticIDNameDescription
ExecutionT1035Service ExecutionThe RAT is configured to run as a service at startup via sc.exe.
T1059Command-Line InterfaceThe RAT can execute a command line.
T1064ScriptingThe attackers used batch scripts for malware installation and execution.
T1105Remote File CopyThe RAT can download files to the victim’s machine
T1106Execution through APIThe RAT launches the Windows console via CreateProcess.
PersistenceT1050New ServiceThe RAT is executed automatically
Defense EvasionT1036MasqueradingThe RAT disguises itself as various types of legitimate services.
T1140Deobfuscate/Decode Files or InformationThe commands of the RAT and some of its components are encoded/encrypted.
DiscoveryT1082System Information DiscoveryThe RAT sends information, like the version of the operating system to be displayed, in operator’s panel.
T1016System Network Configuration DiscoveryThe RAT collects network information, including host IP address and proxy information.
T1033System Owner/User DiscoveryThe RAT sends information, like the username to be displayed, in operator’s panel.
Credential AccessT1003.001OS Credential Dumping: LSASS MemoryMimikatz is used in the attack.
Command and ControlT1032Standard Cryptographic ProtocolThe RAT uses SSL for encrypting C2 communications.
T1043Commonly Used PortThe RAT uses port 443.
T1071Standard Application Layer ProtocolThe RAT uses the Schannel implementation of SSL.
T1001Data ObfuscationThe RAT’s interface controls the client with obfuscated commands.
T1090.002Proxy: External ProxyThe RAT has a proxy option that masks traffic between the malware and the remote operators.
ExfiltrationT1041Exfiltration Over Command and Control ChannelThe operator of the RAT can download any desired file from a victim.
CollectionT1113Screen CaptureThe RAT can capture the victim’s screen.

Rejoignez le nombre des lecteurs de WLS qui reçoivent une mise à jour dès la publication de tout nouvel article concernant la Crise en Ukraine.

Infolettre

Discussion