Mantenga un registro de las víctimas de alto rango manteniéndose a la sombra. Este es el principio de funcionamiento de dos componentes maliciosos de InvisiMole. Convierten la computadora infectada en una cámara de video de los atacantes, lo que le permite ver y escuchar todo lo que sucede en la oficina o en cualquier otro lugar donde se encuentre el dispositivo. Los operadores de InvisiMole se conectan fácilmente al sistema, monitorean las acciones de la víctima y roban sus secretos.
Según la telemetría de ESET, los atacantes detrás de este
spyware han estado activos desde al menos 2013. Sin embargo, esta herramienta de
ciberespionaje no solo no se estudió, sino que no se detectó hasta que fue detectada por los productos de ESET en computadoras infectadas en Rusia y Ucrania.
La campaña está altamente dirigida, lo que explica el bajo nivel de infección: solo unas pocas docenas de computadoras.
InvisiMole tiene una arquitectura modular, comienza su viaje con una DLL de contenedor (DLL de contenedor), luego hay dos módulos integrados en sus recursos. Ambos módulos son puertas traseras multifuncionales, lo que permite que el Malvari recopile la máxima información sobre el objetivo.
Para desviar la atención del usuario de la máquina infectada, se aplican medidas adicionales. Esto permite que el programa malicioso permanezca en el sistema durante mucho tiempo. Todavía tenemos que establecer el vector de infección: actualmente todas las opciones son posibles, incluida la instalación manual con acceso físico a la máquina.
Instalación y persistencia
La primera parte del malvari bajo investigación es un contenedor DLL compilado usando el compilador
Free Pascal . De acuerdo con nuestros datos de telemetría, la DLL se coloca en la carpeta de Windows y se disfraza como un
mpr.dll
biblioteca
mpr.dll
legítimo con información de versión falsa.
Figura 1. Contenedor DLL disfrazado como un archivo de biblioteca mpr.dll legítimo, copiando el nombre y la información de la versiónNo vimos muestras con otros nombres de contenedor, aunque hay indicaciones en el código DLL de que el archivo también puede llamarse
fxsst.dll
o
winmm.dll
.
La primera forma de iniciar malvari es la técnica de reemplazar las DLL (secuestro de DLL). El contenedor DLL se coloca en la misma carpeta que
explorer.exe
y se carga al inicio de Windows junto con el proceso del Explorador de Windows en lugar de la biblioteca legítima ubicada en la
%windir%\system32
.
Encontramos versiones de Malvari de 32 y 64 bits, que proporcionan persistencia en ambas arquitecturas.
Como alternativa a la suplantación de DLL, son posibles otros métodos de carga y persistencia. El contenedor DLL exporta la función
GetDataLength
. Al llamar a esta función, la DLL comprueba si fue cargada por el proceso
rundll32.exe
usando
explorer.exe
o
svchost.exe
como el proceso padre, y solo entonces inicia la carga útil. Esto sugiere otros métodos posibles para garantizar la persistencia: agregar tareas al planificador (el proceso primario es
svchost.exe
) o escribir en la clave de ejecución automática en el registro (el proceso primario es
explorer.exe
).
Independientemente de cómo se mantenga la persistencia, el comportamiento del malware y la carga útil en sí es el mismo en todos los casos. El contenedor DLL carga el módulo almacenado en los recursos bajo los nombres
RC2FM
y
RC2CL
y (si se usa la sustitución DLL) una biblioteca legítima en el proceso
explorer.exe
para no alterar el funcionamiento normal de la aplicación y pasar desapercibido.
Figura 2. Funciones de contenedor exportadasAnálisis técnico
Se desconoce la fecha exacta de la compilación del malware: los autores modificaron las últimas muestras de contenedor DLL, las marcas de tiempo PE se restablecieron a cero manualmente. Sin embargo, en el curso del estudio, encontramos una versión anterior con fecha del 13 de octubre de 2013, por lo que las nuevas versiones se compilan claramente más tarde.
Figura 3. En todas las muestras posteriores, las marcas de tiempo se establecen en ceroCifrado y descifrado
Para disfrazarse de analistas de virus y administradores de sistemas, los autores del programa malicioso utilizan el cifrado de cadenas, archivos internos, datos de configuración y comunicaciones de red. Mientras que el módulo
RC2FM
utiliza cifrados personalizados, el contenedor DLL y el módulo
RC2CL
utilizan un procedimiento específico para todos los fines, incluido el descifrado de otros módulos maliciosos integrados en el contenedor DLL.
El script con el que puede extraer los
RC2CL
RC2FM
y
RC2CL
del contenedor DLL está disponible en
el repositorio de ESET en GitHub .
Figura 4. Procedimiento de descifrado en varias muestras (descompiladas y desmontadas)Módulo RC2FM
El primer módulo
RC2FM
más
RC2FM
contiene una puerta trasera que admite 15 comandos. Se ejecutan en la computadora infectada según las instrucciones del atacante. El módulo puede realizar varios cambios en el sistema y también incluye herramientas para el ciberespionaje.
Los archivos tienen la opción de iniciar sesión, pero el nombre del registro del sistema no se especifica en la muestra. Esto sugiere que la función se usó solo en la etapa de desarrollo.
Comunicación de red
Este módulo se comunica con los servidores de C&C, que están codificados en la muestra o luego los atacantes los agregan.
Además, el módulo puede acceder al servidor C&C incluso con el proxy configurado en la máquina infectada. Si no se puede establecer una conexión directa, el módulo intenta conectarse a cualquiera de sus servidores de C&C utilizando proxies configurados localmente o proxies configurados para diferentes navegadores (Firefox, Pale Moon y Opera).
RC2FM puede incluso consultar la lista de aplicaciones utilizadas recientemente e intentar encontrar ejecutables de navegador portátiles:
FirefoxPortable.exe
OperaPortable.exe
Ejecute waterfox.exe
OperaAC.exe
Palemoon-Portable.exe
Si la víctima usa uno de estos navegadores portátiles
con el servidor proxy configurado , el malware puede detectarlo en la configuración del usuario y usarlo para comunicarse con sus servidores de C&C.
La comunicación con el servidor C&C es una serie de solicitudes HTTP GET y POST, como se muestra en la Figura 5. La solicitud encriptada contiene la identificación de la PC y la marca de tiempo, así como otra información (opcional). Es importante tener en cuenta que el módulo
RC2FM
utiliza varios métodos de cifrado (variantes del cifrado XOR simple), a diferencia de otros componentes de InvisiMole.
Figura 5. Un ejemplo de una solicitud enviada a un servidor C&C por el módulo RC2FMDespués de registrar con éxito a la víctima en el servidor de C&C, se carga información adicional en el sistema, que será interpretada por el comando de puerta trasera.
Funcionalidad
RC2FM
admite comandos para enumerar información básica del sistema y realizar cambios simples en el sistema, así como varias funciones de spyware. A pedido de los atacantes, el módulo puede encender de forma remota el micrófono en una computadora comprometida y grabar audio. El registro está codificado en formato MP3 utilizando la biblioteca legítima
lame.dll
, que es descargada y utilizada por malware.
Otra herramienta para robar datos son las capturas de pantalla. Uno de los comandos de puerta trasera está diseñado para tomar capturas de pantalla.
Un programa malicioso monitorea todos los discos internos y externos que se muestran en el sistema local. Cuando se conecta una nueva unidad, crea una lista con todos los archivos y la almacena en forma cifrada.
La información recopilada se transmitirá al atacante después de enviar el comando apropiado.
Equipos de puerta trasera
Los siguientes son los ID y las descripciones de los comandos admitidos. La visualización de la función de puerta trasera en el intérprete se muestra en la Figura 6.
0 - Haga listas de discos mostrados, archivos en una carpeta, recursos compartidos de red
2 - Crear, mover, renombrar, ejecutar o eliminar un archivo, eliminar un directorio utilizando la ruta especificada
4 - Abra el archivo, configure el puntero al comienzo del archivo
5 - Cerrar un archivo abierto previamente
6 - Escribir datos en un archivo abierto previamente
7 - Cambiar atributos de archivo de tiempo / eliminar archivo
8 - Abra el archivo, configure el puntero al final del archivo
10 - Cambiar atributos de archivo de tiempo / eliminar archivo
12 - Buscar archivos por la máscara de archivo especificada en el directorio especificado
13 - Toma una captura de pantalla
14 - Carga o modifica archivos usando datos internos
15 - Grabe sonido usando dispositivos de audio conectados, haga una lista de dispositivos disponibles, envíe grabaciones, cambie la configuración
16 - Verifica si hay archivos abiertos en el módulo
17 - Actualizar la lista de servidores C y C
19 - Crear, instalar, copiar, enumerar o eliminar claves o valores de registro especificados
Figura 6. La función de puerta trasera en el intérprete (original y después de nuestro análisis, modificado usando la función de Nodos de Grupo en IDA Pro para facilitar la lectura)Módulo RC2CL
El módulo
RC2CL
también es una puerta trasera con una amplia gama de herramientas de espionaje. Se inicia mediante un contenedor DLL al mismo tiempo que el módulo
RC2FM
. Este es un módulo más complejo, sus funciones están más orientadas a la recolección máxima de información que a realizar cambios en el sistema.
Curiosamente, el módulo
RC2CL
tiene la opción de desactivar la funcionalidad de puerta trasera y funcionar como un proxy. En este caso, el malware cierra el firewall de Windows y crea un servidor que admite la comunicación entre el cliente y el servidor C&C o dos clientes.
Comunicación de red
El malware se comunica con los servidores de C&C a través de un socket TCP. Los mensajes enviados por el cliente están enmascarados bajo el protocolo HTTP, pero debe prestar atención al método HTTP inválido "OCULTAR" en el ejemplo de la Figura 7.
Las solicitudes contienen el identificador del software comprometido, el tipo de solicitud e información cifrada que deben enviar los atacantes, es decir, el resultado de ejecutar comandos de puerta trasera o una solicitud de nuevas instrucciones.
Figura 7. Un ejemplo de una solicitud enviada al servidor de comandos por el módulo RC2CLFuncionalidad
Dependiendo del comando recibido, la puerta trasera puede realizar varias operaciones en el sistema infectado. Las puertas traseras regulares realizan manipulaciones con el sistema de archivos y las claves de registro, admiten la ejecución de archivos y la activación remota de shell. Este spivar es compatible con todos estos equipos e incluso más: 84 equipos permiten a los atacantes recopilar información completa sobre la víctima.
Un programa malicioso escanea una computadora infectada y transfiere varios datos a los atacantes: información del sistema (lista de procesos activos, servicios en ejecución, controladores cargados o discos disponibles), información de red (tabla de direcciones IP, velocidad de conexión a Internet).
InvisiMole puede escanear redes inalámbricas disponibles en un sistema comprometido. Spivar registra información como SSID y direcciones MAC de puntos de acceso Wi-Fi detectados. Estos datos se pueden verificar con bases de datos públicas, lo que permite a los atacantes rastrear la geolocalización de la víctima.
Otros comandos proporcionan información sobre los usuarios de la máquina comprometida, sus cuentas y sesiones anteriores.
De particular interés es el software instalado en una máquina comprometida. ¿Qué programas están instalados en el sistema? ¿Cuál de ellos se inicia automáticamente al iniciar el sistema o al iniciar sesión? ¿Qué programas usa un usuario en particular? Si los atacantes están interesados en algo, solo ingrese un comando para obtener los datos necesarios.
El malware puede obtener un comando para buscar documentos abiertos recientemente y otros archivos interesantes. Puede ver directorios específicos y dispositivos externos, informar cambios y extraer archivos seleccionados por atacantes.
El malware puede activar o desactivar el sistema de administración de cuentas (UAC), o evitarlo y trabajar con archivos en directorios protegidos sin derechos de administrador (más en el
enlace ). Si el malware se ejecuta bajo el proceso
explorer.exe
, que obtiene derechos elevados automáticamente, puede crear un objeto COM y usarlo para eliminar y mover archivos en áreas que requieren derechos de administrador.
Además, InvisiMole puede encender de forma remota la cámara web y el micrófono de la víctima, espiar tomando fotos o grabando sonido. Los atacantes pueden monitorear la actividad en el dispositivo tomando capturas de pantalla. Lo que es especialmente interesante, InvisiMole le permite tomar capturas de pantalla no solo de toda la pantalla, sino también de cada ventana abierta. Esto permite a los atacantes recopilar información incluso cuando las ventanas se cierran entre sí.
Uno de los comandos de puerta trasera le permite reemplazar el contenido de los controladores con los siguientes nombres:
blbdrive.sys
compbatt.sys
secdrv.sys
No observamos el uso de este comando por parte de los atacantes, pero podemos suponer que se usa para proporcionar persistencia adicional en sistemas de 32 bits.
La puerta trasera puede interferir con el sistema (por ejemplo, iniciar sesión como usuario, completar el proceso o apagar el sistema), pero principalmente proporciona operaciones pasivas. El programa intenta ocultar su actividad siempre que sea posible.
Entonces, spivar explora lugares interesantes en el sistema, estudia documentos abiertos recientemente o cambia algunos archivos. Estas acciones dejan huellas y pueden causar sospechas de la víctima, ya que después de cada operación de este tipo, cambia el momento de la última modificación del archivo y / o el acceso al mismo. Para evitar la detección, el malware recupera la fecha del cambio anterior o la apertura del archivo para ocultar sus manipulaciones al usuario.
Otro ejemplo de cómo los autores de spayvari intentan evitar la detección es trabajar con rastros que quedan en el disco. Un programa malicioso recopila una gran cantidad de datos confidenciales que se almacenan en archivos durante algún tiempo y se eliminan después de una carga exitosa a los servidores C&C. El problema es que un administrador experimentado del sistema puede recuperar archivos borrados, lo que ayudará a investigar el ataque después de que la víctima se entere del compromiso. Esto es posible porque queda algo de información en el disco incluso después de eliminar el archivo. Para evitar esto, InvisiMole tiene la opción de eliminar de forma segura todos los archivos. Esto significa que primero los datos se sobrescriben con cero o bytes aleatorios, y solo después de eso se elimina el archivo.
Memoria incorporada
La configuración de puerta trasera y los datos recopilados se almacenan en dos direcciones: este es el directorio de trabajo y las claves de registro. Una parte importante de los comandos de puerta trasera está diseñada para manipular estas ubicaciones de almacenamiento de datos y sus contenidos.
La ubicación del directorio de trabajo se determina mediante comandos de un servidor remoto. El directorio se utiliza como almacenamiento temporal de archivos que contienen información recopilada de una computadora comprometida. Estos archivos tienen un método de denominación común, algoritmo de cifrado y estructura. Están encriptados con una versión simple del cifrado XOR, que se utiliza en los componentes de malvari. El tipo de archivo puede obtenerse de la secuencia de control de 4 bytes ubicada al comienzo del archivo.
Además de almacenar los datos recopilados, el directorio se utiliza como directorio de inicio para una copia de la aplicación legítima WinRAR.exe. Malvar lo copia y lo usa para archivar datos robados.
El registro almacena datos de configuración, así como una lista de archivos en el directorio de trabajo. Los datos se empaquetan usando el procedimiento Zlib implementado en el archivo binario malvari, y se encriptan usando el mismo cifrado que los archivos internos.

Equipos de puerta trasera
Más de ochenta comandos de puerta trasera utilizan el directorio de trabajo y las claves de registro para almacenar resultados intermedios y datos de configuración. El gráfico con la puerta trasera en el intérprete se muestra en la Figura 8.
Alrededor de un tercio de todos los comandos se relacionan con la lectura y actualización de los datos de configuración almacenados en el registro. Las ID y descripciones de los comandos restantes se enumeran a continuación.
4 - Haga una lista de información de archivo en el directorio
6 - Descargar archivo
20 - Lista de procesos activos
22 - Finalizar el proceso por ID
24 - Ejecutar archivo
26 - Eliminar archivo
28 - Obtener tabla de reenvío de IP
30 - Escribir datos en un archivo
31 - Inacción
38 - Haga una lista de cuentas
40 - Haga una lista de servicios en el sistema
42 - Haga una lista de controladores cargados
43 - Recopilar información básica del sistema (nombre de la computadora, versión del sistema operativo, estado de la memoria, hora local, información del disco, información sobre proxies configurados, política actual de prevención de ejecución de datos para el sistema y procesos, etc.)
44 - Haga una lista de software instalado
46 - Lista de usuarios locales e información de sesión
48 - Haga una lista de aplicaciones utilizadas por los usuarios
52 - Crear estructura de directorios
78 - Crear Shell Remoto
81 - Ejecute el comando a través del shell remoto
91 - Activar / Desactivar Control de cuenta de usuario
93 - Sesión de usuario final / apagado / reinicio del sistema
101 - Seguimiento y registro de cambios en directorios especificados
103 - Eliminar directorio
109 - Enciende / apaga el monitor / activa el modo de espera
120 - Tome una captura de pantalla de la pantalla / ventanas activas
126 - Tome una captura de pantalla de la pantalla / ventanas activas y actualice los datos de configuración
130 - Lista de información de recursos en discos no asignados
132 - Cambiar el nombre / mover el archivo, cambiar el tiempo de creación / apertura / escritura del archivo al especificado
134 - Lista de archivos abiertos recientemente
152 - Desconectar unidades extraíbles (previamente conectadas)
155 - Crear / eliminar clave de registro, establecer / eliminar valores de clave de registro o enumerar valores / claves / datos de registro
159, 161: apague el enrutamiento / firewall, cree un servidor proxy en un puerto específico
172 - Repita el cuadro de diálogo pidiendo reiniciar la computadora
175 - Omitir el control de la cuenta de usuario para la manipulación de archivos
177 - Crear y escribir un archivo, establecer datos en el momento de la creación / apertura / cambio
181 - Eliminar todos los puntos de restauración del sistema
183 - Restablecer componente (legítimo) de una aplicación WinRAR
185 - Agregar archivos al archivo protegido por contraseña (contraseña = "12KsNh92Dwd")
187 - Descifrar, descomprimir y cargar la DLL, cargar archivos exe desde RC2CL, recursos RC2FM
189 - Crear un punto de restauración del sistema
191 - Extraer archivo protegido por contraseña (12KsNh92Dwd)
193 - Cambiar el archivo encriptado
195 - Reiniciar después de completar el proceso principal
197 - Enviar 198 bytes de datos codificados en un patrón
199 - Cambiar nombre / mover archivo
206 - Descifrar, descomprimir y descargar la DLL, cargar archivos exe desde RC2CL, recursos de RC2FM
211: descargue la información recopilada (capturas de pantalla, grabaciones de audio, etc.)
213 - Haga una lista de ventanas activas
218 - API para grabar audio desde dispositivos de entrada
220 - API para tomar fotos desde una cámara web
224 - Haga una lista de archivos ejecutados en cada inicio del sistema
226 - Haga una lista de redes inalámbricas habilitadas (dirección MAC, SSID, intervalo de señalización)
228 - Restablecer paquete comprimido de Zlib
Figura 8. La función de puerta trasera en el intérprete (original y modificada utilizando la función Nodos de grupo en IDA Pro para facilitar la lectura)Conclusión
InvisiMole es un software espía con todas las funciones que ofrece amplias funciones que pueden competir con otras conocidas herramientas de espionaje cibernético.
Uno solo puede adivinar por qué los autores usan dos módulos con funciones duplicadas.
Se podría suponer que el módulo más pequeño, se RC2FM
utiliza en la primera etapa de reconocimiento, y el más grande, se RC2CL
ejecuta solo en máquinas que interesan a los operadores. Pero esto no es así: se lanzan dos módulos simultáneamente. La segunda explicación posible: los módulos son ensamblados por diferentes autores y luego combinados para proporcionar a los operadores un máximo de herramientas.InvisiMole utiliza solo algunas técnicas para evitar la detección y el análisis. Sin embargo, dado que el spyware se utilizó en ataques contra un pequeño número de objetivos de alto rango, logró evitar la detección durante al menos cinco años.Indicadores de compromiso (IoC)
Detección de 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
SHA-1 hashes
5EE6E0410052029EAFA10D1669AE3AA04B508BF9
2FCC87AB226F4A1CC713B13A12421468C82CD586
B6BA65A48FFEB800C29822265190B8EAEA3935B1
C8C4B6BCB4B583BA69663EC3AED8E1E01F310F9F
A5A20BC333F22FD89C34A532680173CBCD287FF8
Nombres de dominio del servidor C y C
activationstate.sytes[.]net
advstatecheck.sytes[.]net
akamai.sytes[.]net
statbfnl.sytes[.]net
updchecking.sytes[.]net
Direcciones IP de servidores C&C y período de actividad
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
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"
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%