Casbaneiro: particularidades de este troyano bancario que afecta a Brasil y México | WeLiveSecurity

Casbaneiro: particularidades de este troyano bancario que afecta a Brasil y México

En el segundo artículo de nuestra serie sobre Troyanos bancarios de América Latina presentamos un análisis técnico de Casbaneiro, un troyano que hace uso de diversas técnicas para ocultar la dirección de su servidor de C&C

En el segundo artículo de nuestra serie sobre Troyanos bancarios de América Latina presentamos un análisis técnico de Casbaneiro, un troyano que hace uso de diversas técnicas para ocultar la dirección de su servidor de C&C

La mayoría de los especialistas en ingeniería inversa estarán de acuerdo en que con frecuencia se aprende algo nuevo. Sin embargo, no todos los días se aprende una receta para preparar una comida deliciosa mientras se analiza malware. Esta experiencia única es proporcionada por una familia de malware que analizaremos en esta publicación y cuyo nombre es “Casbaneiro”.

Características de Casbaneiro

Casbaneiro, también conocido como Metamorfo, es un típico troyano bancario latinoamericano que apunta a bancos y servicios de criptomonedas en Brasil y México (Figura 1). Utiliza el mismo método de ingeniería social descrito anteriormente para los troyanos bancarios de América Latina, que consiste en desplegar ventanas emergentes falsas con el objetivo de intentar persuadir a las potenciales víctimas para que ingresen información confidencial. En caso de tener éxito, esa información es robada.

Figura 1. Países afectados por Casbaneiro con Brasil y México entre los más destacados.

Las capacidades de backdoor de este malware son las típicas que presentan los troyanos bancarios latinoamericanos. Es decir, puede realizar capturas de pantalla y enviarlas a su servidor C&C, simular acciones de mouse y teclado, capturar pulsaciones de teclas, descargar e instalar actualizaciones por sí mismo, restringir el acceso a varios sitios web y descargar y ejecutar otros ejecutables.

Asimismo, Casbaneiro recopila la siguiente información de sus víctimas:

  • Lista de productos antivirus instalados
  • Versión del Sistema Operativo (SO)
  • Nombre de usuario
  • Nombre de la computadora
  • Si alguno de los siguientes software está instalado:
    • Diebold Warsaw GAS Tecnologia (una aplicación para proteger el acceso a la banca en línea)
    • Trusteer
    • Varias aplicaciones bancarias latinoamericanas

Aunque parece haber al menos cuatro variantes diferentes de este malware, el núcleo de cada una de ellas es prácticamente idéntico al código presente en este repositorio de GitHub. Sin embargo, es prácticamente imposible separarlos unos de otros, principalmente porque algunas variantes que utilizan versiones diferentes usan la misma clave de descifrado de strings, y los mismos mecanismos son utilizados en diferentes variantes

Además, las diferencias no son importantes desde el punto de vista de la funcionalidad. Por lo tanto, nos referiremos a todas estas variantes como Casbaneiro.

Casbaneiro es fácil de identificar porque utiliza una gran tabla de strings, con varios cientos de entradas. Las strings son recuperadas accediendo a esta tabla mediante un índice. Curiosamente, cada vez que el malware necesita obtener una string, la tabla de strings completa se construye en la memoria a partir de fragmentos almacenados de texto cifrado; la string deseada se descifra y la tabla completa se descarta nuevamente. Puede ver un ejemplo en la Figura 2.

Figura 2. Casbaneiro obteniendo una string a través del índice (0x205) y descifrándola

Hay fuertes indicios de que esta familia de malware está estrechamente relacionada con la familia de troyanos Amavaldo, la cual describimos en nuestra primera publicación de esta serie sobre troyanos bancarios de América Latinas. Mencionaremos estas similitudes más adelante en este artículo.

Secuestro de datos del portapapeles

Casbaneiro también puede intentar robar las criptomonedas de la víctima. Lo hace monitoreando el contenido del portapapeles y si los datos parecen ser una billetera de criptomonedas, los reemplaza con los del atacante. Esta técnica no es nueva; ha sido utilizada por otro malware en el pasado. Incluso el infame troyano bancario BackSwap lo implementó en sus primeras etapas.

La billetera del atacante está hardcodeada en el binario y solo hemos encontrado una. Al examinarla, pudimos ver pagos que habían sido realizado previo a la escritura de este artículo.

Figura 3. Detalle de la billetera de bitcoin del atacante

Criptografía

Casbaneiro utiliza varios algoritmos criptográficos y cada uno de ellos protege un tipo diferente de dato. En las siguientes secciones los describimos.

Cifrado de comandos

Los comandos recibidos del servidor C&C son cifrados con AES-256 y para ello se utiliza la biblioteca SynCrypto Delphi. La clave AES se obtiene desde una contraseña almacenada en binario, a través de SHA-256. No se almacena como una string, sino que se concatena a partir de piezas separadas en el runtime, como se puede ver en la Figura 4.

Figura 4. Construcción de la contraseña “ze102030ca” utilizada para derivar la clave AES

Cifrado de strings

El algoritmo utilizado para cifrar strings proviene de este libro y también es utilizado en otros troyanos bancarios latinoamericanos. El pseudocódigo del algoritmo de descifrado se puede ver en la Figura 5. La misma clave es utilizada para todas las strings. De forma similar al cifrado de comandos, la clave es nuevamente concatenada a partir de partes en el runtime, solo que esta vez consta de muchas más partes (ver Figura 6). Obsérvese cómo las strings con espacios en blanco también son añadidas, pero se recortan más adelante, por lo tanto, no tienen ningún impacto.

Figura 5. Pseudocódigo de descifrado de strings

Figura 6. Parte del código que concatena la clave de descifrado de string que se muestra en la Figura 5. Las partes clave válidas están marcadas en rojo. La ofuscación mediante strings con espacios en blanco está marcada en púrpura.

Cifrado del payload

En algunas campañas de Casbaneiro, el troyano se cifra y se asocia con un injector. El algoritmo utilizado para descifrar el payload binario principal en estos casos es exactamente el mismo que utiliza el injector de Amavaldo. El pseudocódigo se encuentra en la Figura 7.

Cifrado de datos de configuración remota

Finalmente, se utiliza un cuarto algoritmo para descifrar los datos de configuración no almacenados en el archivo binario, pero que son obtenidos de forma remota. Ejemplos:

Se puede ver claramente en las Figuras 7 y 8 que ambos algoritmos son casi idénticos, solo que uno utiliza texto sin formato y el otro texto cifrado para actualizar la clave. Tenemos fuertes sospechas de que el autor reescribió el código a mano de la misma fuente y cometió un error en uno de los casos.

Figura 7. Algoritmo de descifrado del payload

Figura 8. Algoritmo de descifrado de datos remoto

Distribución

Creemos que las cadenas de distribución de Casbaneiro suelen comenzar por un correo electrónico malicioso. Algunas campañas fueron descritas por FireEye, Cisco y enSilo. Si ha leído nuestro anterior artículo notará que la campaña descrita por Cisco utiliza un script de PowerShell muy similar al utilizado por Amavaldo. Aunque algunas partes difieren, ambos scripts provienen claramente de una fuente común y utilizan los mismos métodos de ofuscación.

Mientras escribíamos este artículo, identificamos una nueva campaña que utilizaba una técnica similar a la descrita por enSilo, con apenas unos pocos cambios. Ya no se abusa del ejecutable de Avast y el payload principal, jesus.dmp, ya no está cifrado y, por lo tanto, no está asociado con un injector. Finalmente, la carpeta de instalación se cambió a %APPDATA%\Sun\Javar\%RANDOM%\. Dado que esta campaña reciente de Casbaneiro utiliza el acortador de URL bit.ly, pudimos obtener más información al respecto en la Figura 9.

Figura 9. Estadísticas de Bit.ly para la última campaña de Casbaneiro

Además de eso, durante nuestra investigación identificamos otras dos campañas previas.

Campaña 1: actualización de software financiero

En esta campaña, se persuade a la víctima para que descargue e instale lo que puede parecer una actualización legítima de un software financiero (ver Figura 10). En lugar de eso, el instalador:

  • descarga un archivo que contiene:
    • Casbaneiro disfrazado de Spotify.exe
    • otras DLL legítimas
  • extrae el contenido del archivo a %APPDATA%\Spotify\
  • configura la persistencia utilizando HKCU\Software\Microsoft\Windows\CurrentVersion\Run, Spotify = %APPDATA%\Spotify\Spotify.exe

También hemos encontrado casos en los que el payload se hace pasar por OneDrive o WhatsApp. En esos casos, el nombre de la carpeta se cambia en consecuencia.

Figura 10. Falso Instalador de actualizaciones

Campaña 2: un activador de Windows

Esta campaña es muy similar a la descrita por enSilo; utiliza un instalador MSI con un downloader en JavaScript embebido. Solo que esta vez el instalador viene incluido con la herramienta de craqueo Re-Loader que permite la activación no oficial de Windows o Microsoft Office. Cuando se ejecuta, primero se descarga y ejecuta en secreto Casbaneiro, y en segunda instancia Re-Loader.

Este método no es muy común en los troyanos bancarios latinoamericanos. Es más peligroso para las potenciales víctimas, ya que probablemente tengan menos razones para sospechar que algo salió mal.

Figura 11. Herramienta de crackeo Re-Loader instalada junto a Casbaneiro

Formas de ocultar el dominio y puerto del servidor C&C

Los operadores de Casbaneiro han hecho un gran esfuerzo para ocultar el actual puerto y dominio del servidor C&C, y esta es una de las características más interesantes de Casbaneiro. Exploremos dónde se han ocultado los servidores de C&C…

1) Almacenado y cifrado en el binario

El cifrado es definitivamente el método más simple para ocultar el servidor de C&C. El dominio está cifrado con una clave hardcodeada y el puerto está solo hardcodeado. Hemos encontrado casos en los que el puerto ha sido almacenado en la sección datos, en los datos de formulario en Delphi o elegido de manera aleatoria a partir de un rango.

2) Embebidos en un documento

Un método más avanzado consiste en almacenar los datos en algún lugar en línea, en este caso en Google Docs. Una manera en que Casbaneiro utiliza este método puede observarse en la Figura 12, donde el documento está lleno de texto basura. El dominio cifrado está codificado en hexadecimal y luego se almacena entre delimitadores “!”. El cifrado utilizado es el mismo para todas las demás strings y el puerto está hardcodeado en el binario.

Figura 12. Dominio del servidor C&C (destacado en rojo) cifrado y codificado en hexadecimal, oculto dentro de un documento en línea

Otra forma en que es utilizado este método involucra el uso de múltiples delimitadores. Se puede ver un ejemplo en la Figura 13, donde se utilizan diferentes delimitadores para el puerto C&C, el dominio C&C y la URL utilizada para enviar información de la víctima. Inicialmente, este método fue utilizado para almacenar solo el puerto; los otros datos de configuración fueron añadidos en variantes posteriores.

Figura 13. Puerto del servidor C&C (“thedoor”), dominio (“sundski”) y la URL de envío de información de la víctima (“contict”) cifrada y almacenada en un documento en línea

3) Embebido en un sitio web especialmente diseñado

Para esta estrategia, los operadores crearon un sitio web falso (Figura 14) que imita a este sitio web legítimo en el cual se muestra la hora oficial de Brasil. El dominio real del C&C está oculto dentro de los metadatos de la página web, como se puede apreciar en la Figura 15, y el puerto está hardcodeado en el binario. Hemos encontrado al menos tres sitios web idénticos con diferentes URLs.

Figura 14. Sitio web creado por el atacante que imita al sitio legítimo horariodebrasilia.org

Figura 15. Comparación de metadatos de los sitios web legítimos (izquierda) y falsos (derecha). La etiqueta de verificación de Google Site contiene el dominio C&C encriptado.

Una diferencia importante con respecto al método anterior es que los datos están cifrados de manera diferente a todas las demás strings, utilizando el algoritmo para descifrar datos de configuración remota descritos anteriormente. Las tres claves requeridas son los primeros 12 bytes de la cadena, cada uno con 4 bytes.

4) Embebido dentro de un sitio web legítimo

Casbaneiro comenzó a abusar de YouTube para almacenar sus dominios de servidor C&C. Hemos identificado dos cuentas diferentes utilizadas para este fin por parte de los operadores de la amenaza: una centrada en recetas de cocina y la otra en fútbol.

Entonces, ¿dónde está oculto el servidor de C&C? Cada video en estos canales contiene una descripción. Al final de esta descripción, hay un enlace a una URL falsa de Facebook o Instagram (ver Figura 17). El dominio del servidor C&C se almacena en este enlace, utilizando el mismo esquema de cifrado que en el caso anterior: la clave se almacena al comienzo de los datos cifrados. El puerto está, una vez más, hardcodeado en el binario.

Figura 16. Uno de los canales de YouTube utilizados por el atacante.

Figura 17. Descripción de uno de los videos que el atacante publicó. En la parte inferior, el dominio cifrado del C&C está embebido en un falso enlace de Facebook (rojo).

Lo que hace peligrosa a esta técnica es que no genera muchas sospechas sin contexto. Conectarse a YouTube no se considera inusual e incluso si se examina el video, el enlace al final de la descripción del video puede pasar desapercibido fácilmente.

5) Utilizando una entrada DNS falsa

La idea general de este método es registrar un dominio y asociarlo con una dirección IP falsa para que la dirección IP real pueda derivarse de él. El algoritmo utiliza tres valores de entrada:

  1. Un dominio base (B) – un dominio utilizado para derivar otros dominios
  2. Una lista de sufijos (LS) – una lista de strings que se utilizará para derivar otros dominios del dominio base B
  3. Un número (N) – un número utilizado para transformar una dirección IP falsa a la real

Se utiliza un dominio base diferente para el dominio y el puerto del C&C. Proporcionamos pseudocódigo en la Figura 18. La lógica básica del algoritmo es:

  1. Genere un dominio desde el dominio base B y resuélvalo a una dirección IP falsa (FIP)
  2. Agregue un número N a la dirección IP falsa FIP para obtener la dirección IP real
  3. Para obtener el puerto, sume los octetos de la dirección IP real y multiplique por 7

Figura 18. Pseudocódigo del algoritmo utilizado para generar el dominio y el puerto del C&C utilizando una entrada de DNS falsa

Funcionalidad Descarga & Ejecución

La mayoría de los troyanos bancarios de América Latina, incluido Casbaneiro, tienen una forma de descargar y ejecutar otros ejecutables que generalmente es a través de un comando de backdoor. Sin embargo, Casbaneiro realiza una implementación diferente de esta funcionalidad. Inicialmente pensamos que se trataba de un mecanismo de actualización porque las versiones más nuevas del troyano bancario fueron distribuidas por él, pero, como descubrimos más adelante, no exclusivamente. Se utilizan dos mecanismos diferentes que a continuación exploramos.

Vía documento XML

Una forma de utilizar esta funcionalidad es mediante la descarga de un documento XML. Los datos almacenados en este documento entre las etiquetas <xmlUpdate> ## y ## </xmlUpdate> se cifran utilizando el algoritmo para datos remotos que vimos en la Figura 8.

Una vez descifrados, los datos pueden contener las siguientes etiquetas:

  • <newdns> – nuevo dominio de servidor C&C
  • <newport> – nuevo puerto de servidor C&C
  • <downexec> – una URL a utilizar para descargar y ejecutar un archivo

A través de un archivo de configuración especial

Creemos que este enfoque se utiliza en (probablemente un subconjunto de) muestras de Casbaneiro que se venden a otros cibercriminales. En este método, se descarga un archivo de configuración (como se muestra en la Figura 19). Se compone de varias líneas, cada una de las cuales contiene:

  • Una identificación del comprador
  • Nombre de archivo del payload
  • URL principal donde se encuentra el archivo
  • URL de respaldo donde se encuentra el archivo
  • Versión (no utilizada)
  • Un número (no utilizado)
  • Fecha (no utilizada)

Los últimos tres valores parecen ignorarse por completo. La fecha “05/07/2018”, por ejemplo, se utiliza incluso en los archivos de configuración más recientes en el momento de la escritura.

Figura 19. Archivo de configuración obtenido por Casbaneiro

Cada muestra de Casbaneiro que utiliza este método tiene la identificación del comprador hardcodeada en sus datos. Cuando descarga dicho archivo de configuración, lo analiza y encuentra la línea destinada a la ID específica del comprador y descarga y ejecuta el payload

Como se aprecia en la Figura 19, el payload es casi el mismo para todos los compradores. Sin embargo, nos encontramos con una situación en la que una muestra descargó dicho archivo de configuración y la ID de su comprador no estaba presente. Esta forma de distribuir payloads adicionales le da al “autor principal” (probablemente el vendedor) la capacidad de excluir a algunos compradores.

Además de las actualizaciones de Casbaneiro, hemos visto dos payloads más distribuidos por este método que analizamos en las dos secciones siguientes.

Herramienta de correo electrónico

Una herramienta escrita en C # registra automáticamente una gran cantidad de nuevas cuentas de correo electrónico utilizando la plataforma de correo electrónico Brasil Online (BOL) y envía las credenciales al atacante. Si ha leído nuestro artículo anterior, esto puede que le resulte familiar. Esto se debe a que, en lo que respecta a la funcionalidad, esta herramienta hace exactamente lo mismo. También es una variante de la herramienta de spam descrita por Cisco

Ladrón de contraseñas

Otro payload que vimos que ha sido distribuido por esta funcionalidad es un ladrón de contraseñas de Outlook muy sencillo. Este malware, una vez ejecutado, primero muestra un cuadro de mensaje, en portugués, que indica que hay un problema con la cuenta de Outlook de la víctima. Después de eso, muestra una página de inicio de sesión falsa de Microsoft que solicita credenciales de Outlook.

Figura 20: Mensaje desplegado por el ladrón de contraseñas

Figura 21. Ventana desplegada por el ladrón de contraseñas para intentar obtener las credenciales de Outlook de la víctima.

Conclusión

En esta publicación hablamos sobre Casbaneiro, otro troyano bancario latinoamericano. Hemos demostrado que comparte las características comunes de este tipo de malware, como el uso de ventanas emergentes falsas y la funcionalidad de backdoor. En algunas campañas, divide su funcionalidad en un injector y en la del troyano bancario real. También se disfraza como una aplicación legítima en la mayoría de las campañas y se dirige principalmente a Brasil y México.

También hemos mostrado fuertes indicadores que nos llevan a creer que Casbaneiro está estrechamente relacionado con Amavaldo. Ambas piezas de malware utilizan el mismo algoritmo criptográfico poco común en el componente del injector, han utilizado un script PowerShell muy similar en una de sus campañas y se los ha visto distribuir una herramienta de correo electrónico muy similar.

Hemos descrito varias técnicas que Casbaneiro emplea para ocultar la dirección de su servidor de C&C. Estos incluyen el uso de documentos almacenados de forma remota, sitios web legítimos y falsos y entradas DNS falsas.

Finalmente, hemos descrito dos técnicas utilizadas por Casbaneiro para actualizarse asimismo o descargar y ejecutar payloads adicionales.

Indicadores de Compromiso (IoCs)

Hashes

Campaña 1

SHA-1DescriptionESET detection name
F07932D8A36F3E36F2552DADEDAD3E22EFA7AAE1MSI installerWin32/TrojanDownloader.Banload.YJD trojan
BCDF0DDF98E3AA7D5C67063B9926C5D1C0CA6F3ADownloaded payloadWin32/Spy.Casbaneiro.AJ trojan

Campaña 2

SHA-1DescriptionESET detection name
8745197972071EDE08AA9F7FBEC029BED56151C2MSI installerJS/TrojanDownloader.Agent.TNX trojan
BC909B76858402B3CBB5EFD6858FD5954A5E3FD8Re-LoaderMSIL/HackTool.WinActivator.J potentially unsafe application

Campaña 3

SHA-1DescriptionESET detection name
DD2799C10954293C8E7D75CD4BE2686ADD9AC2D4MSI installerJS/TrojanDownloader.Agent.TNX trojan
9DFFEB147D89ED58C98252B54C07FAE7D5F9FEA7Downloaded payloadWin32/Spy.Casbaneiro.AJ trojan

Archivos distribuidos mediante la función Descarga & Ejecución

SHA-1DescriptionESET detection name
C873ED94E582D24FAAE6403A17BF2DF497BE04EBEmail toolMSIL/SpamTool.Agent.O trojan
B3630A866802D6F3C1FA2EC487A6795A21833418Password stealerWin32/PSW.Agent.OGH trojan

Nombres de archivo

  • %APPDATA%\Spotify\Spotify.exe
  • %APPDATA%\OneDrive\OneDrive.exe
  • %APPDATA%\WhatsApp\WhatsApp.exe
  • %APPDATA%\Sun\Javar\%RANDOM%\%RANDOM%.exe
  • %APPDATA%\DMCache\%RANDOM%\%RANDOM%.exe

Claves y valores de registro

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • Spotify = %APPDATA%\Spotify\Spotify.exe
  • OneDrive = %APPDATA%\OneDrive\OneDrive.exe
  • WhatsApp = %APPDATA%\WhatsApp\WhatsApp.exe
  • %Random% = %APPDATA%\Sun\Javar\%RANDOM%\%RANDOM%.exe
  • %Random% = %APPDATA%\DMCache\%RANDOM%\%RANDOM%.exe

Servidores C&C

  • hostsize.sytes[.]net:7880
  • agosto2019.servepics[.]com:2456
  • noturnis.zapto[.]org
  • 4d9p5678.myvnc[.]com
  • seradessavez.ddns[.]net:14875

Billetera de Bitcoin

  • 18sn7w8ktbBNgsX8LeeeLMqKS84xMG54si

Técnicas de MITRE ATT&CK 

TacticIDNameDescription
Initial AccessT1192Spearphishing LinkSome Casbaneiro campaigns start with a malicious link in an email.
T1193Spearphishing AttachmentSome Casbaneiro campaigns start with a malicious email attachment.
ExecutionT1073DLL Side-LoadingSome campaigns bundle a legitimate executable so as to use this technique in order to execute Casbaneiro.
T1086PowerShellOne distribution chain uses an obfuscated PowerShell script.
PersistenceT1060Registry Run Keys / Startup FolderCasbaneiro downloaders set up persistence via Run key.
Defense EvasionT1140Deobfuscate/Decode Files or InformationCasbaneiro uses encrypted remote configuration data and its commands are encrypted too.
T1036MasqueradingCasbaneiro sometimes masquerades as or is bundled with a legitimate application.
T1064ScriptingPowerShell and JavaScript are used in Casbaneiro distribution chains.
Credential AccessT1056Input CaptureCasbaneiro contains a command to execute a keylogger. It also steals contents from fake windows it displays.
DiscoveryT1083File and Directory DiscoveryCasbaneiro searches for various filesystem paths in order to determine what applications are installed on the victim's machine.
T1057Process DiscoveryCasbaneiro searches for various process names in order to determine what applications are running on the victim's machine.
T1063Security Software DiscoveryCasbaneiro scans the system for installed security software.
T1082System Information DiscoveryCasbaneiro extracts the version of the operating system.
CollectionT1115Clipboard DataCasbaneiro captures and replaces bitcoin wallets in clipboard.
T1113Screen CaptureCasbaneiro contains a command to take screenshots.
Command and ControlT1024Custom Cryptographic ProtocolCasbaneiro uses three different custom cryptographic protocols.
T1032Standard Cryptographic ProtocolCasbaneiro encrypts its commands using the standard AES protocol.
ExfiltrationT1041Exfiltration Over Command and Control ChannelCasbaneiro sends the data it collects to its C&C server.

Discusión