Como parte de nuestro seguimiento de InvisiMole, grupo del cual informamos por primera vez en 2018 y que hemos redescubierto, detectamos una nueva campaña dirigida a organizaciones de alto perfil en Europa del Este. Al investigar los ataques, en estrecha cooperación con las organizaciones afectadas, descubrimos las actualizaciones que los responsables detrás de este grupo implementaron en su conjunto de herramientas, así como otros detalles previamente desconocidos sobre las tácticas, herramientas y procedimientos (TTP) de InvisiMole.
En este artículo resumimos parte de los hallazgos que publicamos de forma completa en nuestro white paper, InvisiMole: The hidden part of the story.
El grupo InvisiMole es un actor de amenazas que opera al menos desde el año 2013. Anteriormente documentamos sus dos backdoors, RC2CL y RC2FM, los cuales se destacan por sus amplias capacidades de espionaje. Sin embargo, nos faltaba una parte de la historia, ya que no sabíamos cómo esos backdoors habían sido entregados a sus víctimas, cómo se habían distribuido o cómo se habían instalado en el sistema.
En esta reciente campaña en la que apunta a un pequeño número de organizaciones de alto perfil en el sector militar y misiones diplomáticas, ambas en Europa del Este, el grupo InvisiMole ha resurgido con un conjunto de herramientas actualizadas. Según datos de nuestra telemetría, los intentos de ataque se han estado llevando adelante desde finales de 2019 hasta el momento de escribir este informe.
Gracias a la investigación que realizamos de estos ataques en cooperación con las organizaciones afectadas, pudimos exponer el funcionamiento interno del conjunto de herramientas actualizado que es utilizado por InvisiMole.
Entre otras cosas, descubrimos que el arsenal de InvisiMole solo es liberado después de que otro grupo de amenazas, más específicamente Gamaredon, ya logró infiltrarse en la red de interés y posiblemente obtuvo privilegios administrativos. Esto permite al grupo InvisiMole idear formas creativas de operar bajo el radar.
Por ejemplo, los atacantes usan largas cadenas de ejecución diseñadas a partir de la combinación de código malicioso con herramientas legítimas y ejecutables vulnerables. Utilizan tunneling de DNS para que las comunicaciones con el C&C sean más sigilosas y colocan “guardrails” de ejecución en los componentes maliciosos para ocultar el malware de los investigadores de seguridad.
Mecanismo de entrega
Durante nuestra investigación descubrimos que InvisiMole es introducido a los sistemas comprometidos por un downloader .NET detectado por los productos de ESET como MSIL/Pterodo, obra del grupo Gamaredon. Gamaredon es un actor de amenazas que opera desde al menos 2013, caracterizado por un rápido desarrollo y por realizar pocos esfuerzos para mantenerse bajo el radar de detección. Recientemente documentamos los componentes más nuevos de Gamaredon, distribuidos a través de correos electrónicos de spearphishing y moviéndose lateralmente lo más lejos posible dentro de la red de la víctima, mientras toma las huellas digitales de las máquinas.
Nuestra investigación muestra que Gamaredon es utilizado para allanar el camino para la llegada de un payload mucho más sigiloso: según nuestra telemetría, un pequeño número de los blancos de ataque de Gamaredon son "actualizadas" con el malware avanzado InvisiMole; probablemente aquellos considerados particularmente significativos por los atacantes.
Como detallamos en el white paper, a pesar de la evidencia de colaboración, consideramos que Gamaredon e InvisiMole son dos grupos distintos que utilizan TTP diferentes.
Mecanismos de distribución y actualización
Documentamos tres formas en las que InvisiMole se propaga dentro de las redes comprometidas:
- Aprovechándose de la vulnerabilidad BlueKeep en el protocolo RDP (CVE-2019-0708)
- Aprovechándose de la vulnerabilidad EternalBlue en el protocolo SMB (CVE-2017-0144)
- Utilizando documentos troyanizados e instaladores de software, los cuales son creados a partir de archivos benignos robados de la organización comprometida.
Para crear los archivos troyanizados, InvisiMole primero roba documentos o instaladores de software de la organización comprometida, y luego crea un archivo SFX empaquetando el archivo con el instalador de InvisiMole. El archivo original se reemplaza con la versión convertida en maliciosa, mientras se conserva su nombre, icono y metadatos. Los atacantes confían en los usuarios para compartir y ejecutar estos archivos.
Esta técnica de movimiento lateral es especialmente poderosa si sucede que el archivo troyanizado es un instalador de software ubicado en un servidor central, un método que suelen utilizar las organizaciones más grandes para distribuir software. De esa manera, InvisiMole se distribuye orgánicamente a muchas computadoras que usan este servidor.
Independientemente del método de difusión, el primer componente de InvisiMole en introducirse a las máquinas recién comprometidas es siempre el downloader TCP de InvisiMole, el cual es una simple y reciente adición al conjunto de herramientas que descarga la siguiente etapa de la infiltración.
La segunda adición al conjunto de herramientas actualizado de InvisiMole, el downloader de DNS, tiene la misma funcionalidad, pero está diseñado para permanecer encubierto y a largo plazo en el equipo de la víctima. Utiliza un método más sigiloso de comunicación con el C&C: una técnica llamada tunneling de DNS (ver Figura 2).
Mediante el tunneling de DNS, el cliente comprometido no contacta directamente con el servidor de C&C; solo se comunica con los servidores DNS benignos con los que la máquina víctima normalmente se comunicaría, donde envía solicitudes para resolver un dominio a su dirección IP. El servidor DNS se pone en contacto con el servidor de nombres responsable del dominio en la solicitud, que es un servidor de nombres controlado por el atacante, y transmite su respuesta al cliente.
La comunicación real con el C&C está embebida en las solicitudes y respuestas de DNS, sin que tenga conocimiento de ello el servidor DNS benigno que opera como intermediario en la comunicación.
Cadenas de ejecución
La característica más notable del nuevo conjunto de herramientas de InvisiMole son sus largas cadenas de ejecución, que se utilizan para desplegar los payloads finales: los backdoors RC2CM y RC2CL actualizados, y los nuevos downloaders TCP y DNS.
Reconstruimos cuatro cadenas de ejecución, utilizadas por los atacantes en diversas situaciones, en función de la versión del sistema operativo de la computadora de la víctima y de si podían obtener privilegios administrativos en el sistema:
- La cadena de abuso del Panel de Control utiliza una técnica poco común conocida por las filtraciones de Vault 7, la cual es utilizada para lograr la ejecución encubierta en el contexto del Panel de control.
- La cadena de explotación de SMInit explota una vulnerabilidad en el software legítimo Total Video Player. Se utiliza en casos donde los atacantes no han logrado obtener privilegios administrativos en el sistema.
- La cadena de explotación de Speedfan explota una vulnerabilidad de escalada de privilegios locales en el controlador speedfan.sys para inyectar su código a un proceso confiable desde el modo kernel.
- La cadena de explotación de Wdigest es la cadena insignia de InvisiMole (la más elaborada) y es utilizada en las versiones más recientes de Windows; donde los atacantes tienen privilegios administrativos. Explota una vulnerabilidad en la biblioteca dll de Windows y luego utiliza una técnica mejorada de ListPlanting para inyectar su código en un proceso confiable.
Los ejecutables vulnerables utilizados en estas cadenas son introducidos en su totalidad en el sistema por InvisiMole: la variación de esta técnica aplicada a un controlador vulnerable ha sido denominada anteriormente por investigadores colegas como Bring Your Own Vulnerable Driver. Para los otros casos, hemos denominado a esta técnica Bring Your Own Vulnerable Software.
Documentamos estas tácticas en detalle en la sección Execution Chains de nuestro white paper.
Nótese el uso intensivo de herramientas legítimas y el cifrado por víctima, tal como se observa en la descripción general de estas cuatro cadenas en la Figura 3. Es parte de la táctica de los operadores de InvisiMole instalar exclusivamente herramientas legítimas y reservar los payloads maliciosos para etapas posteriores.
Para colocar “guardrails” de ejecución y cifrar los payloads individualmente por cada víctima, InvisiMole utiliza una función de Windows llamada API de protección de datos (DPAPI); específicamente:
- la API CryptProtectData para el cifrado de datos
- la API CryptUnprotectData para descifrar datos
Este esquema de cifrado simétrico utiliza una clave derivada de los secretos de inicio de sesión del usuario, por lo que el descifrado debe realizarse en la misma computadora en la que se cifraron los datos.
La Figura 4 muestra un fragmento de un típico loader de InvisiMole que usa CryptUnprotectData para el descifrado y luego verifica si el blob descifrado comienza con un valor mágico de cuatro bytes característico de InvisiMole:
- 64 DA 11 CE para payloads de 64 bits
- 86 DA 11 CE para payloads de 32 bits
InvisiMole abusa de la función DPAPI, pensada para el almacenamiento local de credenciales como contraseñas de Wi-Fi o contraseñas de inicio de sesión en navegadores web, para proteger su payload de los investigadores de seguridad. Incluso si encuentran los componentes de InvisiMole a través de la telemetría o en plataformas de intercambio de malware, no pueden descifrarlos fuera de la computadora de la víctima.
Sin embargo, gracias a la cooperación directa con las organizaciones afectadas, pudimos recuperar los payloads y reconstruir cuatro de las cadenas de ejecución de InvisiMole, las cuales describimos en detalle en el white paper.
Conclusión
Cuando informamos por primera vez en 2018 sobre la actividad de InvisiMole, destacamos su funcionamiento encubierto y su compleja gama de capacidades. Sin embargo, faltaba una gran parte de la historia.
Después de descubrir nueva actividad a fines de 2019, tuvimos la oportunidad de observar más apropiadamente las operaciones de InvisiMole y reconstruir las partes de la historia que nos faltaban. Analizando el conjunto de herramientas actualizadas del grupo, observamos un desarrollo continuo y mejoras sustanciales, con un especial enfoque en permanecer sin ser detectado.
Nuestra investigación también reveló una cooperación previamente desconocida entre InvisiMole y el grupo Gamaredon, con el malware Gamaredon utilizado para infiltrarse en la red objetivo y lanzar el sofisticado malware InvisiMole a objetivos de especial interés para el grupo.
Después de haber proporcionado un informe detallado sobre los TTP de InvisiMole, continuaremos rastreando las actividades maliciosas del grupo.
Los nombres de detección de ESET y otros indicadores de compromiso para estas campañas se pueden encontrar en el white paper, InvisiMole: The hidden part of the story.
Agradecimientos a los colegas investigadores de malware de ESET Matthieu Faou, Ladislav Janko y Michal Poslušný por su trabajo en esta investigación.
Técnicas de MITRE ATT&CK
Nota: Para una mejor legibilidad, hemos separado los backdoors RC2FM y RC2CL en sus respectivas tablas de mapeo según ATT&CK, debido a sus ricas capacidades. El primer mapeo se refiere a los componentes de soporte de InvisiMole utilizados para la entrega, el movimiento lateral, las cadenas de ejecución y para la descarga de payloads adicionales.
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. |