Investigadores del laboratorio de malware ESET Praga decidieron analizar en detalle los troyanos bancarios conocidos por dirigirse a Brasil. A partir de su análisis, los investigadores identificaron más de 10 nuevas familias de malware (que además de Brasil apuntan también a otros países de América Latina, como México y Chile) y analizaron su comportamiento. En este primer artículo de la serie sobre troyanos bancarios de América Latina, analizamos en detalle la primera familia de troyanos: Amavaldo.

Cabe destacar que los troyanos bancarios de América Latina presentan particularidades que los distinguen, ya que además de estar dirigidos mayoritariamente a países en los que se habla español y portugués, están escritos en Delphi, contienen funcionalidades de backdoor y abusan de programas y herramientas legítimas para infectar a sus víctimas; además de utilizar algoritmos criptográficos poco conocidos.

En el artículo “Troyanos bancarios de América Latina: análisis de nuevas familias de malware”, se explica con más detalle las particularidades de este tipo de troyanos.

Para infectar a sus víctimas utilizan un único downloader, el cual consiste en un archivo ejecutable de Windows que muchas veces simula ser el instalador de un software legítimo. Además, hacen uso de técnicas de ingeniería social para lograr que la víctima lleve adelante una acción relacionada con su banco, como puede ser, por ejemplo, la verificación de los datos de una tarjeta de crédito. En este sentido, este tipo de troyano bancario monitorea las ventanas activas en el equipo de la víctima y en caso de que detecte una ventana relacionada con una entidad bancaria, el malware entra en acción desplegando una falsa ventana emergente que suplanta la identidad de dicha entidad bancaria para, por ejemplo, robar datos privados de la víctima.

Análisis de Amavaldo

Nombramos a la familia de malware que describimos en el resto de este artículo como “Amavaldo”. Esta familia aún está en activo desarrollo –la última versión que observamos (10.7) presenta una fecha de compilación del 10 de junio de 2019.

Este es un ejemplo de un malware modular cuyo payload final en archivo ZIP contiene tres componentes:

  1. Una copia de una aplicación legítima (EXE)
  2. Un injector (DLL)
  3. Un troyano bancario cifrado (descifra en una DLL)

La Figura 1 muestra los contenidos de un archivo ZIP de ejemplo que contiene el payload final de Amavaldo.

Figura 1: Componentes de Amavaldo extraidos en una carpeta. Los componentes son: ctfmon.exe (aplicación legítima), MsCtfMonitor (troyano bancario cifrado), MsCtfMonitor.dll (injector)

El downloader guarda todos los contenidos del archivo ZIP en el disco duro en la misma carpeta. El injector tiene un nombre que fue elegido para coincidir con el de la DLL utilizada por la aplicación legítima empaquetada. Antes de que el downloader termine de ejecutarse, ejecuta la aplicación legítima. Entonces:

  • El injector es ejecutado vía DLL Side-Loading
  • El injector se auto inyecta en wmplayer.exe o iexplore.exe
  • El injector busca el troyano bancario cifrado (un archivo sin extensión cuyo nombre coincide con el del injector DLL)
  • Si tal archivo es encontrado, el injector descifra y ejecuta el troyano bancario

Características

Además de la estructura modular, la característica de identificación más fuerte es el esquema de cifrado personalizado utilizado para la ofuscación de strings (Figura 2). Como se puede apreciar, aparte de la llave (verde) y datos cifrados (azul), el código también está rellenado con strings basura (rojo) que nunca son utilizados. Creamos un pseudo código simplificado en la Figura 3 para destacar la lógica del algoritmo. Esta rutina de manipulación de strings es utilizada por el propio troyano bancario, el inyector e incluso el downloader que describiremos más adelante. A diferencia de muchos otros troyanos bancarios de América Latina, esta rutina no parece haber sido inspirada por el libro mencionado anteriormente.

Figura 2: Ofuscación de string en Amavaldo

Figura 3. Pseudocódigo de descifrado de string de Amavaldo

Adicionalmente, las últimas versiones de estas familias pueden identificarse por un mutex que parece tener siempre el mismo nombre“D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}".

Amavaldo primero recopila información sobre la víctima que consiste en:

  • Identificación de la computadora y el SO
  • Qué tipo de protección bancaria tiene la víctima instalada. La información es reunida mediante la búsqueda de las siguientes rutas del sistema de archivos:
    • %ProgramFiles%\Diebold\Warsaw
    • %ProgramFiles%\GbPlugin\
    • %ProgramFiles%\scpbrad\
    • %ProgramFiles%\Trusteer
    • %ProgramFiles%\AppBrad\
    • %LocalAppData%\Aplicativo Itau

La versiones más nuevas se comunican a través de SecureBridge, una librería en Delphi que ofrece conexiones SSH/SSL.

Al igual que otros troyanos bancarios, Amavaldo soporta varios comandos de backdoor. Las capacidades de estos comandos incluyen:

  • Obtener capturas de pantalla
  • Capturar fotos de la víctima a través de la cámara web
  • Registro del texto que se introduce a través del teclado
  • Descargar y ejecutar otros programas
  • Restringir accesos a varios sitios bancarios
  • Simulación de teclado y ratón
  • Auto actualización

Amavaldo utiliza una técnica inteligente al momento de lanzar el ataque a su víctima que es similar a lo que realiza Windows UAC. Luego de detectar una ventana relacionada a un banco, realiza una captura de pantalla del escritorio y hace que se vea como el nuevo fondo de pantalla. Luego despliega una falsa ventana emergente que es elegida en base al texto de la ventana activa mientras deshabilita múltiples atajos de teclado y previene que la víctima interactúe con cualquier cosa adicional que no sea la ventana emergente.

Sólo bancos de Brasil habían sido apuntados cuando encontramos por primera vez esta familia de malware, pero a partir de abril de 2019 extendió su rango a bancos de México. Aunque los bancos de Brasil apuntados siguen presentes en el malware, de acuerdo a nuestros análisis, en la actualidad los operadores detrás de esta amenaza se están enfocando solo en México.

Distribución

Fuimos capaces de observar dos cadenas de distribución – una a principios de este año y una segunda desde Abril.

Cadena de distribución 1: dirigida a Brasil

Observamos por primera vez esta cadena apuntando a víctimas de Brasil en enero de 2019. Los autores decidieron utilizar un instalador MSI, VBS, XSL (Extensible Stylesheet Language) y PowerShell para su distribución.

Toda la cadena comienza con el instalador MSI que para la víctima instalará Adobe Acrobat Reader DC. Utiliza dos ejecutables legítimos: AICustAct.dll (para detectar cualquier conexión a Internet disponible) y VmDetect.exe (para detectar entornos virtuales).

Figura 4: Mensaje de error cuando el downloader corre dentro de una máquina virtual (izquierda) o sin conexión a Internet (derecha).

Una vez que el falso instalador es ejecutado, utiliza un archivo embebido que, además de los strings, contiene un downloader VBS empaquetado (Figura 5). Después de desempaquetarlo (Figura 6), descarga otro downloader VBS (Figura 7). Observe que el segundo downloader VBS abusa del WMIC.exe de Microsoft Windows para descargar la siguiente etapa: un script XSL (Figura 8) con un PowerShell codificado y embebido. Finalmente, el script de PowerShell (Figura 9) es responsable de descargar el payload final: un archivo zip con varios archivos, enlistados en la Tabla 1. También asegura persistencia mediante la creación de una tarea programada llamada GoogleBol.

Figura 5. La primera etapa. Un downloader VBS empaquetado (destacado en rojo) embebido dentro del instalador MSI.

Figura 6: La primera etapa desempaquetada.

Figura 7: La segunda etapa desempaquetada. Se abusa de WMIC.exe para ejecutar la etapa siguiente.

Figura 8: La tercera etapa. Un script XSL largo que contiene un script PowerShell codificado embebido (destacado en rojo)

Figura 9: La cuarta etapa (final). Un script PowerShell ofuscado que descarga el payload final y lo ejecuta.

nvsmartmaxapp.exe Legitimate application 1
NvSmartMax.dll Injector 1
NvSmartMax Payload 1
Gup.exe Legitimate application 2
libcurl.dll Injector 2
Libcurl Payload 2
gup.xml Configuration file for gup.exe

Tabla 1: Contenidos del archivo final del payload y sus descripciones

En la Tabla 1 se puede observar dos grupos de payloads e injectors, ambos utilizando el método de ejecución descrito anteriormente. El NvSmartMax[.dll] ha sido utilizado para ejecutar Amavaldo. El libcurl[.dll] no está relacionado directamente con Amavaldo, dado que ejecuta una herramienta que es utilizada para registrar automáticamente una gran cantidad de direcciones de correo utilizando la plataforma de correo Brasil Online (BOL). Estos inicios de sesión y contraseñas de correo son enviadas de vuelta al atacante. Creemos que serán utilizados u para una nueva campaña de spam.

Cadena de distribución 2: dirigida a México

La cadena de infección más reciente que hemos observado comienza con un instalador MSI muy similar. La diferencia es que, esta vez, contiene un ejecutable de Windows embebido que funciona como downloader. El instalador termina el proceso con un falso mensaje de error (Figura 10). Justo después, el downloader es ejecutado. La persistencia es asegurada mediante la creación de una tarea programada (al igual que en la primera cadena), aunque en esta oportunidad es nombrada Adobe Acrobat TaskB (Figura 11). Luego, descarga todos los componentes de Amavaldo (en esta oportunidad no observamos ninguna herramienta de correo) y ejecuta el troyano bancario.

Figura 10: El falso mensaje de error desplegado por el instalador

Figura 11: La tarea programada creada por el downloader

Creemos que las compañías han estado siendo apuntadas a través de campañas de spam mediante este método. Los archivos iniciales fueron nombrados CurriculumVitae[…].msi o FotosPost[...].msi. Creemos que las víctimas son engañadas para que hagan clic en un enlace que viene en un correo que los lleva a descargar lo que ellos creen que es un CV. Dado que debería ser un PDF, que se ejecute la instalación de Adobe Acrobat Reader DC podría parecer una acción legítima en ese contexto.

Desde que los autores decidieron utilizar el acortador de URL bit.ly, hemos podido obtener información adicional acerca de sus campañas (Figuras 12 y 13). Como se puede observar, la gran mayoría de clics en esas URLs fueron realizados desde México. El hecho de que el correo es la referencia más frecuente refuerza nuestra teoría sobre el spam como principal vector de distribución.

Figura 12: Estadísticas de una reciente campaña de Amavaldo dirigida a México (1).

Figura 13: Estadísticas de una reciente campaña de Amavaldo dirigida a México (2).

Conclusión

En este artículo, hemos introducido nuestra investigación sobre los troyanos bancarios de América Latina. Hemos descrito el comportamiento típico de este tipo de malware y cómo opera. También hemos presentado cuáles han sido las principales características que utilizamos para establecer familias de malware.

En este sentido, con Amavaldo hemos descrito a la primera familia de malware junto a sus principales características y blancos, y también analizado en detalle recientes cadenas de distribución. Amavaldo comparte muchas de las típicas características de un troyano bancario de América Latina. Divide sus funcionalidades en varios componentes, por lo que tener un solo componente no es suficiente para el análisis. Abusa de aplicaciones legítimas para ejecutarse automáticamente y para detectar entornos virtuales. Intenta robar información de bancos de Brasil y México y también contiene funcionalidades de backdoor.

Por cualquier consulta, escríbanos a threatintel@eset.com. Los Indicadores de Compromiso también pueden encontrarse en nuestro GitHub.

 

Indicadores de Compromiso (IoCs)

Hashes

Hashes de la primera cadena de distribución (Brasil)

SHA-1 Description ESET detection name
E0C8E11F8B271C1E40F5C184AFA427FFE99444F8 Downloader (MSI installer) Trojan.VBS/TrojanDownloader.Agent.QSL
12C93BB262696314123562F8A4B158074C9F6B95 Abuse legitimate application (NvSmartMaxApp.exe) Clean file
6D80A959E7F52150FDA2241A4073A29085C9386B Injector for Amavaldo (NvSmartMax.dll) Win32/Spy.Amavaldo.P trojan
B855D8B1BAD07D578013BDB472122E405D49ACC1 Amavaldo (decrypted NvSmartMax) Win32/Spy.Amavaldo.N trojan
FC37AC7523CF3B4020EC46D6A47BC26957E3C054 Abused legitimate application (gup.exe) Clean file
4DBA5FE842B01B641A7228A4C8F805E4627C0012 Injector for email tool (libcurl.dll) Win32/Spy.Amavaldo.P trojan
9A968341C65AB47BF5C7290F3B36FCF70E9C574B Email tool (decrypted libcurl) Win32/Spy.Banker.AEGH trojan

Hashes de la segunda cadena de distribución (México)

SHA-1 Description ESET detection name
AD1FCE0C62B532D097DACFCE149C452154D51EB0 Downloader (MSI installer) Win32/TrojanDownloader.Delf.CSG trojan
6C04499F7406E270B590374EF813C4012530273E Abused legitimate application (ctfmon.exe) Clean file
1D56BAB28793E3AB96E390F09F02425E52E28FFC Injector for Amavaldo (MsCtfMonitor.dll) Win32/Spy.Amavaldo.U trojan
B761D9216C00F5E2871DE16AE157DE13C6283B5D Amavaldo (decrypted MsCtfMonitor) Win32/Spy.Amavaldo.N trojan

Otros

SHA-1 Description ESET detection name
B191810094DD2EE6B13C0D33458FAFCD459681AE VmDetect.exe – a tool for detecting virtual environment Clean file
B80294261C8A1635E16E14F55A3D76889FF2C857 AICustAct.dll – a tool for checking internet connectivity Clean file

Mutex

  • {D7F8FEDF-D9A0-4335-A619-D3BB3EEAEDDB}

Nombres de archivos

  • %LocalAppData%\%RAND%\NvSmartMax[.dll]
  • %LocalAppData%\%RAND%\MsCtfMonitor[.dll]
  • %LocalAppData%\%RAND%\libcurl[.dll]

Tareas programadas

  • GoogleBol
  • Adobe Acrobat TaskB

Servidores C&C

  • homeunix[.]com:3928
  • mine[.]nu:3579
  • game-server[.]cc:3351
  • scrapping[.]cc:3844

Técnicas de MITRE ATT&CK

Tactic ID Name Description
Initial Access T1192 Spearphishing Link The initial attack vector is a malicious link in an email that leads the victim to a web page the downloader is obtained from.
Execution T1073 DLL Side-Loading The injector component is executed by abusing a legitimate application with this technique.
T1086 PowerShell The first distribution chain uses PowerShell in its last stage.
T1047 Windows Management Instrumentation The first distribution chain abuses WMIC.exe to execute the third stage.
Persistence T1053 Scheduled Task Persistence is ensured by a scheduled task.
Defense Evasion T1140 Deobfuscate/Decode Files or Information The actual banking trojan needs to be decrypted by the injector component.
T1036 Masquerading The injector masks itself as a DLL imported by the abused legitimate application. The downloader masks itself as an installer for Adobe Acrobat Reader DC.
T1055 Process Injection The injector injects itself into wmplayer.exe or iexplore.exe.
T1064 Scripting VBS, PowerShell and XSL are used in the first distribution chain.
T1220 XSL Script Processing The first distribution chain uses XSL processing in its third stage.
T1497 Virtualization/Sandbox Evasion Downloader of Amavaldo uses third-party tools to detect virtual environment.
Credential Access T1056 Input Capture Amavaldo contains a command to execute a keylogger. It also steals contents from fake windows it displays.
Discovery T1083 File and Directory Discovery Amavaldo searches for various filesystem paths in order to determine what banking protection applications are installed on the victim machine.
T1082 System Information Discovery Amavaldo extracts information about the operating system.
Collection T1113 Screen Capture Amavaldo contains a command to take screenshots.
T1125 Video Capture Amavaldo contains a command to capture photos of the victim via webcam.
Command and Control T1024 Custom Cryptographic Protocol Amavaldo uses a unique cryptographic protocol.
T1071 Standard Application Layer Protocol Amavaldo uses the SecureBridge Delphi library to perform SSH connections.
Exfiltration T1041 Exfiltration Over Command and Control Channel Amavaldo sends the data it collects to its C&C server.