Desde hace unas semanas, hemos venido analizando cómo se está desarrollando el cibercrimen en Brasil, migrando a nuevas plataformas y utilizando diversos lenguajes de programación para intentar evadir las detecciones. Ya analizamos un downloader de troyanos bancarios hecho en JavaScript y otro en Java. Hoy veremos cómo el mismo grupo de cibercriminales también está utilizando Visual Basic Script para propagar sus amenazas.
Las otras dos amenazas analizadas hace unas semanas tenían la particularidad de estar alojadas en un servicio de cloud basado en Portugal. Este otro archivo, sin embargo, se encuentra alojado en un servidor distinto, aunque también de un servicio de archivos compartidos. Todas estas amenazas comparten un mismo método de propagación, a través de mensajes de correo electrónico que pretenden ser de entidades bancarias. Luego, una vez que descargamos el archivo .vbs, podemos ver que se encuentra ofuscado:
Este cifrado XOR es muy fácil de revertir, obteniendo el código original en Visual Basic Script. Rápidamente observamos que se descarga un archivo comprimido con contraseña, que es extraído con otra aplicación que también es descargada por el malware. En este sentido, “7za.exe” no es malicioso, solamente es utilizado para obtener el ejecutable a partir del .zip descargado, el cual luego es ejecutado por el script:
Los comentarios que se observan en el código están en portugués y pertenecen al creador del script. Nos llama la atención “link do seu do modulo”, lo cual puede traducirse a “enlace a su módulo”. La palabra “su” nos lleva a pensar que el script fue generado con alguna herramienta o el código fue copiado de algún ejemplo, ya que no dice “mi” módulo.
Ahora bien, ¿qué es este archivo extraído y ejecutado por el script? La detección de ESET es una variante de Win32/Packed.Autoit.R; vemos cómo otro lenguaje más es utilizado por este grupo de criminales. El ejecutable, generado con un script de AutoIt, no tiene otra función más que inyectar un troyano bancario en memoria: se crea un proceso en estado suspendido, se remplaza su imagen en memoria por la del malware y se resume la ejecución (técnica conocida como RunPE).
Este último ejecutable en memoria es detectado por ESET como Win32/Spy.Banker.ACSJ, un troyano bancario escrito en Delphi (típico en Brasil) y con strings cifradas con el mismo algoritmo que el descargado por el downloader en JavaScript que habíamos visto antes.
El banker tiene diversas funcionalidades para el robo de información, aunque no nos detendremos demasiado en esta oportunidad en su análisis. Sí vale la pena mencionar que no utiliza DDE, como el banker que habíamos visto en la amenaza de JavaScript, sino que carga funciones de oleaut32.dll para la automatización de acciones sobre Internet Explorer, si se detecta que la víctima está navegando por los sitios de ciertos bancos. Luego, el banker carga falsos formularios con imágenes similares a las de los sitios reales, a modo de capturar las credenciales bancarias.
En los últimos tres artículos que he escrito en este blog se han podido relacionar varias plataformas o lenguajes utilizados para las amenazas con una misma campaña. Es sorprendente la cantidad de técnicas y recursos distintos utilizados por los cibercriminales en Brasil para la propagación de sus amenazas. Y, si bien el último eslabón de la cadena en estos ataques sigue siendo el troyano bancario escrito en Delphi, que hace años está presente en este país, ya empezamos a ver cómo se actualiza su código, para adaptarlo a las nuevas medidas de seguridad que presentan las entidades bancarias en Brasil.
Muestras analizadas
SHA-1 | Archivo | Detección |
---|---|---|
d588a69a231aeb695bbc8ebc4285ca0490963685 | Comprovante Deposito-Acordo N7656576l (3) (4) (4).vbs | VBS/TrojanDownloader.Agent.OGG |
dde2af50498d30844f151b76cb6e39fc936534a7 | 7b0gct262q.exe | Win32/Packed.Autoit.R |
256ad491d9d011c7d51105da77bf57e55c47f977 | Win32/Spy.Banker.ACSJ |