Bizarro es otra familia de troyanos bancarios originaria de Brasil, la cual ahora también se encuentra en otras regiones del mundo. Hemos identificado usuarios que han sido atacados por Bizarro en España, Portugal, Francia e Italia. Su objetivo es robar las credenciales de clientes de 70 bancos de diferentes países europeos y sudamericanos. Bizarro sigue los mismos pasos de Tetrade: para realizar sus ataques, utiliza afiliados o recluta “mulas” que retiran el dinero o simplemente usa traducciones a los idiomas locales para solicitar ayuda.
En este artículo mostraremos las características técnicas de los componentes del troyano, dando una visión detallada de las técnicas de ofuscación, el proceso de infección y su funcionamiento posterior, así como las tácticas de ingeniería social utilizadas por los ciberdelincuentes para convencer a las víctimas de proporcionar sus datos personales relacionados con la banca en línea.
Bizarro se compone de módulos x64 y es capaz de engañar a los usuarios para que introduzcan códigos de autenticación de dos factores en ventanas emergentes falsas. También puede convencer a un usuario para descargar una aplicación para teléfonos inteligentes con la ayuda de la ingeniería social. Usa servidores hospedados en Azure y Amazon y servidores de WordPress comprometidos para almacenar el malware y recopilar telemetría.
Bizarrolandia
Bizarro se distribuye a través de paquetes MSI que las víctimas descargan desde enlaces en correos electrónicos no deseados. Una vez ejecutado, Bizarro descarga un archivo ZIP desde un sitio web previamente comprometido. En el momento de la publicación, identificamos servidores comprometidos de WordPress, Amazon y Azure utilizados para descargar el archivo ZIP. El instalador tiene dos vínculos embebidos, de los cuales uno se elige en función de la arquitectura del procesador.
Típico correo malicioso enviado por los operadores de Bizarro
El archivo descargado contiene los siguientes archivos:
- un archivo DLL malicioso;
- un ejecutable legítimo que es un script de AutoHotkey (en algunos ejemplos se utiliza AutoIt en lugar de AutoHotkey);
- un pequeño script que llama a una función exportada desde el archivo DLL mencionado anteriormente.
El archivo DLL que se descarga en el disco está desarrollado en Delphi y exporta una función que contiene el código malicioso. Los desarrolladores del malware suelen ofuscar los archivos con el fin de complicar el análisis de código.
El código de las funciones exportadas es removido por el protector. Los bytes de las funciones exportadas son restauradas por el punto de entrada del archivo DLL en tiempo de ejecución, el cual está altamente ofuscado. Los trucos utilizados por los cibercriminales para complicar el análisis son el constante desdoblamiento y la inserción de código basura.
Es común que los desarrolladores de malware estén constantemente mejorando la protección de sus binarios. En versiones anteriores de Bizarro, solo se protegía la función de punto de entrada de los programas maliciosos. En muestras más recientes, el protector también se utiliza para ocultar las llamadas de las funciones de API importadas.
Cuando Bizarro se inicia, primero interrumpe todos los procesos del navegador para terminar las sesiones existentes con los sitios web de banca en línea. Cuando se reinician los procesos del navegador, el usuario se ve obligado a volver a introducir las credenciales de su cuenta bancaria, y el malware las captura. Otra técnica que Bizarro utiliza para obtener la mayor cantidad posible de credenciales es deshabilitar la función de autocompletar en el navegador.
Bizarro recopila la siguiente información acerca del sistema en el que se ejecuta:
- el nombre del equipo;
- la versión del sistema operativo;
- el nombre predeterminado del navegador;
- el nombre del software antivirus instalado.
Bizarro utiliza el agente de usuario de Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0 al enviar la solicitud POST. Este agente de usuario tiene errores tipográficos: por ejemplo, debería haber un símbolo de espacio después de la palabra compatible; y falta el cierre del paréntesis. Nuestra investigación muestra que este error no se ha corregido en las últimas versiones. Después de eso, Bizarro crea un archivo vacío en el directorio %userprofile%, marcando así el sistema como infectado. El nombre del archivo es el nombre del ejecutable del motor de ejecución de script (AutoIt o AutoHotKey) y la extensión .jkl.
Después de enviar la información del equipo del usuario al servidor de telemetría, Bizarro inicia el módulo de captura de pantalla, que carga la librería magnification.dll y obtiene la dirección de la función de API obsoleta MagSetImageScalingCallback. Con esto, el troyano puede capturar la pantalla del usuario y también hacer un monitoreo constante del portapapeles del sistema, en busca de una dirección de billetera de Bitcoin. Si la encuentra, la reemplaza con la dirección de una billetera perteneciente a los desarrolladores de malware.
La funcionalidad de backdoor es el componente central de Bizarro ya que permite a los atacantes robar credenciales de cuentas bancarias en línea. El malware está dirigido a 70 bancos de diferentes países europeos y sudamericanos.
El backdoor contiene más de 100 comandos y la mayoría de ellos se utilizan para mostrar mensajes emergentes falsos a los usuarios. Los componentes principales del backdoor no se inician hasta que Bizarro detecta una conexión a uno de los sistemas de banca en línea de alguno de los bancos enumerados en el código.
Para hacerlo, el malware identifica las ventanas abiertas y recopila su nombres. Si estos nombres contienen caracteres en blanco, letras con acentos o caracteres especiales (como ñ o á) o símbolos que no son letras del alfabeto, como guiones, los elimina de las cadenas del nombre de las ventanas. Si el malware identifique el nombre de una ventana que coincida con la lista de palabras relacionadas con la aplicación de un banco, entonces se continúa con la ejecución del malware.
Lo primero que hace el malware es ejecutar el comando ipconfig/flushdns para remover el caché DNS, para evitar la conexión a una IP bloqueada. Después de eso, el malware resuelve el nombre de dominio hacia una dirección IP, crea un socket y conecta el equipo a esa dirección. En caso de que la conexión se realice correctamente, se crea el archivo %userprofile%\bizarro.txt.
El backdoor y su C2
Los comandos que Bizarro recibe del C2 (servidor de administración) se pueden dividir en las siguientes categorías:
-
Comandos que permiten a los operadores del C2 obtener datos sobre la víctima y administrar el estado de conexión.
El comando <|PT|> envía la información del entorno al C2. La información enviada incluye la versión de Bizarro, el nombre del sistema operativo, el nombre del equipo del usuario, el identificador único de Bizarro, el software antivirus instalado y el nombre cifrado del banco al que se ha accedido. Los nombres cifrados son nombres de banco escritos en leetspeak.
-
Comandos que permiten a los atacantes controlar los archivos almacenados en el disco duro de la víctima.
El comando <|DownloadFile|> descarga archivos en el equipo de la víctima, mientras que el comando <|UploadFile|> permite a los atacantes obtener los archivos del equipo del usuario. Los comandos <|Folder|> y <|File|> permiten a los atacantes buscar carpetas y archivos que tienen determinado nombre.
-
Comandos que permiten a los atacantes controlar el ratón y el teclado del usuario.
El comando <|SuaykRJ|> realiza un clic izquierdo del botón del ratón en la ubicación indicada. El comando <|SuaykJI|> realiza un doble clic en la ubicación indicada, mientras que el comando <|IXjzwtR|> realiza un clic con el botón derecho del ratón. El comando <|ztUjzwtR|> mueve el ratón a una ubicación indicada. La sintaxis de estos tres comandos es <|comandad name|>x coordinate<|>y coordinate<<|.
Bizarro también puede manipular el teclado del usuario (modificando lo que el usuario realmente escribe) con la ayuda del comando carmena.
-
Comandos que permiten a los atacantes controlar la operación del backdoor, apagar, reiniciar o dañar el sistema operativo y limitar la funcionalidad de Windows.
El comando LkingWajuGhkzwu apaga el backdoor, mientras que el comando vkbAlcvtlY descarga un archivo BAT al directorio de trabajo. Este archivo es responsable de eliminar el malware del disco.
-
Comandos que registran pulsaciones de teclas
Bizarro utiliza dos comandos que son responsables de la captura de lo que teclea el usuario. El comando COZUMEL inicia el proceso de captura, mientras que el comando COZUMARIA lo detiene.
-
Comandos que se utilizan para realizar la ingeniería social
Estos comandos muestran varios mensajes que engañan a los usuarios para que den a los atacantes acceso a su cuenta bancaria. El tipo de los mensajes mostrados pueden variar, desde simples cuadros de mensaje, a ventanas bien diseñadas con la información bancaria.
Primero describiremos los comandos que muestran los cuadros de mensaje de Windows. El comando dkxqdpdv muestra el siguiente mensaje de error “Los datos ingresados son incorrectos, por favor intenten nuevamente”.
Bizarro muestra un mensaje que indica al usuario que vuelva a introducir los datos solicitados
El comando vanessa muestra un mensaje de error que solicita al usuario que introduzca la información de confirmación. Para convencer aún más al usuario de que todas las operaciones son legítimas, el malware muestra el RUT (Rol Único Tributario, un número de identificación chileno) y el valor que se proporcionó anteriormente. El mensaje contiene el siguiente texto:
Mensaje de error que pide al usuario que introduzca un código de confirmación
El comando LMAimwc muestra otro mensaje de error. Esta vez le dice al usuario que tiene que reiniciar su equipo necesita para terminar una operación relacionada con la seguridad. Para ser más precisos, Bizarro muestra el siguiente texto:
Mensaje de error que indica al usuario que el sistema operativo se reiniciará
Los mensajes más interesantes que muestra Bizarro son los que fingen ser de sistemas bancarios en línea. Para mostrar estos mensajes, Bizarro necesita descargar una imagen JPEG que contenga el logotipo del banco y las instrucciones que la víctima debe seguir. Estas imágenes se almacenan en el directorio del perfil de usuario de forma cifrada. Antes de utilizar una imagen en un mensaje, se la descifra con un algoritmo XOR de varios bytes. A medida que los mensajes se descargan desde el servidor C2, solo se pueden encontrar en las máquinas de las víctimas.
El primer tipo de mensajes personalizados que Bizarro puede mostrar son mensajes que congelan el equipo de la víctima, lo que permite a los atacantes ganar algo de tiempo. Cuando se recibe un comando para mostrar un mensaje de este tipo, la barra de tareas se oculta, la pantalla se atenúa y entonces es cuando se muestra el mensaje. Durante el tiempo que se muestra el mensaje, el usuario no tiene ninguna posibilidad de cerrarlo ni abrir el Administrador de tareas. El propio mensaje indica al usuario que el sistema está comprometido y, por lo tanto, debe actualizarse o que se están instalando componentes de seguridad y rendimiento del navegador. Este tipo de mensaje también contiene una barra de progreso con el texto antes mencionado y que cambia con el tiempo.
En las siguientes imágenes, se muestran los mensajes que aparecen en las pantallas de las víctimas, con mensajes escritos en español:
Bizarro bloquea una página de inicio de sesión bancaria y le dice al usuario que se están instalando actualizaciones de seguridad
Los dos mensajes siguientes tratan de convencer a la víctima de que su sistema está comprometido. En la mayoría de ellos, Bizarro le dice al usuario que no preste atención las transacciones que se producirán durante la “actualización de seguridad”, ya que se utilizan sólo para confirmar la identidad del cliente. Este mensaje hace que los clientes se sientan seguros de aprobar todas las transacciones solicitadas por los atacantes.
Mensajes que le dicen al usuario que su sistema está comprometido
Bizarro también intenta inducir a las víctimas a que envíen códigos de autenticación de dos factores a los atacantes. Otra característica interesante que hemos visto es que puede tratar de convencer a la víctima de que instale una aplicación maliciosa en su teléfono inteligente. Utiliza las siguientes ventanas para identificar el tipo de sistema operativo móvil instalado:
Bizarro pide al usuario que elija el sistema operativo de su smartphone
En caso de que la víctima elija Android, el servidor C2 enviará un enlace con una aplicación maliciosa al cliente. El cliente generará un código QR con la ayuda de la API de Google Charts y enviará una solicitud con los siguientes argumentos:
1 2 |
http://chart.apis.google.com/chart?chs=<QR code width>x<QR code height>&cht=qr&chld=<nivel de corrección de errores>&chl=<enlace a la aplicación> |
A continuación, el código QR obtenido aparecerá una ventana con el siguiente mensaje:
Bizarro solicita al usuario que analice el código QR
Escenario de ataque
Con la ayuda de los comandos que los desarrolladores de Bizarro han incluido en el troyano, los delincuentes pueden lanzar el ataque bajo el siguiente esquema:
Esquema de infección utilizado por Bizarro
Según la lista de bancos identificados en la campaña, el actor de amenazas detrás de Bizarro está apuntando a clientes de varios bancos de Europa y Sudamérica. Gracias nuestra telemetría, hemos visto víctimas de Bizarro en diferentes países, entre ellos Brasil, Argentina, Chile, Alemania, España, Portugal, Francia e Italia. Estas estadísticas vuelven a demostrar que los operadores de Bizarro han ampliado su interés hacia otras regiones más allá de Brasil.
Distribución de la detección de Bizarro en los últimos 12 meses
Conclusión
Hace poco hemos identificado varios troyanos bancarios procedentes de Sudamérica (como Guildma, Javali, Melcoz, Grandoreiro y Amavaldo) que están expandiendo sus operaciones a otras regiones, sobre todo Europa. Bizarro es un ejemplo más de ello. Los actores de amenazas detrás de esta campaña están tratando de adoptar varios métodos técnicos para complicar el análisis y la detección de malware, así como trucos de ingeniería social que pueden ayudar a convencer a las víctimas de que proporcionen sus datos personales relacionados con la banca en línea.
Detalles adicionales, como también los IOC, TTPs de MITRE ATT&CK, reglas de Yara y hashes relacionados con esta amenaza están disponibles para los usuarios de nuestros servicios Kaspersky Threat Intelligence. Los productos Kaspersky detectan esta familia como Trojan-Banker.Win32.Bizarro o Trojan-Banker.Win64.Bizarro.
Indicadores de compromiso
Hashes MD5 de referencia
e6c337d504b2d7d80d706899d964ab45
daf028ddae0edbd3d7946bb26cf05fbf
5184776f72962859b704f7cc370460ea
73472698fe41df730682977c8e751a3e
7a1ce2f8f714367f92a31da1519a3de3
0403d605e6418cbdf8e946736d1497ad
d6e4236aaade8c90366966d59e735568
a083d5ff976347f1cd5ba1d9e3a7a4b3
b0d0990beefa11c9a78c701e2aa46f87
38003677bfaa1c6729f7fa00da5c9109
El troyano bancario Bizarro extiende sus ataques hacia Europa