Check Point Research encuentra nueva variante de BBTok en América Latina: Descubre cómo utilizan binarios de vivir de la tierra (LOLBins) para operar con bajas tasas de detección. Analizamos los componentes del lado del servidor y la evolución de los métodos de ataque. Este informe detalla las funcionalidades del servidor de carga útil y cómo generan cargas personalizadas para cada víctima
Hallazgos clave en la investigación sobre BBTok:
- BBTok sigue activo, dirigido a usuarios en Brasil y México mediante geo-cercas.
- Los operadores han evolucionado sus técnicas desde 2020, con mayor ofuscación y descargadores para evitar detección.
- BBTok replica interfaces de más de 40 bancos, engañando a las víctimas para que revelen información sensible.
- Cargas útiles personalizadas se generan desde el lado del servidor según sistema operativo y ubicación.
- Cadena de infección diversificada para diferentes versiones de Windows, utilizando varios tipos de archivos.
- Los actores de amenazas agregan código de código abierto y nuevos exploits a su arsenal constantemente.”
Fondo de BBTok
BBTok, un troyano bancario, surgió en América Latina en 2020 y se propagó mediante ataques sin archivos. Sus funciones incluyen tareas como finalizar procesos, controlar el teclado y el mouse, y manipular el portapapeles. Este malware simula páginas de inicio de sesión de varios bancos en México y Brasil. Los operadores de BBTok han adoptado nuevas tácticas, pasando de archivos adjuntos de correo electrónico a enlaces de phishing. Los enlaces de phishing descargan archivos ISO o ZIP que, a su vez, inician la cadena de infección. Este proceso, en apariencia sencillo, oculta una complejidad detrás de escena. El análisis de los enlaces revela el uso de recursos del servidor para la distribución del malware, generando cadenas de infección personalizadas según el sistema operativo y la ubicación de la víctima.
Secuestros Bancarios por BBTok: Detalles Cruciales
BBTok, el banquero, ofrece una amplia gama de capacidades a sus operadores, incluyendo control remoto y funciones típicas de troyanos bancarios. BBTok puede imitar interfaces de más de 40 bancos en México y Brasil, como Citibank, Scotibank, Banco Itaú y HSBC (consulta el Apéndice B para la lista completa). El banquero busca pistas de que la víctima usa estos bancos al examinar ventanas y pestañas abiertas en el navegador. Su objetivo predeterminado apunta a BBVA, con una interfaz falsa que simula su apariencia real. Estas interfaces engañosas persuaden a los usuarios para que divulguen información personal y financiera. El objetivo principal es obtener códigos de seguridad/token (2FA) y realizar transacciones no autorizadas. En ocasiones, también busca el número de tarjeta de pago de la víctima
BBTok, que está escrito en Delphi, utiliza la Biblioteca de Componentes Visuales (VCL) para crear formularios que, literalmente, forman estas interfaces falsas. Esto permite a los atacantes generar de forma dinámica y natural interfaces que se ajustan a la pantalla del ordenador de la víctima y a un formulario específico para el banco de la víctima, sin levantar sospechas. BBVA, que es el banco predeterminado al que apunta el banquero, tiene su interfaz almacenada en una de esas formas llamada “TFRMBG”. Además de los sitios bancarios, los atacantes se han mantenido al día con los tiempos y también han comenzado a buscar información sobre Bitcoin en la máquina infectada, buscando activamente cadenas como ‘bitcoin’, ‘Electrum’ y ‘binance’.
BBTok no se detiene en el engaño visual; También tiene otras capacidades. Específicamente, puede instalar una extensión de navegador maliciosa o inyectar una DLL llamada “rpp.dll” para aumentar su control sobre el sistema infectado y es probable que mejore sus capacidades para engañar a las víctimas. Estos no estaban disponibles durante el tiempo de análisis.
Lo que es notable es el enfoque cauteloso del operador: todas las actividades bancarias solo se ejecutan bajo comando directo de su servidor C2, y no se llevan a cabo automáticamente en todos los sistemas infectados.
Análisis del Servidor de Carga Útil de BBTok
El servidor de carga útil de BBTok se utiliza eficazmente para gestionar su campaña. Esta campaña se inicia cuando una víctima hace clic en un enlace malicioso, generalmente enviado a través de correo electrónico de phishing. Cuando se hace clic en el enlace, se produce la descarga de un archivo ZIP o una imagen ISO, según el sistema operativo de la víctima. A pesar de que este proceso parece sencillo para la víctima, en el servidor se genera una carga útil única en función de los parámetros detectados en la solicitud.
Este proceso se desarrolla en un servidor basado en XAMPP y consta de tres componentes esenciales:
- Script de PowerShell: Este script controla la preparación de la carga útil y contiene la mayor parte de la lógica para crear archivos señuelo.
- Base de código PHP y base de datos: Diseñada para documentar y gestionar infecciones. La base de datos utiliza SQLite para almacenar información sobre las solicitudes de las víctimas.
- Utilidades auxiliares: Mejoran la funcionalidad de estos componentes.
La secuencia de eventos es la siguiente:
- Una víctima realiza una solicitud HTTP a una de las rutas posibles, dependiendo del idioma (español o portugués).
- En función del archivo solicitado, el servidor gestiona la solicitud mediante un archivo .htaccess y descarga.php.
- Los scripts utilizan el archivo para almacenar información a través de una base de datos SQLite sobre la solicitud, incluida la huella digital de la víctima.
- descarga.php llama a generar un archivo personalizado, que se entrega finalmente a la víctima.
El código base en PHP consta de los siguientes archivos:
- descarga/descargar.php: Gestiona nuevas conexiones y sirve documentos señuelo a las PC de las víctimas.
- db.php: Genera y gestiona la base de datos SQLite que incluye datos de las víctimas.
- generator.php: Clase de utilidad utilizada para generar enlaces aleatorios, cadenas y otras funcionalidades.
El archivo “descargar” contiene la lógica principal del proceso de infección y está anotado con comentarios en español y portugués, lo que proporciona pistas sobre el origen de los atacantes.
El script realiza las siguientes acciones:
- Verifica la ubicación geográfica de la víctima utilizando la dirección IP referida en el enlace mediante ip-api.com y guarda esta información en un archivo.
- Si se determina que la víctima no se encuentra en un país objetivo (en este caso, México o Brasil), la conexión HTTP se cierra de inmediato con un mensaje de error 404. Esto significa que el servidor solo atiende a víctimas de estos dos países y rechaza cualquier otra solicitud.
3. Si la víctima pasa la verificación de país, el script procede a analizar el agente de usuario de la víctima para identificar la versión del sistema operativo Windows que está utilizando.
4. Después de identificar la versión del sistema operativo Windows de la víctima y recopilar otros detalles, el script envía esta información al generador de carga útil de PowerShell junto con el código de país y el nombre del archivo señuelo.
Generador de Carga Útil de PowerShell en BBTok
El script del generador de carga útil de PowerShell, denominado ps_gen.ps1
, desempeña un papel crucial en la operación del malware BBTok. A continuación, se presenta una descripción de su funcionamiento:
Este script tiene la capacidad de generar diversas cargas útiles de archivos, ya sea en formato ZIP o ISO. A lo largo del tiempo, se han encontrado varias versiones de este script, algunas con fechas que datan de julio de 2022, lo que sugiere la duración de la operación del malware.
El análisis de la versión más reciente de este script se detalla a continuación. Para información adicional sobre variaciones anteriores y cambios en el script a lo largo del tiempo, consulte la sección de “Versiones anteriores”.
El script generador es invocado por el servidor de carga útil utilizando la función DownloadFile()
con argumentos como el nombre del archivo generado, la versión del sistema operativo de la víctima y el código de país de la víctima. Estos argumentos se pasan al script para personalizar la carga útil según las especificaciones de la víctima.
El servidor de carga útil de BBTok genera las cargas maliciosas de archivo según dos parámetros principales:
- País de origen de la víctima: Brasil o México.
- Sistema operativo extraído del User-Agent: Windows 10 o Windows 7.
Según estos resultados, se determinan los siguientes parámetros del archivo malicioso:
- Tipo de archivo: ISO para Windows 10, ZIP para Windows 7 y otros.
- Nombre del archivo DLL: Diferente según el país de destino, utilizando “TrammyGammy” para Brasil y otro nombre para México.
Además, el archivo contiene un acceso directo LNK. En Windows 10, utiliza el icono de acceso directo de Microsoft Edge, mientras que en Windows 7, utiliza el de Google Chrome.
La lógica de ejecución final varía según el sistema operativo de la víctima. Para las víctimas de Windows 10, el script ejecuta MSBuild.exe con un archivo que se encuentra en el servidor y que almacena las DLL maliciosas necesarias para la siguiente etapa. Por otro lado, para Windows 7, la carga útil simplemente descarga la DLL remota correspondiente mediante la ejecución de CMD.
Add-PoshOfuscación
Todas las cargas útiles se someten a un proceso de ofuscación utilizando la función “Add-PoshObfuscation”. Un rastreo básico del código lleva a una fuente única en los foros de hackeo del sitio “benigno.net”. Más precisamente, se trata de una respuesta publicada por un usuario llamado “Qismon” en agosto de 2021. En su respuesta, este usuario proporciona recomendaciones sobre cómo evitar AMSI (Interfaz de Seguridad Avanzada de Microsoft) y productos de seguridad, y también comparte el código de “PoshObfuscation”.
El proceso anteriormente mencionado da lugar a dos variantes de la cadena de infección: una diseñada para Windows 7 y otra para Windows 10. Las diferencias entre ambas versiones se explican por la intención de eludir las medidas de detección más recientes, como AMSI (Interfaz de Seguridad Avanzada de Microsoft).
Ambas cadenas de infección hacen uso de archivos DLL maliciosos que siguen una convención de nombres similar, con nombres como “ammy.dll”, “brammy.dll”, “kammy.dll”, o “trammy.dll”. Estas últimas son versiones más ligeras y ofuscadas del cargador de BBTok, que emplean técnicas de geofencing para evitar la detección antes de llevar a cabo actividades maliciosas. La carga útil final es una nueva iteración del troyano bancario BBTok. Como se mencionó anteriormente, BBTok incluye múltiples herramientas adicionales protegidas con contraseña, lo que otorga a los actores amenazas un acceso completo al sistema infectado, junto con funcionalidades adicionales.
Cadena de infección de Windows 7
La cadena de infección para Windows 7 es relativamente simple y se basa en un archivo LNK contenido en un archivo ZIP. Cuando se ejecuta, el archivo LNK inicia la carga útil “*ammy.dll” usando el comando “rundll32.exe”, el cual descarga, descomprime y ejecuta la carga útil BBTok.
Cadena de infección de Windows 10
La cadena de infección para Windows 10 se encuentra en un archivo ISO con 3 componentes: un archivo LNK, un archivo señuelo y un ejecutable cmd renombrado como “.exe”. Cuando se hace clic en el archivo LNK, se inicia la cadena de infección, utilizando el cmd renombrado.exe para ejecutar los comandos de la siguiente manera:
La cadena de infección:
- Copie el archivo señuelo en la carpeta %userprofile% y ábralo.
- Ejecuta MSBuild.exe para crear una aplicación mediante un XML almacenado en un servidor remoto, obtenido a través de SMB (Server Message Block).
- MSBuild.exe crea una DLL con un nombre aleatorio, que luego descarga *ammy.dll del servidor y la ejecuta utilizando rundll32.exe, como se muestra en el contenido del XML.
4. El descargador *ammy.dll descarga, descomprime y ejecuta la carga maliciosa BBTok.
Esta combinación especial de CMD, MSBuild y recuperación de archivos a través de SMB resulta en una baja tasa de detección para las cadenas de infección en Windows 10.
Versiones anteriores
Durante nuestro análisis de la campaña BBTok, encontramos múltiples versiones de los artefactos del servidor de carga útil. Vimos cambios en todas las partes de la operación, incluido el código PHP, el script de PowerShell y otras utilidades.
Cambios en el código PHP
- Originalmente, solo las víctimas en México fueron atacadas.
- La IP de un servidor de carga útil diferente, 176.31.159.196, estaba codificada de forma rígida en el script.
- En lugar de ejecutar el script de PowerShell directamente, se llamó a un script con nombre gen.php. La dirección IP de la víctima, el agente de usuario y una bandera se insertaron en una base de datos utilizando el archivo db.php. Más tarde, se comprueba que la bandera no sirve la misma carga útil dos veces.
Modificaciones del script de PowerShell
- En las primeras versiones del script, el LNK simplemente ejecutaba un script de PowerShell con ciertos argumentos.
- Una actualización posterior agregó un señuelo PDF.
- La versión más reciente abre un sitio web gubernamental brasileño y cambia el archivo XML utilizado por MSBuild y el nombre de la DLL reservada para objetivos brasileños.
Código no utilizado y vectores de infección
- Algunas secciones del código dentro del script de PowerShell no se usaron, y el servidor hospedó archivos que no formaban parte del flujo de infección principal. Por ejemplo, se encontró un documento que explotaba el CVE Follina, un xll malicioso, archivos JavaScript vacíos y archivos bat con diferentes implementaciones de descarga de etapas adicionales.
Victimología y atribución
Nuestro análisis del componente del lado del servidor también arroja luz sobre una de las campañas recientes vista desde el lado de los actores de amenazas, basada en una base de datos que encontramos que documenta el acceso a la aplicación maliciosa. La base de datos tiene un nombre simple y contiene más de 150 entradas, todas únicas. Los encabezados de tabla corresponden a los siguientes términos en portugués:
- chave, que significa clave.
- assunto, que significa sujeto.
- user_agent, que se refiere al agente de usuario del dispositivo de la víctima.
- baixou, que significa descargado.
La columna nombrada “chave” contenía las direcciones IP de las víctimas, mientras que la columna “assunto” estaba vacía. Este hallazgo proporciona información sobre las víctimas y cómo los actores de amenazas documentaron el acceso a la aplicación maliciosa.
Conclusión
A pesar de sus técnicas evasivas y su enfoque en las víctimas de México y Brasil, la presencia continua y activa de BBTok demuestra que sigue siendo una amenaza relevante en la región. Con su amplio conjunto de capacidades y un método de entrega único que involucra archivos LNK, SMB y MSBuild, BBTok representa un peligro para organizaciones e individuos en América Latina.
Este análisis poco común del servidor detrás de BBTok nos ha proporcionado una visión única de la evolución de las tácticas y técnicas utilizadas por los actores de amenazas. Esta información refuerza la idea de que los actores de amenazas, incluidos aquellos con motivaciones financieras, están en constante evolución y mejora de sus métodos, siguiendo las tendencias de seguridad y explorando nuevas oportunidades. Para mantenerse a salvo y protegidos contra futuros ataques, los investigadores de seguridad deben mantener un enfoque similar en su constante búsqueda de soluciones y estrategias.
Protecciones de Check Point
Check Point ofrece protecciones contra BBTok a través de la emulación de amenazas y firmas específicas que pueden ayudar a detectar y prevenir la infección. Estas protecciones incluyen:
- Banker.Wins.BBTok.A
- Banker.Win.BBTok.B
- Technique.Wins.SuxXll.A
- Trojan.Win.XllAddings.A
También se proporciona detección a través de Harmony en forma de:
- Trojan.Win.Generic.AQ
- Trojan.Win.Generic.AR
Estas medidas de seguridad pueden ser útiles para protegerse contra la amenaza de BBTok y deben ser implementadas por organizaciones y usuarios para garantizar la seguridad de sus sistemas y datos.
Apéndice A – COI
Archivos
Nombre | Descripción | sha256 |
DANFE357702036539112.iso | Archivo Brasileño de Señuelos | be36c832a1186fd752dd975d31284bdd2ac3342bd3d32980c6c52271d0d2c84c |
DANFE357666506667634.iso | Archivo Brasileño de Señuelos | 095b793d60ce5b15fac035e03d41f1ddd2e462ec4fa00ccf20553af3c09656f6 |
DANFE352023067616112.iso | Archivo Brasileño de Señuelos | 8e65383a91716b87651d3fa60bc39967927ab01b230086e3c5a2f9a096fc6c57 |
DANFE358567378531506.pdf | Señuelo brasileño PDF | 825a5c221cb8247831745d44b424954c99e9023843c96def6baf84ccb62e9e5f |
Brammy.dll | BBTok Downloader para víctimas brasileñas | e5e89824f52816d786aaac4ebdb07a898a827004a94bee558800e4a0e29b083a |
Tranvía.dll | BBTok Downloader para víctimas brasileñas | 07028ec2a727330a3710dba8940aa97809f47e75e1fd9485d8fc52a3c018a128 |
HtmlFactura3f48daa069f0e42253194ca7b51e7481DPCYKJ4Ojk.iso | Archivo de Señuelos Mexicanos | 808e0ddccd5ae4b8cbc4747a5ee044356b7aa67354724519d1e54efb2fc4f6ec |
HtmlFactura-497fc589432931214ed0f7f4de320f3brzi8y1MTdn.iso | Archivo de Señuelos Mexicanos | f83b33acfd9390309eefb4a17b42e89dcdbe759757844a3d9b474d570ddbab86 |
HtmlFactura-4887f50edb734a49d33639883b60796do52lTREjMh.iso | Archivo de Señuelos Mexicanos | dbeb4960cdb04999c1a5a3360c9112e3bc1de79534d7ac9027b7fdb7798968a6 |
html-factura35493606948895934113728188857090JCOY.pdf | Señuelo mexicano PDF | be35b48dfec1cc2fc046423036fa76fc9096123efadac065c80361c45f401d3c |
Kammy.dll | BBTok Downloader para víctimas mexicanas | 9d91437a3bfd37f68cc3e2e2acfbbbbfffa3a73d8f3f466bc3751f48c6e1b40e |
Gammy.dll | BBTok Downloader para víctimas mexicanas | d9b2450e4b91739c39981ab34ec7a3aeb33fb3b75deb45020b9c16596a97a219 |
ze.docx | Maldoc sin usar | 3b43de8555d8f413a797e19c414a55578882ad7bbcb6ad7604bb1818dd3eedcd |
xll.xll | xll malicioso no utilizado | fb7a958b99275caa0c04be2a821b2a821bb797c4be6bd049fa09144de349ea41 |
fe | BBTok | CD22e14f4fa6716cfc9964fdead813d2ffb80d6dd716e2114f987ff36cc5e872 |
fe2 | BBTok | 5c59cd977890ed32eb60caca8dc2c9a667cff4edc2b12011854310474d5f405d |
fe2 | BBTok | 5ad42b39f368a25a00d9fe15fa5326101c43bf4c296b64c1556bc49beeee9ae1 |
fe235 | BBTok | b198da893972df5b0f2cbcec859c0b6c88bb3cf285477b672b4f40c104bcbd36 |
Indicadores de red
Nombre | Descripción |
Danfe[.] está certificado[.] .com | Dominio de phishing |
rendinfo[.] tienda | Dominio de phishing |
Sodkvsodkv[.] proveedor[.] serveftp[.] red | Dominio de descarga de DLL malicioso |
216[.] 250[.] 251[.] 196 | Servidor de carga útil |
173[.] 249[.] 196[.] 195 | Servidor de carga útil |
176[.] 31[.] 159[.] 196 | Servidor de carga útil |
147[.] 124[.] 213[.] 152 | Servidor de carga útil |
Apéndice B – Lista de bancos afectados
Banca Caixa | CCB Brasil |
Banco Itaú | Mercantil do Brasil |
Santander | BANCO PAULISTA |
Getnet | Banco Daycoval |
Sicredi | Mercado Pago |
Sicoob | Nubank |
Citibank Brasil | Banco C6 |
Banca por Internet BNB | Banca por Internet Inter |
Unicred Portal | Bancoob |
Banco da Amazonia | BBVA |
Banestes | Banorte |
Banco Alfa | HSBC |
Banpará | Banamex |
Banese | Bajío |
BRB Banknet | Scotiabank |
Banco Intermedium | Afirme |
Banco Topázio | Banregio |
Uniprime | Azteca |
Cooperativa de Crédito – CrediSIS | Multiva |
Banco Original | Inbursa |
Banco Fibra | CiBanco |
Bradesco Despachantes e Auto Escola – Cidadetran | Sicoobnet |
Navegador Exclusivo | Banco do Brasil |
fuente: research.checkpoint