Mekotio: Estas no son las actualizaciones de seguridad que estás buscando …


Otro en nuestra serie ocasional que desmitifica a los troyanos bancarios latinoamericanos

En esta entrega de nuestra serie, presentamos Mekotio, un troyano bancario latinoamericano dirigido principalmente a Brasil, Chile, México, España, Perú y Portugal. La característica más notable de las variantes más recientes de esta familia de malware es el uso de una base de datos SQL como servidor C&C.

Figura 1. Países afectados por Mekotio

Al igual que con muchos otros troyanos bancarios latinoamericanos que hemos descrito anteriormente en esta serie, Mekotio ha seguido un camino de desarrollo bastante caótico, y sus características se modifican con mucha frecuencia. Según su versión interna, creemos que se están desarrollando múltiples variantes simultáneamente. Sin embargo, similar a Casbaneiro, estas variantes son prácticamente imposibles de separar unas de otras, por lo que nos referiremos a todas ellas como Mekotio.

Caracteristicas

Mekotio es un típico troyano bancario latinoamericano que ha estado activo desde al menos 2015. Como tal, ataca mostrando ventanas emergentes falsas a sus víctimas, tratando de atraerlas para que divulguen información confidencial. Estas ventanas están cuidadosamente diseñadas para apuntar a bancos latinoamericanos y otras instituciones financieras.

Mekotio recopila la siguiente información sobre sus víctimas:

  • Configuración de firewall
  • Si la víctima tiene privilegios administrativos
  • Versión del sistema operativo Windows instalado
  • Si los productos de protección antifraude (GAS Tecnologia Warsaw e IBM Trusteer(1)) están instalados
  • Lista de soluciones antimalware instaladas

Mekotio garantiza la persistencia mediante el uso de una tecla Ejecutar o la creación de un archivo LNK en la carpeta de inicio.

Como es común para la mayoría de los troyanos bancarios latinoamericanos, Mekotio tiene varias capacidades típicas de puerta trasera. Puede tomar capturas de pantalla, manipular ventanas, simular acciones del mouse y del teclado, reiniciar la máquina, restringir el acceso a varios sitios web bancarios y actualizarse. Algunas variantes también pueden robar bitcoins reemplazando una billetera de bitcoin en el portapapeles y exfiltrar las credenciales almacenadas por el navegador Google Chrome. Curiosamente, un comando aparentemente tiene la intención de paralizar la máquina de la víctima al intentar eliminar todos los archivos y carpetas en C: árbol de Windows.

Una forma de identificar Mekotio es un cuadro de mensaje específico que el troyano muestra en varias ocasiones (consulte la Figura 2).

Figura 2. Cuadro de mensaje utilizado por todas las variantes de Mekotio
(traducción: "¡Actualmente estamos realizando actualizaciones de seguridad en el sitio! ¡Inténtelo de nuevo más tarde! Se están adoptando nuevas medidas de seguridad: (1) nuevo complemento de seguridad y (2) nueva apariencia visual del sitio. Su sistema se reiniciará para completar la operación. ")

Para facilitar el robo de contraseñas con su función de registro de teclas, Mekotio deshabilita la opción "Autocompletar" en Internet Explorer. Esta función, cuando está habilitada, ahorra tiempo a los usuarios de Internet Explorer al recordar entradas en varios tipos de campos que se han completado previamente. Mekotio lo apaga cambiando los siguientes valores del Registro de Windows:

  • HKCU Software Microsoft windows CurrentVersion Explorer AutoComplete
  • HKCU Software Microsoft Internet Explorer Main
    • Utilice FormSuggest = "No"
    • FormSuggest Passwords = "No"
    • FormSuggest PW Ask = "No"

Para un análisis en profundidad de una variante específica de Mekotio dirigida a Chile, consulte esta Artículo publicado recientemente por ESET (en español).

Creemos que el principal método de distribución de Mekotio es el spam (consulte la Figura 3 para ver un ejemplo). Desde 2018, hemos observado 38 cadenas de distribución diferentes utilizadas por esta familia. La mayoría de estas cadenas constan de varias etapas y terminan descargando un archivo ZIP, como es típico de los troyanos bancarios latinoamericanos. Analizamos las dos cadenas más utilizadas en las siguientes secciones.

Figura 3. Ejemplo de correo electrónico no deseado que distribuye Mekotio
(Traducción: “Estimado ciudadano, Su recibo solicitado:… Descargar recibo”)

Cadena 1: pasar contexto

La primera cadena consta de cuatro etapas consecutivas, como se ilustra en la Figura 4. Un simple cuentagotas BAT suelta un descargador de VBScript y lo ejecuta usando dos parámetros de línea de comando: un verbo HTTP personalizado(2) (“111SA”) y una URL desde la que descargar la siguiente etapa. El descargador descarga la siguiente etapa (otro descargador más) de la URL proporcionada mientras usa un valor de agente de usuario personalizado ("MyCustomUser" y sus variaciones). La tercera etapa descarga un script de PowerShell, corrigiendo la URL desde la cual descargar Mekotio dentro del cuerpo del script, antes de ejecutarlo. Luego, el script de PowerShell descarga Mekotio desde la URL corregida y lo instala y ejecuta (el proceso de ejecución se describe en detalle más adelante).

Figura 4. Una cadena de distribución utilizada por Mekotio que pasa contexto entre etapas

Hay dos cosas interesantes sobre esta cadena. El primero es el uso de valores personalizados tanto para el encabezado User-Agent como para el verbo HTTP. Estos se pueden utilizar para identificar parte de la actividad de la red de Mekotio.

El otro aspecto interesante es el paso de contexto (ya sea como argumentos de línea de comando o modificando el cuerpo de la siguiente etapa). Esta es una forma simple, pero efectiva, de técnica anti-análisis, porque si tiene Downloader 1 sin el Dropper correspondiente, no tendrá ni la URL ni el verbo HTTP personalizado necesarios para obtener la siguiente etapa del malware. Asimismo, tener Downloader 3 sin Downloader 2 es inútil, porque falta la URL. Este enfoque dificulta el análisis sin el conocimiento del contexto.

Cadena 2: MSI con JavaScript integrado

Como ocurre con muchos otros troyanos bancarios latinoamericanos: Mekotio utiliza MSI en algunas de sus últimas cadenas de distribución. En este caso, la cadena es mucho más corta y menos robusta, ya que solo un único JavaScript, que sirve como etapa final, está integrado en el MSI y se ejecuta.

En comparación con la etapa final de PowerShell de la cadena anterior, existen algunas similitudes visibles. La principal (que se muestra en la Figura 5) es la rutina de instalación, llamada después de descargar y extraer el archivo ZIP, que cambia el nombre del contenido del archivo ZIP extraído según el tamaño del archivo. Eso está estrechamente relacionado con el método de ejecución que se describe en la siguiente sección.

Figura 5. Comparación de la rutina de instalación en JavaScript y scripts de PowerShell utilizados por Mekotio, destacando la similitud al basar la decisión en el tamaño del archivo

Ejecución por abuso de intérprete de AutoIt

Mekotio se ejecuta más comúnmente abusando del intérprete legítimo de AutoIt. En este escenario, el archivo ZIP contiene (además del troyano bancario Mekotio) un intérprete legítimo de AutoIt y un pequeño script de inyector o cargador de AutoIt. La etapa final de la cadena de distribución ejecuta el intérprete de AutoIt y le pasa el script del cargador o inyector para que lo interprete. Ese script luego ejecuta el troyano bancario. La figura 6 ilustra todo el proceso.

Figura 6. El método de ejecución más utilizado por Mekotio

Mekotio no es el único troyano bancario latinoamericano que utiliza este método, pero lo favorece significativamente más que sus competidores.

Criptografía

El algoritmo utilizado para cifrar cadenas en los archivos binarios de Mekotio es esencialmente el mismo que usa Casbaneiro. Sin embargo, muchas variantes de Mekotio modifican cómo se procesan los datos antes de ser descifrados. Los primeros bytes de la clave de descifrado codificada pueden ignorarse, al igual que algunos bytes de la cadena cifrada. Algunas variantes codifican aún más cadenas cifradas con base64. Los detalles de estos métodos varían.

Comunicación del servidor C&C

Base de datos SQL como servidor C&C

Algunas variantes de Mekotio basan su protocolo de red en Delphi_Remote_Access_PC, al igual que Casbaneiro. Cuando ese no es el caso, Mekotio utiliza una base de datos SQL como una especie de servidor C&C. Esta técnica es no inaudito en relación con los troyanos bancarios latinoamericanos. En lugar de un comando SELECT, Mekotio parece depender de la ejecución de procedimientos SQL. De esa forma, no queda claro de inmediato cómo se ve la base de datos subyacente. Sin embargo, la cadena de inicio de sesión todavía está codificada en el binario.

Generación de direcciones de servidor C&C

Hemos observado tres algoritmos diferentes sobre cómo Mekotio obtiene la dirección de su servidor C&C. Los describimos a continuación en el orden cronológico en que los encontramos.

Basado en listas codificadas de "dominios falsos"

El primer método se basa en dos listas de dominios codificadas: una para generar el dominio C&C y la otra para el puerto. Se elige un dominio aleatorio de ambas listas y se resuelve. La dirección IP se modifica aún más. Al generar el dominio C&C, se resta un número codificado del último octeto de la dirección IP resuelta. Al generar el puerto C&C, los octetos se unen y se tratan como un número. Para mayor claridad, hemos implementado ambos algoritmos en Python, como se ve en la Figura 7. Observe que este enfoque es sorprendentemente similar al utilizado por Casbaneiro (marcado como método 5 en el análisis con hipervínculo).

Figura 7. Código para generar dominios y puertos C&C a partir de listas de dominios codificadas

Basado en la hora actual

El segundo enfoque utiliza un DGA basado en la hora local actual (por lo tanto, la zona horaria de la víctima afecta el resultado). El algoritmo toma el día actual de la semana, el día del mes y la hora y los usa para generar una sola cadena. Luego calcula el MD5 de esa cadena, representada como una cadena hexadecimal. El resultado unido con un sufijo codificado es el dominio del servidor C&C (su puerto está codificado en el binario). La Figura 8 muestra nuestra implementación de Python de este algoritmo.

Figura 8. Código para generar dominio C&C basado en la hora actual

Basado en el día actual

El tercer algoritmo es algo similar al segundo. Se diferencia en el formato de la cadena creada a partir de la hora local y en el hecho de que utiliza un sufijo diferente cada día. Además, genera el puerto C&C de manera similar. Una vez más, la reimplementación de Python del código se ilustra en la Figura 9.

Figura 9. Código para generar dominio y puerto C&C basado en el día actual

¿Varias variantes concurrentes?

Ya mencionamos que, al igual que otros troyanos bancarios latinoamericanos, Mekotio sigue un ciclo de desarrollo bastante caótico. Sin embargo, además de eso, hay indicadores de que hay múltiples variantes de Mekotio que se están desarrollando simultáneamente.

Los dos indicadores principales son el control de versiones interno y el formato de la cadena utilizada para extraer información sobre la máquina de la víctima recopilada por Mekotio. Hemos identificado cuatro esquemas de control de versiones diferentes:

  • Numeración (001, 002, 072, 39A,…)
  • Versión por fecha (01-07, 15-06, 17-10, 20-09,…)
  • Versión por fecha completa (02_03_20, 13_03_20, 26_05_20,…)
  • Numeración y fecha combinadas (103–30-09, 279–07-05, 293–25-05,…)

Cada uno de estos esquemas está asociado con un formato específico de la cadena de datos extraídos. Dado que vemos varios de estos esquemas simultáneamente, creemos que puede haber múltiples actores de amenazas que utilizan diferentes variantes de Mekotio.

Conclusión

En esta publicación de blog, analizamos Mekotio, un troyano bancario latinoamericano activo desde al menos 2015. Como en los otros troyanos bancarios descritos en esta serie, Mekotio comparte características comunes para este tipo de malware, como estar escrito en Delphi, usando ventanas emergentes falsas, que contienen funcionalidad de puerta trasera y están dirigidas a países de habla hispana y portuguesa.

Nos hemos centrado en las características más interesantes de este troyano bancario, como su método principal de ejecución abusando del intérprete legítimo de AutoIt, utilizando la base de datos SQL como servidor C&C o los diferentes métodos que usa Mekotio para generar la dirección de su servidor C&C.

También hemos mencionado varias características que son sorprendentemente similares a Casbaneiro.

Para cualquier consulta, contáctenos en Threatintel@eset.com. Los indicadores de compromiso también se pueden encontrar en nuestro repositorio de GitHub.

Indicadores de compromiso (IoC)

Hashes

Muestras de Mekotio

SHA-1 Descripción Nombre de detección de ESET
AEA1FD2062CD6E1C0430CA36967D359F922A2EC3 Troyano bancario Mekotio (variante SQL) Win32 / Spy.Mekotio.CQ
8CBD4BE36646E98C9D8C18DA954942620E515F32 Troyano bancario Mekotio Win32 / Spy.Mekotio.O
297C2EDE67AE6F4C27858DCB0E84C495A57A7677 Troyano bancario Mekotio Win32 / Spy.Mekotio.DD
511C7CFC2B942ED9FD7F99E309A81CEBD1228B50 Troyano bancario Mekotio Win32 / Spy.Mekotio.T
47C3C058B651A04CA7C0FF54F883A05E2A3D0B90 Troyano bancario Mekotio Win32 / Spy.Mekotio.CD

Intérprete legítimo de AutoIt abusado

SHA-1 Descripción Nombre de detección de ESET
ACC07666F4C1D4461D3E1C263CF6A194A8DD1544 Intérprete de secuencias de comandos AutoIt v3 limpiar

Red de comunicacion

  • Agente de usuario: "MyCustomUser", "4M5yC6u4stom5U8se3r" (y otras variaciones)
  • Verbo HTTP: "111SA"

Carteras Bitcoin

  • 1PkVmYNiT6mobnDgq8M6YLXWqFraW2jdAk
  • 159cFxcSSpup2D4NSZiuBXgsGfgxWCHppv
  • 1H35EiMsXDeDJif2fTC98i81n4JBVFfru6

Técnicas MITRE ATT & CK

Nota: esta tabla fue construida usando versión 7 del marco MITRE ATT & CK.

Táctica CARNÉ DE IDENTIDAD Nombre Descripción
Acceso inicial T1566.002 Phishing: enlace de spearphishing Las cadenas de distribución de Mekotio comienzan con un enlace malicioso en un correo electrónico.
Ejecución T1059 Intérprete de comandos y secuencias de comandos Mekotio se ejecuta más comúnmente abusando del intérprete legítimo de AutoIt.
T1059.001 Intérprete de comandos y secuencias de comandos: PowerShell Utiliza PowerShell para ejecutar las etapas de su cadena de distribución.
T1059.005 Intérprete de comandos y secuencias de comandos: Visual Basic Utiliza VBScript para ejecutar las etapas de su cadena de distribución.
Persistencia T1547.001 Ejecución de inicio automático de inicio o inicio de sesión: claves de ejecución del registro / carpeta de inicio Mekotio asegura la persistencia usando una tecla Ejecutar o creando un archivo LNK en la carpeta de inicio.
Evasión de defensa T1218 Ejecución de proxy binario firmado Mekotio se ejecuta ejecutando un intérprete AutoIt legítimo y pasando un script de carga para que lo interprete.
Acceso a credenciales T1555.003 Credenciales de almacenes de contraseñas: Credenciales de navegadores web Mekotio roba las credenciales del navegador Google Chrome.
Descubrimiento T1010 Descubrimiento de la ventana de la aplicación Mekotio descubre varias herramientas de seguridad y aplicaciones bancarias basadas en nombres de ventanas.
T1083 Descubrimiento de archivos y directorios Mekotio descubre un software de protección bancaria basado en las rutas del sistema de archivos.
T1518.001 Descubrimiento de software: descubrimiento de software de seguridad Mekotio detecta la presencia de productos de protección bancaria.
T1082 Descubrimiento de información del sistema Mekotio recopila información sobre la máquina de la víctima, como el estado del firewall y la versión de Windows.
Colección T1056.001 Captura de entrada: registro de teclas Mekotio es capaz de capturar pulsaciones de teclas.
Comando y control T1568.002 Resolución dinámica: algoritmos de generación de dominios Mekotio genera su dominio C&C usando un DGA.
T1568.003 Resolución dinámica: cálculo de DNS Mekotio utiliza un algoritmo para modificar la dirección IP resuelta para obtener la dirección C&C real.
T1095 Protocolo de capa que no es de aplicación El protocolo de red de Mekotio en variantes que no usan SQL se basa en Remote_Delphi_Access_PC.
Exfiltración T1041 Exfiltración sobre canal C2 Mekotio envía los datos que recupera a su servidor C&C.

(1) Soluciones antifraude utilizadas con mucha frecuencia en Latinoamérica.
(2) Los verbos HTTP comunes son GET y POST.





Enlace a la noticia original