Grandoreiro: análisis de un troyano bancario dirigido a Brasil, España, México y Perú
Como parte de nuestra serie sobre troyanos bancarios de América Latina, en esta oportunidad presentamos a Grandoreiro, un troyano bancario que apunta a usuarios de países como Brasil, México, España y Perú que muestra el gran esfuerzo de sus autores para evadir la detección y la emulación y progresar hacia una arquitectura modular.
Este troyano, que se distribuye únicamente a través de spam, ha estado activo al menos desde 2017 apuntando a Brasil y Perú, pero en 2019 se expandió sumando a México y España entre sus objetivos (consulte la Figura 1 para ver un mapa actual de detección de calor). Los autores suelen utilizar una actualización falsa de Java o Flash, pero recientemente, tal vez como era de esperar, hemos observado que su correo spam también aprovecha el temor por el COVID-19.
Características
El nombre de esta familia de malware fue dado en función de su característica más notable: sus binarios, que crecen en tamaño al menos a unos cientos de megabytes. Su desarrollo es bastante rápido y los cambios de características y adiciones ocurren muy a menudo.
De forma similar a varios de los otros troyanos que hemos analizando como parte de esta serie, este troyano escrito en Delphi ataca a sus víctimas desplegando ventanas emergentes falsas que intentan engañar a las víctimas (haciéndoles creer que se trata de ventanas legítimas de su banco) para que divulguen información confidencial.
Al igual que los demás troyanos bancarios latinoamericanos, cuenta con funcionalidades de backdoor que le permiten manipular ventanas, actualizarse, registrar las pulsaciones de teclado, simular acciones de mouse y teclado, obtener direcciones URL del navegador de la víctima, cerrar sesión de la víctima o reiniciar el equipo y bloquear el acceso a sitios web elegidos.
Además de recopilar información de sus víctimas, como el nombre de la computadora, el nombre de usuario, lista de productos de seguridad instalados o si está instalada una aplicación muy popular en Brasil para proteger el acceso a la banca online, como Warsaw Diebold, de GAS Tecnologia, algunas versiones de Grandoreiro también roban las credenciales almacenadas en el navegador web Google Chrome y los datos almacenados en Microsoft Outlook. Un aspecto que vale la pena destacar es que los autores de Grandoreiro parecen estar permanentemente desarrollando este troyano bancario, ya que observamos varias versiones nuevas cada mes. También sospechamos que están desarrollando al menos dos variantes simultáneamente.
Los autores de este troyano parecen estar enfocados principalmente en dos áreas. La primera, en ocultar la dirección de C&C real usando el Algoritmo de Generación de Dominio (DGA, por sus siglas en inglés). El segundo es hacer que el troyano bancario sea modular. En este sentido, los autores introdujeron por primera vez formularios Delphi independientes para cada uno de los bancos apuntados (lo cual es bastante común), pero últimamente además crearon archivos DLL separados para cada banco objetivo, un enfoque que no habíamos visto antes en ningún otro troyano bancario latinoamericano que hayamos analizado previamente.
Distribución
El spam parece ser el único método de distribución para Grandoreiro. Los correos no deseados parecen contener un enlace que apunta a un sitio web que ofrece actualizaciones falsas de Flash o Java (consulte la Figura 2). Observe la flecha roja en la esquina inferior izquierda adaptada para el navegador web Google Chrome, pero también se muestra en otros navegadores. También hemos visto a Grandoreiro abusar del miedo en torno a COVID-19 (ver Figura 3), como ya anunciamos en nuestra cuenta de Twitter @ESETresearch.
A diferencia de la mayoría de los troyanos bancarios latinoamericanos, Grandoreiro utiliza cadenas de distribución bastante pequeñas. Para diferentes campañas, puede elegir un tipo de downloader diferente, como ilustramos en la Figura 4. Estos downloaders a menudo se almacenan en servicios públicos de intercambio en línea conocidos, como GitHub, Dropbox, Pastebin, 4shared o 4Sync.
El payload final es un archivo ZIP que generalmente está cifrado por el algoritmo que se muestra en la Figura 5 y muchas veces vimos también que está protegido con contraseña.
1
2
3
4
5
6
|
def decrypt_archive(data_enc, key):
data_dec = list()
for (i, c) in enumerate(data_enc):
d = c ^ (~(key >> (i % 32))) & 0xFF
data_dec.append(d)
return data_dec
|
Figura 5. Pseudocódigo del algoritmo de descifrado de archivo utilizado por Grandoreiro
Distribuir el payload final en un archivo ZIP es muy común entre estos troyanos bancarios, pero en el caso de Grandoreiro, tiene una importancia adicional, como verá en la siguiente sección.
Relleno binario: mecanismo para evitar la detección
Una de las particularidades de Grandoreiro es la forma de utilizar la técnica de relleno de binario, la cual hemos visto en códigos maliciosos sofisticados y que busca hacer que los binarios sean grandes, pero no solo agregando una cantidad de basura al final del binario, como hemos observado en otros troyanos bancarios de América Latina, sino que utiliza un enfoque diferente: añade imágenes grandes en formato BMP (generalmente 3) en la sección recursos del archivo ejecutable (PE) de forma que cada binario tenga un tamaño mínimo de 300 MB. Observe en la Figura 6 que el tamaño de todo el EXE es de 425 MB, sin embargo, el tamaño del código es de solo 4 MB y el tamaño de la sección .rsrc es de 419 MB (98.5% del tamaño total). Después de examinar el contenido de la sección .rsrc, vemos tres imágenes con tamaños de 112 MB, 112 MB y 105 MB respectivamente (ocupando el 78.5% del tamaño de la sección). Proporcionamos ejemplos de tales imágenes en la Figura 7.
Por otra parte, debido a la estructura de esos archivos BMP, comprimir el binario en un archivo ZIP produce un archivo de solo unos pocos MB, lo que facilita mucho la distribución del payload. Los archivos BMP parecen cambiar con frecuencia, lo más probable es que eviten la detección. Las imágenes que se muestran en la Figura 7 provienen de tres versiones diferentes de Grandoreiro. Las similitudes visibles nos llevan a creer que los autores actualizan las imágenes manualmente.
Recordemos que el límite de tamaño del archivo de carga en VirusTotal se cambió a 550 MB durante 2019, pero solía ser de 256 MB, por lo que una víctima no pudo escanear el archivo usando esa plataforma debido al tamaño. Trabajar con un archivo tan grande es más difícil en general, lo que hace que cualquier análisis automático o manual sea mucho más lento.
Herramienta de spam
Durante la investigación descubrimos también que Grandoreiro utiliza una herramienta para crear y enviar sus mensajes spam, como es el SDK de EASendMail. Pero además de su principal propósito, la herramienta establece persistencia en el equipo de la víctima, probablemente para que los atacantes puedan distribuir esta herramienta a algunas víctimas a través de Grandoreiro. En este sentido, incluyeron a la herramienta un pequeño componente de backdoor que utilizan para recibir archivos de configuración de esos correos spam. Esos archivos dictan cómo se verán los correos electrónicos, a qué apuntarán o dónde enviarlos. Proporcionamos una lista completa de los archivos de configuración y su propósito en la Tabla 1.
Filename | Purpose | Description |
---|---|---|
ID.txt | None | Seems not to be used for the spam emails |
html.txt | Email body template | Template for the email body (including placeholders - those are replaced by values from other config files) |
assunto.txt | Subject template (assunto = subject) | Template for subject (similar to html.txt for email body) |
nomes.txt | List of fake names | Replaces [NOME] placeholder in the templates |
link.txt | List of malicious URLs | The email will link to one of these |
lista.txt | List of recipients | The email will be sent to all of these |
login.txt | List of usernames | Information required to log into the email account that will be used to send the emails |
senha.txt | List of passwords | |
smtp.txt | SMTP server address |
Tabla 1. Lista de archivos de configuración utilizados por la herramienta de spam de Grandoreiro
Conclusión
Como vimos, Grandoreiro es un troyano bancario que apunta a usuarios de Brasil, México, España y Perú, con características similares a las de otros de los troyanos bancarios latinoaméricanos descritos en esta serie, como es el hecho de estar escrito en Delphi, contar con funcionalidades de backdoor y utilizar falsas ventanas emergentes para engañar y atacar a sus víctimas.
Sin embargo, una característica que hace particular a Grandoreiro es el esfuerzo que realiza para evitar la detección, recurriendo a varias técnicas, entre ellas el uso de una aplicación de la técnica de relleno binario que no habíamos visto antes que hace que sea difícil deshacerse del relleno mientras se mantiene un archivo válido.
Por último, el método de distribución preferido de este malware es el spam con enlaces que redireccionan a sus víctimas a falsos sitios web de actualizaciones de Flash o Java creados por los operadores, y últimamente también sitios relacionados al COVID-19.
Para mayor información del análisis técnico de Grandoreiro, los invitamos a leer el artículo completo de esta investigación en su versión en inglés.
Fuente: WeLiveSecurity
Comentarios
Publicar un comentario
siempre es bueno, leer tus comentarios