No es la primera vez que se menciona a Mekotio, una familia de troyanos bancarios que apunta a sistemas Windows presente en Latinoamérica y distribuida a través de campañas maliciosas dirigidas a países específicos, como Chile o España, entre otros. Sin embargo, en esta ocasión analizamos con mayor profundidad sus características, las etapas de sus infecciones y sus capacidades maliciosas, entre las que se destaca el robo de criptomonedas y credenciales bancarias.

Desde su primera detección, en marzo de 2018, los cibercriminales detrás de esta amenaza le han ido aplicando cambios y actualizaciones. Si bien estos cambios han agregado, quitado y/o modificado funcionalidades, el objetivo se mantiene constante: hacer lo posible para obtener dinero o credenciales de acceso del servicio de banca electrónica de sus víctimas. Siguiendo esta línea, nuestros análisis han revelado que, entre todas sus variantes, el malware apunta a más de 51 instituciones bancarias distribuidas en al menos tres países.

Durante la mayor parte de su existencia esta amenaza tuvo como único objetivo a usuarios de países Latinoamericanos, comenzando con un fuerte foco en Brasil y luego centrándose mayoritariamente en Chile. Sin embargo, en el transcurso de los últimos meses se han registrado variantes de Mekotio dirigidas especialmente a usuarios de España, con lo cual puede concluirse que los cibercriminales están expandiendo sus operaciones constantemente.

En cuanto a las detecciones de Mekotio en América Latina, Chile es el país en el que se registra la mayor cantidad por amplia diferencia, seguido por Brasil y México, con un nivel de detecciones medio, y luego por Perú, Colombia, Argentina, Ecuador y Bolivia, que presentan un nivel de detecciones bajo. El resto de los países latinoamericanos no presentaron un nivel de detecciones relevante.

Imagen 1. Nivel de detecciones de Mekotio en países latinoamericanos

Es importante destacar que un bajo número de detecciones no implica que la amenaza no esté presente en otros países de Latinoamérica. A su vez, debe considerarse que, si los atacantes lo consideraran rentable, podría haber nuevas campañas dirigidas específicamente a países que actualmente no presentan detecciones, como es el caso de España.

Este análisis fue realizado principalmente sobre la variante CY de Mekotio, detectado por las soluciones de ESET como Win32/Spy.Mekotio.CY, la cual está dirigida a usuarios de Chile, el país más afectado por esta familia. Sin embargo, muchas de las características, actividades maliciosas y demás observaciones realizadas durante este análisis también aplican a otras variantes distribuidas en otros países, ya que todas forman parte de la misma familia y, por ende, presentan similitudes.

Etapas de infección de Mekotio 

En los años que lleva activo Mekotio se han observado diversos procesos de infección asociados a este código malicioso, variando la cantidad de etapas, los componentes involucrados y demás. Sin embargo, hay una constante entre todos ellos y es la etapa inicial, que comienza por el envío de un correo que contiene un enlace malicioso.

A continuación, se detallará cada una de las etapas involucradas en uno de los procesos de infección utilizados por Mekotio:

Imagen 2. Diagrama con las principales etapas del proceso de infección de Mekotio

Ingeniería social que utiliza Mekotio

El proceso de infección comienza con una campaña de spam. Generalmente, los correos enviados hacen uso de la ingeniería social para simular ser correos legítimos y suplantar la identidad de empresas u organismos gubernamentales con el objetivo de engañar al usuario y lograr que haga clic sobre el enlace malicioso incluido en el cuerpo del mensaje.

Imagen 3. Ejemplo de correo electrónico de spam en el que se puede observar la estrategia empleada por los cibercriminales para que el usuario haca clic en el enlace malicioso

En el ejemplo que se observa en la Imagen 1, la estrategia utilizada para engañar a la potencial víctima es un correo que aparenta provenir de una entidad gubernamental en el cual se envía el comprobante de pago de un impuesto. Esta estrategia suele ser muy efectiva para despertar la curiosidad del usuario, ya que, si éste efectivamente realizó el pago de un impuesto, probablemente esté interesado en guardar el comprobante; si no realizó tal acción, quizá tema que se le haya cobrado algo por error y tenga interés en saber más sobre el asunto. En ambos casos, si el usuario decide abrir el enlace para descargar el supuesto comprobante, ya habrá dado inicio al proceso de infección.

Instalación

Una vez abierto el enlace, comienza la descarga automática de un archivo comprimido .zip. Una vez descomprimido el archivo, nos encontramos con su contenido, un instalador .msi.

Al ejecutar el instalador se llevarán a cabo dos tareas principales:

  • Descarga del payload: descarga un archivo .zip adicional y extrae su contenido en la ruta: “C:\programdata\*nombre aleatorio*\”. Este .zip contiene usualmente cuatro archivos:
    • Intérprete de autoit (.exe): Se trata del intérprete oficial de autoit. Su finalidad es ejecutar las instrucciones del script que se distribuye junto a estos archivos.
    • Script de autoit (.au3): contiene instrucciones para cargar la DLL de Mekotio y ejecutar una de las funciones que esta exporta.
    • Mekotio (.dll): Esta DLL contiene todo el código que llevará a cabo las actividades maliciosas que serán explicadas a continuación.
    • SQLite3 (.dll): Contiene las instrucciones necesarias para que Mekotio pueda robar las contraseñas cifradas almacenadas por los buscadores.
  • Persistencia: una vez descargados y extraídos los cuatro archivos, existen al menos dos opciones, según la variante de Mekotio en cuestión:
    • Se escribe una entrada en alguna de las llaves de autorun del registro, añadiendo un comando para ejecutar el malware.
    • Se agrega un acceso directo en la carpeta de Startup cuyo parámetro será un comando para ejecutar el malware.

De esta manera, Mekotio es ejecutado automáticamente cada vez que se inicia el sistema.

Como puede verse, el instalador cumple la función de downloader y, adicionalmente, establece la persistencia de la amenaza en el dispositivo infectado. Un detalle no menor es que, dado que el intérprete de Autoit ejecuta el script y este carga y ejecuta la DLL, Mekotio se ejecutará en el contexto del intérprete. Esto es importante ya que puede ser de utilidad para identificar si nuestro equipo se encuentra infectado.

Características de Mekotio (.dll)

Las muestras analizadas para este análisis presentan varias características interesantes, siendo algunas similares a las registradas en otras familias de troyanos bancarios de Latinoamérica:

  • Es desarrollado en Embarcadero Delphi
  • Cuenta con protección Anti-VM, monitoreando la presencia de procesos como VBoxService.exe
  • Cuenta con protección Anti-debugging (IsDebuggerPresent)
  • Modifica su comportamiento según el lenguaje del sistema operativo infectado
  • Cuenta con funcionalidad de auto destrucción, es decir, para desactivarse y detener la infección
  • Contiene una gran cantidad de strings cifrados mediante un algoritmo similar a los utilizados en otros troyanos bancarios de Latinoamérica
  • Busca información sobre productos de seguridad instalados en el sistema
  • Es distribuido junto con la biblioteca SQLite3.dll

Actividades maliciosas que realiza Mekotio

Al tratarse de una amenaza sostenida en el tiempo y presente en múltiples países, a través de versiones específicas dirigidas puntualmente a cada uno de ellos, es normal encontrar cierta variabilidad en las actividades maliciosas llevadas a cabo por las diferentes muestras analizadas. Sin embargo, como hemos mencionado, hay un factor común entre todas ellas: buscan robar dinero y/o credenciales bancarias.

A continuación, describiremos los principales comportamientos maliciosos observados en las muestras analizadas:

Robo de credenciales bancarias con ventanas falsas

¿Cómo funciona?

Esta amenaza monitorea constantemente los sitios web a los cuales se accede desde el navegador. En caso de haber ingresado al sitio de alguno de los bancos de interés para los atacantes, el malware desplegará una ventana de inicio de sesión falsa que simula ser de la institución bancaria. El objetivo es que el usuario ingrese allí sus credenciales de acceso al sistema. Una vez obtenidas, las mismas son enviadas a un servidor remoto dedicado a almacenar la información robada. 

¿Quiénes pueden ser víctimas? 

A diferencia de otros troyanos bancarios más genéricos, esta funcionalidad de Mekotio está dirigida específicamente a usuarios de banca electrónica de un conjunto reducido de países. Sin embargo, es importante destacar que no apunta únicamente a usuarios de cuentas bancarias normales sino también a aquellos que ingresan a cuentas empresariales.

Para lograr esto, los atacantes crean numerosas variantes del mismo malware; cada versión está dirigida únicamente a un país puntual. Por tal motivo, es usual encontrar muestras que solo están diseñadas para robar credenciales de los bancos presentes en un determinado país y no de los que operan en otros donde también se encuentra la amenaza. En consecuencia, esta funcionalidad no tiene un alcance muy grande ya que afecta exclusivamente a los usuarios que se infecten con la variante que apunta al país en el cual viven y que, a su vez, sean clientes de alguno de los bancos seleccionados.

Al analizar las muestras dirigidas a Chile, se descubrió que el malware busca robar las credenciales de acceso a los portales de banca electrónica de los 24 bancos con mayor presencia en el país. En el caso de Brasil, la misma dinámica se repite, apuntando a 27 instituciones bancarias. 

Robo de contraseñas almacenadas por navegadores web 

Una peculiaridad que caracteriza a algunas variantes de Mekotio es la capacidad de robar las credenciales de acceso almacenadas en el sistema por algunos navegadores web, como Google Chrome y Opera. Generalmente, al intentar acceder a un sitio web usando un formulario de log-in, el navegador pregunta al usuario si quiere guardar la contraseña en el equipo y, en caso de autorizarlo, procede a hacerlo. Además, junto con la contraseña también se almacena el usuario y el sitio web asociado a la cuenta a la que se acaba ingresar.

Sin embargo, el mecanismo de seguridad utilizado por estos navegadores para proteger las credenciales almacenadas no es efectivo en aquellos casos en que el dispositivo ya se encuentra comprometido por un malware. Esto se debe a que la función de cifrado utilizada al guardar la contraseña está diseñada para que dicha información solo pueda ser descifrada por el mismo usuario del sistema operativo que la cifró en primer lugar. Dado que el malware se ejecuta como una aplicación del usuario, puede descifrar las contraseñas fácilmente. Para más detalles sobre el mecanismo utilizado para robar las contraseñas puede dirigirse a este artículo de WeLiveSecurity.

Una vez obtenidas las contraseñas en texto plano, Mekotio las guarda en un archivo junto con los usuarios y sitios web a los cuales están asociadas y procede a exfiltrarlo a través de un POST a un sitio web probablemente comprometido por los cibercriminales. A partir de este punto, las credenciales del usuario ya se encuentran comprometidas y en poder de los atacantes.

Esta funcionalidad maliciosa no se limita únicamente al robo de credenciales bancarias, sino que afecta a todas las cuentas cuyos datos también hayan sido almacenados en el sistema por estos navegadores. Esto aumenta considerablemente el alcance y el potencial malicioso de Mekotio, pudiendo afectar a cualquier usuario y no solo a aquellos que utilizan servicios de banca electrónica.

Resulta interesante destacar que estos buscadores almacenan las contraseñas cifradas en una base de datos SQLite3, con lo cual el malware debe tener la capacidad para manejar este tipo de base de datos. En función de este objetivo, Mekotio suele ser distribuido junto con la dll “SQLite3.dll”, que contiene todas las instrucciones necesarias para que pueda obtener las contraseñas almacenadas allí. 

Reemplazo de direcciones de billeteras de bitcoin

Esta funcionalidad maliciosa consiste en reemplazar las direcciones de billeteras de bitcoin copiadas al portapapeles por la dirección de la billetera del atacante. De esta manera, si un usuario infectado quiere hacer una transferencia o un depósito a una dirección determinada y utiliza el comando copiar (clic derecho-copiar/ctrl+c) en lugar de escribirla manualmente, al querer pegar (clic derecho-pegar/ctrl+v) no se pegará la dirección a la que pretendía hacerse la transferencia, sino la dirección del atacante. Si el usuario no se percata de esta diferencia y decide continuar con la operación, acabará enviando el dinero directamente al atacante.

Ejemplo de la dinámica: 

Paso 1: un usuario copia la dirección de una billetera de bitcoin en un equipo infectado con Mekotio.

Imagen 4. Se copia la dirección de una billetera de Bitcoin al azar para observar cómo Mekotio la reemplaza en el portapapeles

Paso 2: el usuario pega la dirección que copió previamente.

Imagen 5. Se utiliza el comando “pegar” para observar cómo Mekotio ha reemplazado la dirección en el portapapeles

Paso 3: puede advertirse claramente como la dirección que se pegó en el paso 2 es diferente a la dirección que se copió en el paso 1.

Imagen 6. Puede observarse la diferencia entre la dirección copiada inicialmente y la dirección pegada

Si bien este mecanismo de robo es muy simple y puede ser contrarrestado fácilmente verificando la dirección a la cual se va a transferir, al revisar el historial de transferencias recibidas por las billeteras del atacante puede concluirse que muchas personas fueron víctimas de esta dinámica.

Imagen 7. Balance de una de las direcciones de Bitcoin utilizadas por los cibercriminales donde se registra que recibió transferencias por aproximadamente 0.27 BTC. Puede observarse que los atacantes no mantienen el dinero en sus billeteras, sino que lo transfieren a otras rápidamente, dificultando su seguimiento

Cabe destacar que los cibercriminales detrás de Mekotio no utilizan una única dirección para recibir el dinero robado, sino que cuentan con muchas de ellas. A lo largo de nuestros análisis hemos registrado diferentes variantes de este malware utilizando diferentes direcciones, con lo cual es probable que los atacantes distribuyan nuevas versiones modificando la dirección periódicamente para dificultar su rastreo.

En el caso de la dirección analizada en la imagen 7, puede observarse que recibió 6 transacciones por un total de 0.2678 BTC, aproximadamente 2500 dólares según la cotización actual del Bitcoin. Estas transacciones fueron recibidas durante el período comprendido entre el 25/10/2018 y el 14/06/2020. Es importante tener en cuenta que este tiempo no contempla todo el período de actividad de Mekotio y, a su vez, las transferencias más recientes podrían deberse a infecciones antiguas que no fueron solucionadas. Considerando estos detalles y el hecho de que existen muchas otras direcciones vinculadas a esta amenaza, es posible que el total robado por los atacantes mediante esta funcionalidad supere considerablemente el valor previamente mencionado.

Indicadores de compromiso (IoC)

Persistencia

Buscar rastros de los mecanismos utilizados para lograr la persistencia es una de las maneras más efectivas de detectar esta infección, dado que los mismos no son muy sofisticados. Aquí hay dos opciones según la variante de Mekotio que haya infectado el sistema:

  • Revisar todas las entradas del registro utilizadas para Autorun.
  • Revisar accesos directos en la carpeta de startup.

Tanto el comando utilizado en el acceso directo como el escrito en las entradas de registro deberán hacer referencia a un ejecutable que se corresponderá con el intérprete de Autoit.

Estas ubicaciones pueden ser controladas fácilmente mediante el uso de una herramienta como Autoruns, la cual es parte de Sysinternals de Windows y puede ser descargada en forma gratuita.

Archivos utilizados

Mekotio utiliza varios archivos para almacenar las contraseñas robadas o como indicadores en base a los cuales modifica su comportamiento:

  • C:\Users\*nombre del usuario*\*nombre del interprete AI*.jkl
  • C:\Users\*nombre del usuario*\*nombre del interprete AI*.exe.jpg
  • C:\Users\*nombre del usuario*\Bizarro.txt
  • C:\Users\*nombre del usuario*\V.txt
  • C:\Users\*nombre del usuario*\Ok.txt
  • C:\Users\*nombre del usuario*\Etc

Cabe destacar que la mayoría de estos archivos no coexisten, con lo cual encontrar uno solo ya es motivo suficiente para tener sospechas de una infección y analizar el equipo en profundidad.

Proceso con ícono de Autoit 

Si se encuentra un programa con el logo de Autoit y nombre de apariencia aleatoria (letras sin sentido) siendo ejecutado en nuestro sistema, es muy probable que el equipo esté infectado. Esto puede verificarse utilizando algún software visor de procesos activos, como “Process explorer”.

Imagen 8. Captura de la ventana de Process Explorer, donde se listan los procesos en ejecución. Puede observarse el correspondiente a Mekotio siendo ejecutado en el contexto del intérprete de Autoit

En líneas generales, no es posible visualizar este proceso en el administrador de tareas de Windows, ya que Mekotio utiliza mecanismos para evitar ser listado en él.

Tráfico de red

El tráfico de red entre Mekotio y su C&C implica un frecuente intercambio de mensajes que poseen una estructura muy definida: <|*Comando*|>.

Este formato es respetado tanto por los comandos enviados por Mekotio como por los comandos enviados por el C&C. Algunos ejemplos de comandos utilizados por esta amenaza son:

  • <|vhxboj|>
  • <|WGSGTNU|>
  • <|tksN|>
  • <|VOTM|>
  • <|LSTU|>
  • <|Gpsxi|>
  • <|ZKXAKYWQKEHUGZJ|>
  • <|lozyw|>
  • <|SuaykRJ|>
  • <|SuaykJI|>
  • <|ztUjzwtR|>
  • <|IXjzwtR|>
  • <|utypzjI|>
  • <|WGSGTNU|>

Los intercambios son iniciados por el equipo infectado. Dicho equipo envía un comando seguido de información robada sobre sistema, por ejemplo: sistema operativo, usuario, software de seguridad instalado, etc.

La característica más importante para el usuario del equipo infectado es que parte de ese tráfico viaja sin cifrar. Por lo tanto, si se observa la presencia de strings similares a estos comandos en el tráfico de nuestra red, será conveniente realizar los análisis correspondientes para descartar una infección.

Hashes, sitios web y C&C

Estos elementos suelen ser buenos identificadores de compromiso. En este caso, sin embargo, tienen una efectividad limitada, ya que los cibercriminales detrás de la amenaza se ocupan de que el período de validez de dichos elementos sea muy corto.

  • Hash: las muestras distribuidas suelen contener pequeñas variaciones en su código con el objetivo de que el hash en cada una sea diferente.
  • Sitios web para almacenar contraseñas robadas: si bien son utilizados en múltiples muestras, también presentan variabilidad.
  • Servidores C&C: la dirección IP del C&C es descargada desde un documento público en Google Docs. Los atacantes modifican este documento periódicamente, con lo cual no se utiliza el mismo C&C por periodos prolongados de tiempo.

Consejos para protegerse de Mekotio 

Los usuarios que utilizan servicios de banca electrónica y residen en los países con mayores niveles de detecciones deben mantenerse más alertas. Esto no significa que quienes se encuentran en países que aún no han sido alcanzados por estas campañas no deban tener cierta precaución ya que, si los atacantes comienzan a enfocar sus esfuerzos en nuevas regiones, podrían pasar a ser un nuevo blanco de la amenaza.

Es recomendable entonces aplicar buenas prácticas y criterios de seguridad, medidas suficientes para evitar ser víctimas de Mekotio. Algunas de las más importantes, con relación directa a esta amenaza, son:

  • No abrir enlaces contenidos en correos no deseados.
  • No descargar archivos adjuntos en correos no deseados.
  • En caso de que un archivo comience a descargarse automáticamente, no abrirlo.
  • Ser prudentes al descargar y extraer archivos comprimidos .zip/.rar de fuentes no confiables, ya que suelen ser utilizados para ocultar malware y esquivar ciertos mecanismos de seguridad.
  • Ser especialmente prudentes a la hora de descargar/ejecutar instaladores .msi o ejecutables .exe, verificando su legitimidad y sometiéndolos al análisis de un producto de seguridad.
  • Contar con un producto de seguridad actualizado.
  • Mantener el software de los equipos actualizados.

En cada uno de los puntos mencionados, el objetivo es cortar alguno de los pasos del proceso de infección e instalación. De lograrlo, Mekotio no llegaría a ejecutarse.

Técnicas de MITRE ATT&CK

Táctica ID Nombre Descripción
Initial access T1192 Spearphishing Link El ataque comienza mediante el envío de un link malicioso
T1194

Spearphishing via Service Las direcciones de email personal también son alcanzadas por el spearphishing
Execution T1204 User Execution La etapa inicial de instalación requiere que el usuario ejecute el instalador malicioso
T1064 Scripting El instalador contiene un script malicioso que descarga el malware y lo instala en el sistema
T1129 Execution through Module Load La ejecución de Mekotio comienza cuando el script de Autoit carga la dll y ejecuta la función inicial
T1059 Command-Line Interface A lo largo de su ejecución Mekotio tiene la capacidad para ejecutar varios comandos a través de cmd.exe
Persistence T1060 Registry Run Keys / Startup Folder La persistencia es establecida en una entrada de autorun del registro o mediante un acceso directo en la carpeta de inicio
Defense evasion T1497 Virtualization/Sandbox Evasion Mekotio cuenta con protección para detectar si está siendo ejecutado en una máquina virtual
Credential access T1503 Credentials from Web Browsers Roba credenciales almacenadas por navegadores como Google Chrome y Opera
T1056 Input Capture Roba credenciales bancarias al capturar el input ingresado en ventanas falsas
Collection T1074 Data Staged Almacena la información en archivos específicos para luego exfiltrarla
T1115 Clipboard Data Reemplaza las direcciones de billeteras de Bitcoin presentes en el portapapeles por la dirección del atacante
T1005 Data from Local System Roba datos del sistema como el producto antivirus instalado, versión del SO, usuario, etc
T1119 Automated Collection Toda la extracción de información es automatizada, sin la participación del atacante
T1008 Fallback Channels En caso de que el sitio al que se exfiltra la información este caído se cuenta con otro de respaldo
T1024 Custom Cryptographic Protocol La información para conectarse al C&C se encuentra cifrada mediante un algoritmo custom similar al de otros troyanos bancarios de Latinoamérica.
T1001 Data Obfuscation Los comandos intercambiados con el atacante probablemente se encuentren ofuscados
T1043 Commonly Used Port La información es exfiltrada a través del puerto TCP:80 (HTTP)
Exfiltration T1020 Automated Exfiltration La información es exfiltrada automáticamente, sin intervención del atacante
T1048 Exfiltration Over Alternative Protocol La información es exfiltrada a través del protocolo HTTP
Impact T1529 System Shutdown/Reboot Bajo ciertas condiciones, ejecuta comandos para apagar el equipo