ESET prépare des logiciels espions InvisiMole depuis 2013

Gardez une trace des victimes de haut rang en restant à l'ombre. C'est le principe de fonctionnement de deux composants malveillants d'InvisiMole. Ils transforment l'ordinateur infecté en une caméra vidéo des attaquants, ce qui vous permet de voir et d'entendre tout ce qui se passe au bureau ou dans tout autre endroit où se trouve l'appareil. Les opérateurs InvisiMole se connectent facilement au système, surveillent les actions de la victime et lui volent ses secrets.


Selon la télémétrie ESET, les attaquants derrière ce logiciel espion sont actifs depuis au moins 2013. Cependant, cet outil de cyberespionnage n'a pas seulement été étudié, mais n'a pas été détecté jusqu'à ce qu'il soit détecté par les produits ESET sur des ordinateurs infectés en Russie et en Ukraine.

La campagne est très ciblée, ce qui explique le faible niveau d'infection - seulement quelques dizaines d'ordinateurs.

InvisiMole a une architecture modulaire, commence son voyage avec une DLL wrapper (DLL wrapper), puis deux modules sont intégrés à ses ressources. Les deux modules sont des portes dérobées multifonctionnelles, permettant au Malvari de collecter un maximum d'informations sur la cible.

Pour détourner l'attention de l'utilisateur de la machine infectée, des mesures supplémentaires sont appliquées. Cela permet au programme malveillant de rester longtemps sur le système. Nous n'avons pas encore établi le vecteur de l'infection - actuellement, toutes les options sont possibles, y compris l'installation manuelle avec accès physique à la machine.

Installation et persistance


La première partie du malvari à l'étude est un wrapper DLL compilé à l'aide du compilateur Free Pascal . Selon nos données de télémétrie, la DLL est placée dans le dossier Windows et déguisée en un mpr.dll bibliothèque mpr.dll légitime avec de fausses informations de version.


Figure 1. Encapsuleur DLL déguisé en fichier de bibliothèque mpr.dll légitime, copiant les informations de nom et de version

Nous n'avons pas vu d'exemples avec d'autres noms d'encapsuleur, bien que le code DLL indique que le fichier peut également être appelé fxsst.dll ou winmm.dll .

La première façon de lancer malvari est la technique de remplacement des DLL (détournement de DLL). L'encapsuleur DLL est placé dans le même dossier que explorer.exe et chargé au démarrage de Windows avec le processus de l'Explorateur Windows au lieu de la bibliothèque légitime située dans le %windir%\system32 .

Nous avons trouvé des versions 32 et 64 bits de Malvari, qui assurent la persistance dans les deux architectures.

Comme alternative à l'usurpation de DLL, d'autres méthodes de chargement et de persistance sont possibles. La DLL d'encapsuleur exporte la fonction GetDataLength . Lors de l'appel de cette fonction, la DLL vérifie si elle a été chargée par le processus rundll32.exe en utilisant explorer.exe ou svchost.exe tant que processus parent, puis lance uniquement la charge utile. Cela suggère d'autres méthodes possibles pour assurer la persistance - ajouter des tâches au planificateur (le processus parent est svchost.exe ) ou écrire dans la clé d' svchost.exe automatique dans le registre (le processus parent est explorer.exe ).

Quelle que soit la manière dont la persistance est maintenue, le comportement du logiciel malveillant et de la charge utile elle-même est le même dans tous les cas. L'encapsuleur DLL charge le module stocké dans les ressources sous les noms RC2FM et RC2CL et (si la substitution DLL est utilisée) une bibliothèque légitime dans le processus explorer.exe afin de ne pas interrompre le fonctionnement normal de l'application et de passer inaperçu.


Figure 2. Fonctions wrapper exportées

Analyse technique


La date exacte de la compilation du malware est inconnue - les derniers échantillons de wrapper DLL ont été modifiés par les auteurs, les horodatages PE ont été remis à zéro manuellement. Cependant, au cours de l'étude, nous avons trouvé une version antérieure datée du 13 octobre 2013, afin que les nouvelles versions soient clairement compilées plus tard.


Figure 3. Dans tous les exemples ultérieurs, les horodatages sont définis sur zéro

Chiffrement et déchiffrement


Pour se déguiser des analystes de virus et des administrateurs système, les auteurs du programme malveillant utilisent le cryptage des chaînes, des fichiers internes, des données de configuration et des communications réseau. Alors que le module RC2FM utilise des chiffrements personnalisés, l'encapsuleur DLL et le module RC2CL utilisent une procédure spécifique à toutes fins, y compris le décryptage d'autres modules malveillants intégrés à l'encapsuleur DLL.

Le script avec lequel vous pouvez extraire les RC2CL RC2FM et RC2CL du wrapper DLL est disponible dans le référentiel ESET sur GitHub .


Figure 4. Procédure de décryptage dans divers exemples (décompilés et désassemblés)

Module RC2FM


Le premier module RC2FM , plus petit, contient une porte dérobée qui prend en charge 15 commandes. Ils sont exécutés sur l'ordinateur infecté selon les instructions de l'attaquant. Le module peut apporter diverses modifications au système, et comprend également des outils de cyberespionnage.

Les fichiers ont la possibilité de se connecter, mais le nom du journal système n'est pas spécifié dans l'exemple. Cela suggère que la fonction n'a été utilisée qu'au stade de développement.

Communication réseau


Ce module communique avec les serveurs C&C, qui sont soit codés en dur dans l'exemple, soit ajoutés ultérieurement par des attaquants.

De plus, le module peut accéder au serveur C&C même avec le proxy configuré sur la machine infectée. Si une connexion directe n'a pas pu être établie, le module tente de se connecter à l'un de ses serveurs C&C à l'aide de proxys configurés localement ou de proxys configurés pour différents navigateurs (Firefox, Pale Moon et Opera).
RC2FM peut même vérifier la liste des applications récemment utilisées et essayer de trouver des exécutables de navigateur portables:

FirefoxPortable.exe
OperaPortable.exe
Exécutez waterfox.exe
OperaAC.exe
Palemoon-Portable.exe

Si la victime utilise l'un de ces navigateurs portables avec le serveur proxy configuré , le malware peut le détecter dans les paramètres utilisateur et l'utiliser pour communiquer avec ses serveurs C&C.

La communication avec le serveur C & C est une série de demandes HTTP GET et POST, comme illustré dans la figure 5. La demande chiffrée contient l'ID du PC et l'horodatage, ainsi que d'autres informations (facultatif). Il est important de noter que le module RC2FM utilise plusieurs méthodes de cryptage (variantes du cryptage XOR simple), contrairement aux autres composants InvisiMole.


Figure 5. Exemple d'une demande envoyée à un serveur C&C par le module RC2FM

Après l'enregistrement réussi de la victime sur le serveur C&C, des informations supplémentaires sont chargées dans le système, qui seront interprétées par la commande de porte dérobée.

Fonctionnalité


RC2FM prend en charge des commandes pour répertorier les informations de base du système et apporter des modifications simples au système, ainsi que plusieurs fonctionnalités de logiciels espions. À la demande des attaquants, le module peut allumer le microphone à distance sur un ordinateur compromis et enregistrer de l'audio. L'enregistrement est codé au format MP3 à l'aide de la bibliothèque légitime lame.dll , qui est téléchargée et utilisée par des logiciels malveillants.

Un autre outil pour voler des données est des captures d'écran. L'une des commandes de porte dérobée est conçue pour prendre des captures d'écran.

Un programme malveillant surveille tous les disques internes et externes affichés sur le système local. Lorsqu'un nouveau lecteur est connecté, il crée une liste avec tous les fichiers et le stocke sous forme cryptée.

Les informations collectées seront transmises à l'attaquant après l'envoi de la commande appropriée.

Équipes de porte dérobée


Voici les ID et les descriptions des commandes prises en charge. La visualisation de la fonction de porte dérobée dans l'interpréteur est illustrée à la figure 6.

0 - Faites des listes des disques affichés, des fichiers dans un dossier, des partages réseau
2 - Créer, déplacer, renommer, exécuter ou supprimer un fichier, supprimer un répertoire en utilisant le chemin spécifié
4 - Ouvrez le fichier, placez le pointeur au début du fichier
5 - Fermer un fichier précédemment ouvert
6 - Écrire des données dans un fichier précédemment ouvert
7 - Modifier les attributs de fichier de l'heure / supprimer le fichier
8 - Ouvrez le fichier, placez le pointeur à la fin du fichier
10 - Modifier les attributs de fichier de l'heure / supprimer le fichier
12 - Rechercher des fichiers par le masque de fichier spécifié dans le répertoire spécifié
13 - Prendre une capture d'écran
14 - Télécharger ou modifier des fichiers à l'aide de données internes
15 - Enregistrez du son à l'aide d'appareils audio connectés, faites une liste des appareils disponibles, envoyez un enregistrement, modifiez la configuration
16 - Rechercher les fichiers ouverts dans le module
17 - Rafraîchir la liste des serveurs C&C
19 - Créer, installer, copier, répertorier ou supprimer des clés ou des valeurs de registre spécifiées


Figure 6. La fonction de porte dérobée dans l'interpréteur (d'origine et après notre analyse, modifiée à l'aide de la fonction Group Nodes dans IDA Pro pour plus de lisibilité)

Module RC2CL


Le module RC2CL est également une porte dérobée avec une large gamme d'outils d'espionnage. Il est lancé par un wrapper DLL en même temps que le module RC2FM . Il s'agit d'un module plus complexe, ses fonctions visent plus à la collecte maximale d'informations qu'à apporter des modifications au système.

Fait intéressant, le module RC2CL a la possibilité de désactiver la fonctionnalité de porte dérobée et de travailler en tant que proxy. Dans ce cas, le malware arrête le pare-feu Windows et crée un serveur qui prend en charge la communication entre le client et le serveur C&C ou deux clients.

Communication réseau


Les logiciels malveillants communiquent avec les serveurs C&C via un socket TCP. Les messages envoyés par le client sont masqués sous le protocole HTTP, mais vous devez faire attention à la méthode HTTP non valide "HIDE" dans l'exemple de la figure 7.

Les demandes contiennent l'identifiant du logiciel compromis, le type de demande et les informations chiffrées qui doivent être envoyées par les attaquants, c'est-à-dire le résultat de l'exécution de commandes de porte dérobée ou une demande de nouvelles instructions.


Figure 7. Exemple de requête envoyée au serveur de commandes par le module RC2CL

Fonctionnalité


Selon la commande reçue, la porte dérobée peut effectuer diverses opérations sur le système infecté. Les portes dérobées régulières effectuent des manipulations avec le système de fichiers et les clés de registre, prennent en charge l'exécution des fichiers et l'activation du shell à distance. Ce spivar prend en charge toutes ces équipes et plus encore - 84 équipes permettent aux attaquants de collecter des informations complètes sur la victime.

Un programme malveillant analyse un ordinateur infecté et transfère diverses données aux attaquants: informations système (liste des processus actifs, services en cours d'exécution, pilotes chargés ou disques disponibles), informations réseau (table d'adresses IP, vitesse de connexion Internet).

InvisiMole peut analyser les réseaux sans fil disponibles sur un système compromis. Spivar enregistre des informations telles que les adresses SSID et MAC des points d'accès Wi-Fi détectés. Ces données peuvent ensuite être vérifiées avec des bases de données publiques, ce qui permet aux attaquants de suivre la géolocalisation de la victime.

D'autres commandes fournissent des informations sur les utilisateurs de la machine compromise, leurs comptes et les sessions précédentes.

Le logiciel installé sur une machine compromise présente un intérêt particulier. Quels programmes sont installés dans le système? Lequel d'entre eux démarre automatiquement au démarrage du système ou lors de la connexion de l'utilisateur? Quels programmes un utilisateur particulier utilise-t-il? Si les attaquants sont intéressés par quelque chose, entrez simplement une commande pour obtenir les données nécessaires.

Les logiciels malveillants peuvent obtenir une commande pour rechercher des documents récemment ouverts et d'autres fichiers intéressants. Il peut afficher des répertoires spécifiques et des périphériques externes, signaler les modifications et extraire les fichiers sélectionnés par les attaquants.

Les logiciels malveillants peuvent activer ou désactiver le système de gestion de compte (UAC), ou le contourner et travailler avec des fichiers dans des répertoires protégés sans droits d'administrateur (plus sur le lien ). Si le malware s'exécute sous le processus explorer.exe , qui obtient automatiquement des droits élevés, il peut créer un objet COM et l'utiliser pour supprimer et déplacer des fichiers dans des zones qui nécessitent des droits d'administrateur.

De plus, InvisiMole peut allumer à distance la webcam et le microphone de la victime, espionner en prenant des photos ou en enregistrant du son. Les attaquants peuvent surveiller l'activité sur l'appareil en prenant des captures d'écran. Ce qui est particulièrement intéressant, InvisiMole vous permet de prendre des captures d'écran non seulement de tout l'écran, mais aussi de toutes les fenêtres ouvertes. Cela permet aux attaquants de collecter des informations même lorsque les fenêtres se ferment.

L'une des commandes de porte dérobée vous permet de remplacer le contenu des pilotes par les noms suivants:

blbdrive.sys
compbatt.sys
secdrv.sys


Nous n'avons pas observé l'utilisation de cette commande par des attaquants, mais nous pouvons supposer qu'elle est utilisée pour fournir une persistance supplémentaire sur les systèmes 32 bits.

La porte dérobée est capable d'interférer avec le système (par exemple, se connecter en tant qu'utilisateur, terminer le processus ou éteindre le système), mais fournit principalement des opérations passives. Le programme essaie de cacher son activité autant que possible.

Ainsi, spivar explore des endroits intéressants du système, étudie les documents récemment ouverts ou modifie certains fichiers. Ces actions laissent des traces et peuvent causer des soupçons à la victime, car après chaque opération, l'heure de la dernière modification du fichier et / ou l'accès à celui-ci change. Pour empêcher la détection, le malware récupère la date de la précédente modification ou ouverture du fichier pour cacher ses manipulations à l'utilisateur.

Un autre exemple de la façon dont les auteurs de spayvari essaient d'éviter la détection est de travailler avec des traces laissées sur le disque. Un programme malveillant collecte une grande quantité de données confidentielles qui sont stockées dans des fichiers pendant un certain temps et supprimées après un téléchargement réussi sur les serveurs C&C. Le problème est qu'un administrateur système expérimenté peut récupérer des fichiers supprimés, ce qui aidera à enquêter sur l'attaque après que la victime aura découvert le compromis. Cela est possible car certaines informations restent sur le disque même après la suppression du fichier. Pour éviter cela, InvisiMole a la possibilité de supprimer en toute sécurité tous les fichiers. Cela signifie que les données sont d'abord écrasées avec zéro ou des octets aléatoires, et ce n'est qu'après que le fichier est supprimé.

Mémoire intégrée


La configuration de la porte dérobée et les données collectées sont stockées à deux adresses - il s'agit du répertoire de travail et des clés de registre. Une partie importante des commandes de porte dérobée est conçue pour manipuler ces emplacements de stockage de données et leur contenu.

L'emplacement du répertoire de travail est déterminé à l'aide de commandes provenant d'un serveur distant. Le répertoire est utilisé comme stockage temporaire de fichiers contenant des informations collectées à partir d'un ordinateur compromis. Ces fichiers ont une méthode de dénomination, un algorithme et une structure de chiffrement communs. Ils sont cryptés avec une version simple du chiffrement XOR, qui est utilisé dans les composants de malvari. Le type de fichier peut être obtenu à partir de la séquence de contrôle de 4 octets située au début du fichier.

En plus de stocker les données collectées, le répertoire est utilisé comme répertoire de base pour une copie de l'application WinRAR.exe légitime. Malvar le copie et l'utilise pour archiver des données volées.

Le registre stocke les données de configuration, ainsi qu'une liste de fichiers dans le répertoire de travail. Les données sont compressées en utilisant la procédure Zlib implémentée dans le fichier binaire malvari, et cryptées en utilisant le même chiffre que les fichiers internes.



Équipes de porte dérobée


Plus de quatre-vingts commandes de porte dérobée utilisent le répertoire de travail et les clés de registre pour stocker les résultats intermédiaires et les données de configuration. Le graphique avec la porte dérobée dans l'interpréteur est illustré à la figure 8.

Environ un tiers de toutes les commandes concernent la lecture et la mise à jour des données de configuration stockées dans le registre. Les ID et descriptions des commandes restantes sont répertoriés ci-dessous.

4 - Faites une liste des informations sur les fichiers dans le répertoire
6 - Télécharger le fichier
20 - Liste des processus actifs
22 - Terminer le processus par ID
24 - Exécuter le fichier
26 - Supprimer le fichier
28 - Obtenir la table de transfert IP
30 - Écrire des données dans un fichier
31 - L'inaction
38 - Faire une liste de comptes
40 - Faire une liste des services dans le système
42 - Faites une liste des pilotes chargés
43 - Collecte des informations système de base (nom de l'ordinateur, version du système d'exploitation, état de la mémoire, heure locale, informations sur le disque, informations sur les proxys configurés, politique actuelle de prévention de l'exécution des données pour le système et les processus, etc.)
44 - Faire une liste des logiciels installés
46 - Liste des utilisateurs locaux et des informations de session
48 - Faire une liste des applications utilisées par les utilisateurs
52 - Créer une structure de répertoires
78 - Créer un shell distant
81 - Exécutez la commande via le shell distant
91 - Activer / désactiver le contrôle des comptes d'utilisateurs
93 - Session utilisateur final / arrêt / redémarrage du système
101 - Suivre et enregistrer les modifications apportées aux répertoires spécifiés
103 - Supprimer le répertoire
109 - Allumer / éteindre le moniteur / activer la veille
120 - Prendre une capture d'écran de la fenêtre d'affichage / active
126 - Prendre une capture d'écran de la fenêtre d'affichage / active et mettre à jour les données de configuration
130 - Liste des informations sur les ressources sur les disques non alloués
132 - Renommez / déplacez le fichier, changez l'heure de création / ouverture / écriture du fichier en spécifiant
134 - Liste des fichiers récemment ouverts
152 - Déconnectez les disques amovibles (précédemment connectés)
155 - Créer / supprimer une clé de registre, définir / supprimer des valeurs de clé de registre ou répertorier les valeurs / clés / données de registre
159, 161 - Désactiver le routage / pare-feu, créer un serveur proxy sur un port spécifique
172 - Répétez la boîte de dialogue demandant de redémarrer l'ordinateur
175 - Contourner le contrôle du compte utilisateur pour la manipulation de fichiers
177 - Créer et écrire un fichier, définir des données sur l'heure de création / ouverture / modification
181 - Supprimer tous les points de restauration du système
183 - Réinitialiser le composant (légitime) d'une application WinRAR
185 - Ajouter des fichiers à l'archive protégée par mot de passe (mot de passe = "12KsNh92Dwd")
187 - Déchiffrer, décompresser et charger la DLL, charger les fichiers exe à partir des ressources RC2CL, RC2FM
189 - Créer un point de restauration système
191 - Extraire l'archive protégée par mot de passe (12KsNh92Dwd)
193 - Changer le fichier crypté
195 - Redémarrer après l'achèvement du processus principal
197 - Envoyer 198 octets de données codées en dur dans un modèle
199 - Renommer / déplacer un fichier
206 - Déchiffrer, décompresser et télécharger la DLL, charger les fichiers exe à partir des ressources RC2CL, RC2FM
211 - Télécharger les informations collectées (captures d'écran, enregistrements audio, etc.)
213 - Faire une liste des fenêtres actives
218 - API pour l'enregistrement audio à partir de périphériques d'entrée
220 - API pour prendre des photos à partir d'une webcam
224 - Faire une liste des fichiers exécutés à chaque démarrage du système
226 - Faites une liste des réseaux sans fil activés (adresse MAC, SSID, intervalle de signalisation)
228 - Réinitialiser le paquet Zlib compressé


Figure 8. La fonction de porte dérobée dans l'interpréteur (d'origine et modifiée à l'aide de la fonction Group Nodes dans IDA Pro pour plus de lisibilité)

Conclusion


InvisiMole est un logiciel espion complet qui offre des fonctionnalités étendues qui peuvent rivaliser avec d'autres outils de cyber-espionnage bien connus.

On ne peut que deviner pourquoi les auteurs utilisent deux modules avec des fonctions en double.On pourrait supposer que le plus petit module, est RC2FMutilisé dans la première phase de reconnaissance, et le plus grand, RC2CLne fonctionne que sur des machines qui intéressent les opérateurs. Mais ce n'est pas le cas - deux modules sont lancés simultanément. Deuxième explication possible: les modules sont assemblés par différents auteurs puis combinés pour fournir aux opérateurs un maximum d'outils.

InvisiMole utilise seulement quelques techniques pour éviter la détection et l'analyse. Cependant, comme des logiciels espions ont été utilisés pour attaquer un petit nombre de cibles de haut rang, elle a réussi à éviter la détection pendant au moins cinq ans.

Indicateurs de compromis (IoC)


Détection ESET


Win32/InvisiMole.A trojan
Win32/InvisiMole.B trojan
Win32/InvisiMole.C trojan
Win32/InvisiMole.D trojan
Win64/InvisiMole.B trojan
Win64/InvisiMole.C trojan
Win64/InvisiMole.D trojan


Hachage SHA-1


5EE6E0410052029EAFA10D1669AE3AA04B508BF9
2FCC87AB226F4A1CC713B13A12421468C82CD586
B6BA65A48FFEB800C29822265190B8EAEA3935B1
C8C4B6BCB4B583BA69663EC3AED8E1E01F310F9F
A5A20BC333F22FD89C34A532680173CBCD287FF8


Noms de domaine du serveur C&C


activationstate.sytes[.]net
advstatecheck.sytes[.]net
akamai.sytes[.]net
statbfnl.sytes[.]net
updchecking.sytes[.]net


Adresses IP des serveurs C&C et période d'activité


2013-2014 - 46.165.231.85
2013-2014 - 213.239.220.41
2014-2017 - 46.165.241.129
2014-2016 - 46.165.241.153
2014-2018 - 78.46.35.74
2016-2016 - 95.215.111.109
2016-2018 - 185.118.66.163
2017-2017 - 185.118.67.233
2017-2018 - 185.156.173.92
2018-2018 - 46.165.230.241
2018-2018 - 194.187.249.157


Clés et valeurs de registre


RC2FM


[HKEY_CURRENT_USER\Software\Microsoft\IE\Cache]
"Index"


RC2CL


[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Console]
or [HKEY_CURRENT_USER\Software\Microsoft\Direct3D]
"Settings"
"Type"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]
or [HKEY_CURRENT_USER\Software\Microsoft\Direct3D]
"Common"
"Current"
"ENC"
"FFLT"
"Flag1"
"FlagLF"
"FlagLF2"
"IfData"
"INFO"
"InstallA"
"InstallB"
"LegacyImpersonationNumber"
"LM"
"MachineAccessStateData"
"MachineState 0"
"RPT"
"SP2"
"SP3"
"SettingsMC"
"SettingsSR1"
"SettingsSR2"


Fichiers et dossiers


RC2FM


%APPDATA%\Microsoft\Internet Explorer\Cache\AMB6HER8\
%volumeSerialNumber%.dat
content.dat
cache.dat
index.dat
%APPDATA%\Microsoft\Internet Explorer\Cache\MX0ROSB1\
content.dat
index.dat
%random%.%ext%
%APPDATA%\Microsoft\Internet Explorer\Cache\index0.dat


RC2CL


Winrar\
comment.txt
descript.ion
Default.SFX
WinRAR.exe
main.ico
fl_%timestamp%\strcn%num%\
fdata.dat
index.dat
~mrc_%random%.tmp
~src_%random%.tmp
~wbc_%random%.tmp
sc\~sc%random%.tmp
~zlp\zdf_%random%.data
~lcf\tfl_%random%

Source: https://habr.com/ru/post/fr414419/


All Articles