Dans notre suivi du groupe InvisiMole, que nous avons redécouvert et avont analysé dans un premier rapport en 2018, nous avons trouvé une nouvelle campagne ciblant des organisations très en vue en Europe de l'Est. En enquêtant sur les attaques, en étroite collaboration avec les organisations concernées, nous avons découvert sa boîte à outils mise à jour et des détails jusqu'alors inconnus sur les tactiques, les outils et les procédures (TTP) d'InvisiMole.
Dans ce blog, nous résumons les résultats publiés dans leur intégralité dans notre white paper , InvisiMole: La face cachée de l’histoire (InvisiMole: The hidden part of the story).
Le groupe InvisiMole est un acteur de la menace qui opère au moins depuis 2013. Nous avons précédemment documenté ses deux portes dérobées, RC2CL et RC2FM, notables pour leurs capacités d'espionnage étendues, mais nous ne savions pas comment ces portes dérobées étaient livrées, diffusées ou installées sur le système.
Lors de cette récente campagne, le groupe InvisiMole a refait surface avec un ensemble d'outils mis à jour, ciblant un petit nombre d'organisations de haut niveau dans le secteur militaire et les missions diplomatiques, tant en Europe de l'Est. Selon notre télémétrie, les tentatives d'attentats se sont poursuivies de la fin 2019 jusqu'à la rédaction du présent rapport.
Grâce à l'enquête menée en coopération avec les organisations concernées, nous avons pu exposer les rouages internes de la boîte à outils InvisiMole mise à jour.
Nous avons découvert que l'arsenal d'InvisiMole n'est déclenché qu'après qu'un autre groupe de menace, Gamaredon, ait déjà infiltré le réseau d'intérêt, et peut-être obtenu des privilèges administratifs. Cela permet au groupe InvisiMole de trouver des moyens créatifs d'opérer sous le radar.
Par exemple, les attaquants utilisent de longues chaînes d'exécution, élaborées en combinant un shellcode malveillant avec des outils légitimes et des exécutables vulnérables. Ils utilisent le DNS tunneling pour des communications C&C plus furtives, et placent des garde-fous d'exécution sur les composants malveillants pour cacher le logiciel malveillant des chercheurs en sécurité.
Mécanisme de livraison
Au cours de notre enquête, nous avons découvert que InvisiMole est livré aux systèmes compromis par un téléchargeur .NET détecté par les produits ESET comme étant MSIL/Pterodo, l’œuvre du groupe Gamaredon. Gamaredon est un acteur de la menace, opérant au moins depuis 2013, caractérisé par un développement rapide et faisant peu d'efforts pour rester sous le radar. Nous avons récemment documenté les derniers composants de Gamaredon, distribués par des courriels de harponnage et utilisés pour se déplacer latéralement aussi loin que possible dans le réseau de la cible, tout en prenant les empreintes digitales des machines.
Nos recherches montrent maintenant que Gamaredon est utilisé pour ouvrir la voie à une charge utile beaucoup plus furtive - selon notre télémétrie, un petit nombre de cibles de Gamaredon sont « mises à niveau » vers le logiciel malveillant avancé InvisiMole, probablement celles jugées particulièrement importantes par les attaquants.
Comme nous l’expliquons en détail dans notre white paper, malgré les preuves de collaboration, nous considérons que Gamaredon et InvisiMole sont deux groupes distincts avec des TTP différents, plutôt qu'un seul acteur malveillant.
Mécanismes de diffusion et de mise à jour
Nous documentons trois façons dont InvisiMole se répand au sein des réseaux compromis :
- En utilisant la vulnérabilité BlueKeepdans le protocole RDP (CVE-2019-0708)
- En utilisant la vulnérabilité EternalBluedans le protocole SMB (CVE-2017-0144)
- En utilisant des documents et des installateurs de logiciels comme chevaux de Troie, élaborés à partir de fichiers bénins volés à une organisation compromise.
Pour créer les fichiers piratés, InvisiMole vole d'abord les documents ou les installateurs de logiciels de l'organisation compromise, puis crée une archive SFX regroupant le fichier avec l'installateur d'InvisiMole. Le fichier original est alors remplacé par la version militarisée, tandis que son nom, son icône et ses métadonnées sont préservés. Les attaquants comptent sur les utilisateurs pour partager et exécuter ces fichiers.
Cette technique de mouvement latéral est particulièrement puissante si le fichier trojanisé se trouve être un installateur de logiciel placé sur un serveur central - une façon courante de déployer des logiciels dans les grandes organisations. Ainsi, InvisiMole est distribué de manière organique à de nombreux ordinateurs qui utilisent ce serveur.
Quelle que soit la méthode de diffusion, le premier composant d'InvisiMole déployé sur les machines nouvellement compromises est toujours le téléchargeur TCP d'InvisiMole - un simple ajout au jeu d'outils qui télécharge l'étape suivante de l'infiltration.
Le deuxième ajout à la boîte à outils InvisiMole mise à jour, le téléchargeur DNS, a la même fonctionnalité mais est conçu pour un accès caché et à long terme à la machine. Il utilise une méthode plus furtive de communication C&C, en utilisant une technique appelée « DNS tunneling » - soit tunnellisation du DNS – qu’on peut voir à la figure 2.
Avec la tunnellisation du DNS, le client compromis ne contacte pas directement le serveur C&C. Il ne communique qu'avec le(s) serveur(s) DNS bénin(s) avec lequel (lesquels) la machine victime communiquerait normalement, où il envoie des demandes de résolution d'un domaine à son adresse IP. Le serveur DNS contacte alors le serveur de noms responsable du domaine dans la requête, qui est un serveur de noms contrôlé par l'attaquant, et relaie sa réponse au client.
La communication C&C proprement dite est intégrée dans les demandes et les réponses DNS, à l'insu du serveur DNS bénin qui sert d'intermédiaire dans la communication.
Chaînes d'exécution
La caractéristique la plus notable de la nouvelle boîte à outils InvisiMole est sa longue chaîne d'exécution, utilisée pour déployer les charges utiles finales - les portes dérobées RC2CM et RC2CL mises à jour, et les nouveaux téléchargeurs TCP et DNS.
Nous avons reconstitué quatre chaînes d'exécution, utilisées par les attaquants dans diverses situations - en nous basant sur la version du système d'exploitation de l'ordinateur de la victime, et sur le fait qu'ils aient pu ou non obtenir des privilèges administratifs sur le système :
- La chaîne d'abus du panneau de contrôle utilise une technique rare connue pour les brèches de Vault 7, utilisée pour réaliser une exécution secrète dans le cadre du panneau de contrôle.
- La chaîne d'exploitation SMInit exploite une vulnérabilité du logiciel légitime Total Video Player. Il est utilisé dans les cas où les attaquants n'ont pas réussi à obtenir des privilèges administratifs sur le système.
- La chaîne d'exploitation Speedfan exploite une vulnérabilité d'escalade de privilèges locale dans le pilote speedfan.sys pour injecter son code dans un processus de confiance à partir du mode noyau.
- La chaîne d'exploitation Wdigest est la chaîne phare d'InvisiMole, la plus élaborée, utilisée sur les dernières versions de Windows, où les attaquants disposent de privilèges administratifs. Il exploite une vulnérabilité dans le répertoire wdigest.dll de Windows et utilise ensuite une technique améliorée de ListPlanting pour injecter son code dans un processus de confiance.
Les exécutables vulnérables utilisés dans ces chaînes sont tous introduits dans le système par InvisiMole - la variante de cette technique avec un pilote vulnérable a été précédemment appelée Bring Your Own Vulnerable Driver (qu’on peut traduire par « Apportez votre pilote vulnérable) par des collègues chercheurs. Pour les autres cas, nous avons baptisé la technique « Apportez vos logiciels vulnérables ».
Nous documentons ces tactiques en détail dans la section Execution chains (ou chaînes d’exécution) de notre white paper.
Notez l'utilisation importante d'outils légitimes et de chiffrement des victimes, comme le montre l'aperçu de ces quatre chaînes dans la figure 3. La tactique des opérateurs d'InvisiMole consiste à installer exclusivement des outils légitimes et à réserver les charges utiles malveillantes pour les étapes ultérieures.
Pour placer des garde-fous d'exécution et chiffrer les charges utiles individuellement par victime, InvisiMole utilise une fonctionnalité de Windows appelée API de protection des données (DPAPI), spécifiquement :
- L'API CryptProtectData pour le chiffrement des données
- L'API CryptUnprotectData pour le déchiffrement des données
Ce système de chiffrement symétrique utilise une clé dérivée des secrets de connexion de l'utilisateur, de sorte que le chiffrement doit être effectué sur le même ordinateur que celui où les données ont été chiffrées.
La figure 4 montre un fragment d'un chargeur InvisiMol typique qui utilise CryptUnprotectData pour le déchiffrement et vérifie ensuite si le blob déchiffré commence par une valeur magique de quatre octets caractéristique d'InvisiMole :
- 64 DA 11 CE pour les charges utiles de 64 bits
- 86 DA 11 CE pour les charges utiles de 32 bits.
La fonction DPAPI, destinée au stockage local d'identifiants tels que les mots de passe Wi-Fi ou les mots de passe de connexion dans les navigateurs web, est utilisée abusivement par InvisiMole pour protéger sa charge utile des chercheurs en sécurité. Même s'ils trouvent les composants d'InvisiMole dans la télémétrie ou sur des plateformes de partage de logiciels malveillants, ils ne peuvent pas les déchiffrer en dehors de l'ordinateur de la victime.
Cependant, grâce à une coopération directe avec les organisations concernées, nous avons pu récupérer les charges utiles et reconstruire quatre des chaînes d'exécution d'InvisiMole, qui sont décrites en détail dans le white paper.
Conclusion
Lorsque nous avons parlé pour la première fois d'InvisiMole en 2018, nous avons mis en évidence son fonctionnement secret et la complexité de ses capacités. Cependant, une grande partie de l'image manquait.
Après avoir découvert une nouvelle activité fin 2019, nous avons eu l'occasion de jeter un coup d'œil sous le capot des opérations d'InvisiMole et de reconstituer les parties cachées de l'histoire. En analysant la boîte à outils actualisée du groupe, nous avons observé un développement continu et des améliorations substantielles, en nous efforçant de rester sous le radar.
Notre enquête a également révélé une coopération jusqu'alors inconnue entre InvisiMole et le groupe Gamaredon, les logiciels malveillants de Gamaredon étant utilisés pour infiltrer le réseau cible et livrer les logiciels malveillants sophistiqués d'InvisiMole à des cibles présentant un intérêt particulier.
Après avoir fourni un rapport détaillé sur les TTP d'InvisiMole, nous continuerons à suivre les activités malveillantes du groupe.
Les noms des détections ESET et autres indicateurs de compromis pour ces campagnes se trouvent dans le white paper, InvisiMole: The hidden part of the story.
Remerciements à nos collègues chercheurs sur les logiciels malveillants d'ESET Matthieu Faou, Ladislav Janko et Michal Poslušný, pour leur travail dans le cadre de cette enquête.
Techniques MITRE ATT&CK
Note : Pour une meilleure lisibilité, nous avons séparé les portes dérobées RC2FM et RC2CL dans leurs tables de correspondance ATT&CK respectives, en raison de leurs riches capacités. La première cartographie concerne les composants de soutien d'InvisiMole utilisés pour la livraison, le mouvement latéral, les chaînes d'exécution et le téléchargement de charges utiles supplémentaires.
InvisiMole
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1196 | Control Panel Items | InvisiMole’s loader is masked as a CPL file, misusing control panel items for execution. |
T1106 | Execution through API | InvisiMole has used ShellExecuteW and CreateProcessW APIs to execute files. | |
T1129 | Execution through Module Load | InvisiMole implements a custom loader for its components (InvisiMole blobs). | |
T1203 | Exploitation for Client Execution | InvisiMole has delivered vulnerable Total Video Player software and wdigest.dll library and exploited their stack overflow and input validation vulnerabilities, respectively, to gain covert code execution. | |
T1085 | Rundll32 | InvisiMole has used rundll32.exe as part of its execution chain. | |
T1053 | Scheduled Task | InvisiMole has used Windows task scheduler as part of its execution chains. | |
T1064 | Scripting | InvisiMole has used a JavaScript file named Control.js as part of its execution chain. | |
T1035 | Service Execution | InvisiMole has registered a Windows service as one of the ways to execute its malicious payload. | |
T1204 | User Execution | InvisiMole has been delivered as trojanized versions of software and documents, using deceiving names and icons and relying on user execution. | |
Persistence | T1050 | New Service | InvisiMole has registered a Windows service named clr_optimization_v2.0.51527_X86 to achieve persistence. |
T1060 | Registry Run Keys / Startup Folder | InvisiMole has placed a LNK file in Startup Folder to achieve persistence. | |
T1053 | Scheduled Task | InvisiMole has scheduled tasks under names MSST and \Microsoft\Windows\Autochk\Scheduled to achieve persistence. | |
T1023 | Shortcut Modification | InvisiMole has placed a LNK file in Startup Folder to achieve persistence. | |
Privilege Escalation | T1088 | Bypass User Account Control | InvisiMole can bypass UAC to obtain elevated privileges. |
T1068 | Exploitation for Privilege Escalation | InvisiMole has exploited CVE-2007-5633 vulnerability in speedfan.sys driver to obtain kernel mode privileges. | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | InvisiMole decrypts strings using variations of XOR cipher. InvisiMole decrypts its components using the CryptUnprotectData API and two-key triple DES. |
T1480 | Execution Guardrails | InvisiMole has used Data Protection API to encrypt its components on the victim’s computer, to evade detection and make sure the payload can only be decrypted (and then loaded) on one specific compromised computer. | |
T1143 | Hidden Window | InvisiMole has executed legitimate tools in hidden windows and used them to execute malicious InvisiMole components. | |
T1066 | Indicator Removal from Tools | InvisiMole has undergone technical improvements in attempt to evade detection. | |
T1202 | Indirect Command Execution | InvisiMole has used winapiexec tool for indirect execution of Windows API functions. | |
T1027 | Obfuscated Files or Information | InvisiMole has obfuscated strings and code to make analysis more difficult, and encrypted its components to thwart detection. | |
T1055 | Process Injection | InvisiMole has injected its code into trusted processes using an improved ListPlanting technique and via APC queue. | |
T1108 | Redundant Access | InvisiMole has deployed multiple backdoors on a single compromised computer. | |
T1085 | Rundll32 | InvisiMole has used rundll32.exe as part of its execution chain. | |
T1064 | Scripting | InvisiMole’s loader uses a JavaScript script as a part of setting up persistence. | |
T1063 | Security Software Discovery | InvisiMole’s DNS plugin avoids connecting to the C&C server if selected network sniffers are detected running. | |
T1099 | Timestomp | InvisiMole has modified timestamps of files that it creates or modifies. | |
T1036 | Masquerading | InvisiMole has attempted to disguise its droppers as legitimate software or documents, and to conceal itself by registering under a seemingly legitimate service name. | |
Discovery | T1046 | Network Service Scanning | InvisiMole has performed network scanning within the compromised network using its Portscan and BlueKeep components, in order to search for open ports and for hosts vulnerable to the BlueKeep vulnerability. |
T1518 | Software Discovery | InvisiMole’s DNS downloader attempts to detect selected network sniffer tools, and pauses its network traffic if any are detected running. | |
T1082 | System Information Discovery | InvisiMole’s DNS downloader collects computer name and system volume serial number. | |
T1124 | System Time Discovery | InvisiMole can collect the timestamp from the victim’s machine. | |
Lateral Movement | T1210 | Exploitation of Remote Services | InvisiMole has exploited EternalBlue and BlueKeep vulnerabilities for lateral movement. |
T1080 | Taint Shared Content | InvisiMole has replaced legitimate software or documents in the compromised network with their trojanized versions, in an attempt to propagate itself within the network. | |
Command and Control | T1043 | Commonly Used Port | InvisiMole’s downloader uses port 443 for C&C communication. InvisiMole’s DNS plugin uses port 53 for C&C communication. |
T1090 | Connection Proxy | InvisiMole’s TCP downloader is able to utilize user-configured proxy servers for C&C communication. | |
T1024 | Custom Cryptographic Protocol | InvisiMole’s TCP and DNS downloaders use a custom cryptographic protocol for encrypting network communication. | |
T1132 | Data Encoding | InvisiMole’s DNS downloader uses a variation of base32 encoding to encode data into the subdomain in its requests. | |
T1008 | Fallback Channels | InvisiMole’s TCP and DNS downloaders are configured with several C&C servers. | |
T1105 | Remote File Copy | InvisiMole’s TCP and DNS downloaders can download additional files to be executed on the compromised system. | |
T1071 | Standard Application Layer Protocol | InvisiMole’s DNS downloader uses DNS protocol for C&C communication. | |
T1095 | Standard Non-Application Layer Protocol | InvisiMole’s TCP downloader uses TCP protocol for C&C communication. | |
T1065 | Uncommonly Used Port | InvisiMole’s TCP downloader uses port 1922 for C&C communication. |
Backdoor RC2CL
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1059 | Command-Line Interface | RC2CL backdoor can create a remote shell to execute commands. |
T1106 | Execution through API | RC2CL backdoor uses CreateProcess and CreateProcessAsUser APIs to execute files. | |
Privilege Escalation | T1134 | Access Token Manipulation | RC2CL backdoor can use CreateProcessAsUser API to start a new process under the context of another user or process. |
T1088 | Bypass User Account Control | RC2CL backdoor can disable and bypass UAC to obtain elevated privileges. | |
Defense Evasion | T1090 | Connection Proxy | RC2CL backdoor can be configured as a proxy relaying communication between other compromised computers and C&C server. |
T1140 | Deobfuscate/Decode Files or Information | RC2CL backdoor decrypts strings using variations of XOR cipher. | |
T1089 | Disabling Security Tools | RC2CL backdoor is able to disable Windows firewall. | |
T1107 | File Deletion | RC2CL backdoor can delete dropped artifacts, and various files on-demand following a delete command. RC2CL backdoor can safely delete files to thwart forensic analysis. |
|
T1112 | Modify Registry | RC2CL backdoor hides its configuration within registry keys. | |
T1027 | Obfuscated Files or Information | RC2CL backdoor obfuscates/encrypts strings and code to make analysis more difficult. | |
T1099 | Timestomp | RC2CL backdoor modifies timestamps of files that it creates/modifies. | |
T1497 | Virtualization/Sandbox Evasion | RC2CL backdoor is able to detect virtualized environments. | |
Discovery | T1087 | Account Discovery | RC2CL backdoor can list account information and session information. |
T1010 | Application Window Discovery | RC2CL backdoor can list information about active windows. | |
T1083 | File and Directory Discovery | RC2CL backdoor can list files, and specifically recently opened files, and list information about mapped/unmapped drives. | |
T1046 | Network Service Scanning | RC2CL backdoor is able to scan the compromised network for hosts vulnerable to EternalBlue vulnerability. | |
T1057 | Process Discovery | RC2CL backdoor can list running processes. | |
T1012 | Query Registry | RC2CL backdoor can query registry to obtain information about installed software, applications accessed by users, applications executed on user login/system start, recently opened files, | |
T1063 | Security Software Discovery | RC2CL backdoor modifies its behavior if Bitdefender firewall is enabled, or if selected AV processes are detected running. | |
T1518 | Software Discovery | RC2CL backdoor can list installed software, recently accessed software by users, software executed on each user login and/or each system start. | |
T1082 | System Information Discovery | RC2CL backdoor can list information about loaded drivers, computer name, OS version, memory status, local time, system and process DEP policy. | |
T1016 | System Network Configuration Discovery | RC2CL backdoor can list IP table; configured proxy information; information about enabled wireless networks for geolocation of the victims. | |
T1007 | System Service Discovery | RC2CL backdoor can list system service information. | |
Collection | T1123 | Audio Capture | RC2CL backdoor can record the sounds from microphones on a computer. RC2FM misuses a legitimate lame.dll for MP3 encoding of the recordings. |
T1005 | Data from Local System | RC2CL backdoor can collect data from the system, and can monitor changes in specified directories. | |
T1074 | Data Staged | RC2CL backdoor can store collected data in a central location for a later exfiltration. | |
T1113 | Screen Capture | RC2CL backdoor can capture screenshots of the victim’s screen. RC2CL backdoor can also capture screenshots of separate windows. | |
T1125 | Video Capture | RC2CL backdoor can access victim’s webcam and capture photos/record videos. | |
Command and Control | T1008 | Fallback Channels | RC2CL backdoor is configured with several C&C servers. Via a backdoor command, it is possible to extend the list and change which C&C server is used. |
T1105 | Remote File Copy | InvisiMole can download additional files to be executed on the compromised system. | |
T1065 | Uncommonly Used Port | RC2CL backdoor uses port 1922 for C&C communication. | |
Exfiltration | T1002 | Data Compressed | RC2CL backdoor can create zlib and SFX archives. It misuses a copy of the legitimate WinRAR tool for compression and decompression. |
T1022 | Data Encrypted | RC2CL backdoor uses variations of XOR cipher to encrypt data. | |
T1041 | Exfiltration Over Command and Control Channel | RC2CL backdoor exfiltrates collected information over its C&C channel. |
Backdoor RC2FM
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1059 | Command-Line Interface | RC2FM backdoor can create a remote shell to execute commands. |
T1106 | Execution through API | RC2FM backdoor supports a command that uses ShellExecute and CreateProcess APIs to execute files. | |
Privilege Escalation | T1088 | Bypass User Account Control | RC2FM backdoor can bypass UAC to obtain elevated privileges. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | RC2FM backdoor decrypts strings using variations of XOR cipher. |
T1107 | File Deletion | RC2FM backdoor can delete dropped artifacts, and various files on-demand following a delete command. | |
T1143 | Hidden Window | RC2FM backdoor uses CREATE_NO_WINDOW creation flag to execute malware in a hidden window. | |
T1112 | Modify Registry | RC2FM backdoor hides its configuration within registry keys. | |
T1027 | Obfuscated Files or Information | RC2FM backdoor obfuscates/encrypts strings and code to make analysis more difficult. | |
T1055 | Process Injection | RC2FM backdoor can inject itself into ctfmon.exe , dwm.exe , sihost.exe and taskhost.exe processes. | |
T1085 | Rundll32 | RC2FM backdoor uses rundll32.exe to load a stub DLL into which it then injects itself. | |
T1099 | Timestamp | RC2FM backdoor modifies timestamps of files that it creates/modifies. | |
T1497 | Virtualization/Sandbox Evasion | RC2FM backdoor is able to detect virtualized environments. | |
Discovery | T1083 | File and Directory Discovery | RC2FM backdoor collects information about mapped drives. It can list files in a specific folder. |
T1135 | Network Share Discovery | RC2FM backdoor can list connected network shares. | |
T1057 | Process Discovery | RC2FM backdoor can list running processes. | |
T1082 | System Information Discovery | RC2FM backdoor collects computer name and system volume serial number. | |
T1016 | System Network Configuration Discovery | RC2FM backdoor lists information about configured proxy servers. | |
Collection | T1123 | Audio Capture | RC2FM backdoor can record the sounds from microphones on a computer. It misuses a legitimate lame.dll for MP3 encoding of the recordings. |
T1025 | Data from Removable Media | RC2FM backdoor can collect jpeg files from connected MTP devices. | |
T1056 | Input Capture | RC2FM backdoor can collect keystrokes. | |
T1113 | Screen Capture | RC2FM backdoor can capture screenshots of the victim’s screen. | |
Command and Control | T1043 | Commonly Used Port | RC2FM backdoor uses port 80 for C&C communication. |
T1090 | Connection Proxy | RC2FM backdoor can use proxies configured on the local system, for various installed and portable browsers, if direct connection to the C&C server fails. | |
T1008 | Fallback Channels | RC2FM backdoor is configured with several C&C servers. It is possible to update the C&C server by a backdoor command. | |
T1105 | Remote File Copy | InvisiMole can download additional files to be executed on the compromised system. | |
T1071 | Standard Application Layer Protocol | RC2FM backdoor uses HTTP for C&C communication. | |
Exfiltration | T1022 | Data Encrypted | RC2FM backdoor uses variations of XOR cipher to encrypt data. |
T1041 | Exfiltration Over Command and Control Channel | RC2FM backdoor exfiltrates collected information over its C&C channel. |