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.
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é.
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.
@echo off
sc stop PCAudit
sc delete PCAudit
sc create PCAudit binpath= "C:\WINDOWS\syswow64\svchost.exe -k netsvcs" type= share start= auto displayname= "Windows Upload Manager"
sc description PCAudit "Windows Help Service is a microsoft Windows component for System(Important). If this service is stopped, users will be unable to get useful information"
sc failure PCAudit reset= 0 actions= restart/0
reg add HKLM\SYSTEM\CurrentControlSet\Services\PCAudit\Parameters /v ServiceDll /t REG_EXPAND_SZ /d %SystemRoot%\Syswow64\pcaudit.dll
reg add HKLM\SYSTEM\CurrentControlSet\Services\PCAudit\Parameters /v ServiceMain /t REG_SZ /d NtHelpServiceMain
reg add HKLM\SYSTEM\CurrentControlSet\Services\PCAudit\Parameters /v ServiceDllUnloadOnStop /t REG_DWORD /d 1
sc start PCAudit
del %0
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.
Command | Microcin, BYEBY, Vicious Panda | Mikroceen |
---|---|---|
hello! | aGVsbG8h | AmbZDkEx |
GOODBY | R09PREJZ | eYTS5IwW |
BYE BY | QllFIEJZ | bo7aO8Nb |
DISCON | RElTQ09O | 6GEI6owo |
LIST D | TElTVCBE | Ki0Swb7I |
STARTC | U1RBUlRD | h71RBG8X |
COMMAN | Q09NTUFO | 5fdi2TfG |
TRANSF + (UPLOAD, DOWNLO) | VFJBTlNG + (VVBMT0FE, RE9XTkxP) | J8AoctiB + (QHbU0hQo, hwuvE43y) |
EXECUT | RVhFQ1VU | gRQ7mIYr |
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.
Microcin | BYEBY | Vicious Panda | Mikroceen | #rowspan# | |
---|---|---|---|---|---|
#rowspan# | #rowspan# | #rowspan# | 32-bit | 64-bit | |
Folder | % CSIDL_COMMON_DOCUMENTS% | %TEMP% | % CSIDL_COMMON_DOCUMENTS% | %TEMP% | %TEMP% |
Filename | 7B296FB0.CAB | vmunisvc.cab | 5E8C6FF0.CAB | 7B296FB0.CAB | W52G86ST.TMP |
Keywords at main | V09SS0lO U3RhcnQ= |
V09SS0lO U3RhcnQ= |
V09SS0lO U3RhcnQ= |
V09SS0lO | GvFa8Sei |
Keyword at connect | ZGlyZWN0 | ZGlyZWN0 | ZGlyZWN0 | wfZ155bJ | wfZ155bJ |
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.
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 Lazarus, Telebots, Okrum, 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) :
#1 domain = MSEDGEWIN10, user = Administrator , nthash=FC525C9683E8FE067095BA2DDC971889.
#2 domain = MSEDGEWIN10, user = IEUser , nthash=FC525C9683E8FE067095BA2DDC971889.
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.
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.
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.
SHA | Timestamp | Description | ESET detection name |
---|---|---|---|
d215bb8af5581b31f194248fc3bd13d999a5991c | 2016-06-29 00:34:42 | Microcin (Kaspersky) 7771e1738fc2e4de210ac06a5e62c534 |
Win32/Mikroceen.A |
7a63fc9db2bc1e9b1ef793723d5877e6b4c566b8 | 2017-07-06 08:15:31 | BYEBY (PANW) 383a2d8f421ad2f243cbc142e9715c78f867a114b037626c2097cb3e070f67d6 | Win32/Mikroceen.B |
2f80f51188dc9aea697868864d88925d64c26abc | 2017-01-28 11:33:43 | Vicious Panda (Checkpoint) | Win32/Mikroceen.C |
302cf1a90507efbded6b8f53e380591a3eaf6dcb | 2019-04-25 01:15:40 | Mikroceen 32-bit | Win32/Mikroceen.H |
21ffd24b8074d7cffdf4cc339d1fa8fe892eba27 | 2018-12-10 07:46:25 | Mikroceen 64-bit | Win64/Mikroceen.C |
5192023133dce042da8b6220e4e7e2e0dcb000b3 | 2019-03-11 12:14:09 | Mimikatz | Win64/Riskware.Mimikatz.AQ |
c18602552352fee592972603262fe15c2cdb215a | 2015-03-16 03:29:39 | Lateral Movement via WMI | Win32/HackTool.Agent.NEZ |
4de4b662055d3083a1bccf2bc49976cdd819bc01 | 2015-12-31 03:10:15 | Gh0st RAT | Win32/Farfli.CSY |
Références
- Vasily Berdnikov, Dmitry Karasovsky, Alexey Shulmin: “Microcin malware”, Kaspersky Labs 2017-9-25
- Josh Grunzweig, Robert Falcone: “Threat Actors Target Government of Belarus Using CMSTAR Trojan”, September 2017
- Checkpoint Research: “Vicious Panda: The COVID Campaign”, 2020-03-12
- SecDev Group & Citizenlab, “Tracking GhostNet: Investigating a Cyber Espionage Network”, March 2009,
- Dhia Mahjoub, Jeremiah O'Connor, Thibault Reuille, Thomas Mathew: “Phishing, Spiking, and Bad Hosting”, Cisco Umbrella Blog, 2015-09-14
- “Mimikatz: A little tool to play with Windows security”
- Peter Kálnai, Anton Cherepanov. “Lazarus KillDisks Central American casino”, WeLiveSecurity.com, April 2018
- Anton Cherepanov, Robert Lipovský: “New TeleBots backdoor: First evidence linking Industroyer to NotPetya”, WeLiveSecurity.com, October 2018
- Zuzana Hromcová: “Okrum: Ke3chang group targets diplomatic missions”, WeLiveSecurity.com, July 2019
- Avast Threat Intelligence, GitHub repository
- ESET Threat Intelligence, GitHub repository
Techniques MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1035 | Service Execution | The RAT is configured to run as a service at startup via sc.exe. |
T1059 | Command-Line Interface | The RAT can execute a command line. | |
T1064 | Scripting | The attackers used batch scripts for malware installation and execution. | |
T1105 | Remote File Copy | The RAT can download files to the victim’s machine | |
T1106 | Execution through API | The RAT launches the Windows console via CreateProcess. | |
Persistence | T1050 | New Service | The RAT is executed automatically |
Defense Evasion | T1036 | Masquerading | The RAT disguises itself as various types of legitimate services. |
T1140 | Deobfuscate/Decode Files or Information | The commands of the RAT and some of its components are encoded/encrypted. | |
Discovery | T1082 | System Information Discovery | The RAT sends information, like the version of the operating system to be displayed, in operator’s panel. |
T1016 | System Network Configuration Discovery | The RAT collects network information, including host IP address and proxy information. | |
T1033 | System Owner/User Discovery | The RAT sends information, like the username to be displayed, in operator’s panel. | |
Credential Access | T1003.001 | OS Credential Dumping: LSASS Memory | Mimikatz is used in the attack. |
Command and Control | T1032 | Standard Cryptographic Protocol | The RAT uses SSL for encrypting C2 communications. |
T1043 | Commonly Used Port | The RAT uses port 443. | |
T1071 | Standard Application Layer Protocol | The RAT uses the Schannel implementation of SSL. | |
T1001 | Data Obfuscation | The RAT’s interface controls the client with obfuscated commands. | |
T1090.002 | Proxy: External Proxy | The RAT has a proxy option that masks traffic between the malware and the remote operators. | |
Exfiltration | T1041 | Exfiltration Over Command and Control Channel | The operator of the RAT can download any desired file from a victim. |
Collection | T1113 | Screen Capture | The RAT can capture the victim’s screen. |