Nuevo malware BlackDog: Campaña de Man-in-the-Browser dirigida a México
Visión general
Entre la última semana de junio y la tercera de agosto, SCILabs identificó una nueva campaña de malware, la cual se está distribuyendo a través de phishing con el pretexto de supuestas facturas y que realiza ataques Man-in-the-Browser utilizando dominios como kawaitravelmexico[.]com y facturamx[.]club, suplantando al Servicio de Administración Tributaria (SAT) en México y sitios como hxxp[:]//www[.]sat[.]gob[.]mx.
Su principal objetivo es robar información de los usuarios de entidades financieras, inyectando código en el navegador Chrome, por medio de una extensión maliciosa.
Durante cerca de cinco semanas, SCILabs continuó con las actividades de monitoreo e identificó dos variantes de esta campaña que, debido a sus características, nombró como BlackDog. SCILabs realizó múltiples investigaciones para determinar si existe alguna relación entre este malware y otras familias como Magnant, BokBot, Chaes, y Kronos; sin embargo, no se encontró ninguna relación directa entre ellas.
Por último, cabe mencionar que los artefactos que se utilizan en la cadena de infección de esta campaña, identificados por SCILabs, tienen una baja tasa de detección por parte de las soluciones de antivirus en la plataforma VirusTotal.
¿Cómo puede afectar a una organización?
El objetivo principal de esta campaña es realizar un ataque Man-in-the-Browser para robar información bancaria de todo tipo de usuarios. Además, durante la cadena de infección, los atacantes podrían utilizar los droppers identificados por SCILabs para descargar malware adicional y más peligroso, como ransomware.
Si un ataque es exitoso, podría causar pérdidas económicas y de reputación; además, los ciberdelincuentes podrían hacer mal uso de la información obtenida, filtrándola o vendiéndola en foros clandestinos o en el mercado negro.
Análisis
Contexto de la amenaza, primera campaña analizada en junio de 2022
SCILabs identificó, en fuentes públicas, el dominio facturamx[.]club, que simula ser un sitio de facturación de México, y al realizar la investigación se recuperó el artefacto con el que se inicia la cadena de infección.
El primer artefacto malicioso encontrado por SCILabs fue feb.hta, descargado de facturemx[.]mx/feb.hta, que corresponde a una plantilla HTML con un script ofuscado de tipo VBS.
Figura 1 – Primera etapa del malware (archivo HTA)
Si la víctima abre el archivo .hta, ejecuta un script ofuscado de PowerShell, cuyo objetivo es descargar y ejecutar la segunda etapa del malware.
Figura 2 – Script ofuscado de PowerShell – Segunda etapa del malware
El malware crea una tarea programada para ejecutar el archivo correspondiente a la tercera etapa de la infección, el cual está ofuscado y es del tipo .jse (JScript Encoded Script Format), que tiene como objetivo generar persistencia y descargar los artefactos de la cuarta etapa de la infección.
Figura 3 – Tarea programada para ejecutar la tercera etapa del malware
Figura 4 – Tercera etapa del malware (archivo JSE)
El artefacto .jse se encarga de descargar los siguientes archivos:
- json: archivo manifest en formato JSON que contiene información sobre la extensión maliciosa de Google Chrome, que será instalada posteriormente.
- seguro.js: extensión maliciosa de Google Chrome, desarrollada con código JavaScript
- Screenshotfrom202034-58.png: archivo de tipo PNG que simula una transferencia bancaria.
- lnk and Chrome1.lnk: acceso directo de Google Chrome, utilizado por el atacante para generar persistencia y cargar la extensión maliciosa a través del parámetro –load-extension, para realizar el ataque Man-in-the-Browser.
El archivo .jse abre la imagen Screenshotfrom202034-58.png en pantalla completa, utilizando rundll32, mientras que los archivos .lnk generan persistencia en la ruta de inicio de Windows e instalan una extensión de Google Chrome llamada “Seguridad”.
Figura 5 – Función de abrir en pantalla completa a través de rundll32 (archivo PNG)
Figura 6 – Archivo PNG simulando ser una transferencia bancaria
Figura 7 – Archivos LNK añadidos a la ruta de inicio
Figura 8 – Archivo LNK cargando la extensión del atacante
Figura 9 – Extensión del atacante, añadida a la ruta %LOCALAPPDATA%
Figura 10 – Archivo JS ofuscado (seguro.js)
Figura 11 – Extensión maliciosa de Google Chrome
Si la víctima abre el navegador Chrome después de que el atacante ha instalado la extensión maliciosa, comienza el ataque MitB. La extensión tiene como objetivo inyectar una petición externa a un recurso JavaScript en el DOM de las páginas visitadas por el usuario.
Figura 12 – Recurso JS externo inyectado por la extensión maliciosa
El recurso externo inyectado por la extensión maliciosa contiene comprobaciones de la URL, para identificar en qué página bancaria se encuentra la víctima. Otro script llama a un recurso externo, dependiendo del sitio bancario que este visitando el usuario.
Figura 13 – Cuarta etapa del malware (recurso 8vZ9d1-ad.js)
Para cada sitio bancario en el script 8vZ9d1-ad.js, el atacante desarrolló código JavaScript que inyecta plantillas HTML falsas en el DOM de las páginas de los bancos visitados.
Figura 14 – Código JS personalizado para la página falsa de un conocido banco
Una vez inyectado todo el código malicioso, la víctima verá en su navegador una réplica de la página bancaria legítima y la información que introduzca se enviará al servidor C2 del atacante.
Figura 15 – Proceso de inyección de código malicioso
Figura 16 – Formulario falso mostrado por el atacante una vez que el usuario ingresa datos
SCILabs tiene la hipótesis de que el atacante podría estar realizando ataques dirigidos a empleados de ciertas empresas, ya que la imagen utilizada como pretexto en la cadena de infección contiene el nombre de una persona y una compañía específicas.
Figura 17 – Información encontrada en la imagen utilizada en la cadena de infección
Contexto de la amenaza, segunda campana analizada en agosto de 2022
Durante el monitoreo de seguridad en LATAM se identificó, en fuentes públicas, el dominio https[:]//www[.]kawaitravelmexico[.]com/SAT[-]Portal[-]Descargas[-]Actualizacion[-]Tributaria.
En el sitio Web apócrifo, SCILabs encontró inconsistencias en el nombre de dominio y el nombre de contacto registrado en la base datos who.is. También se detectaron errores de escritura, como se muestra en la siguiente imagen.
Figura 18 – Sitio Web apócrifo observado durante la supervisión de seguridad (izquierda), comparado con un sitio Web legítimo (derecha)
Si el usuario hace clic en el botón “Descargar”, el sitio Web descarga un archivo comprimido en formato zip, llamado “SAT_Policy2022.zip”, que contiene a su vez un archivo JavaScript llamado “SAT_Policy.js”.
Figura 19 – Archivo comprimido descargado del sitio Web apócrifo
Una vez ejecutado el primer dropper, se inicia la cadena de infección descrita en la investigación anterior.
Cambios importantes entre las campañas de agosto y junio
SCILabs observó lo siguiente durante la ejecución del malware:
- La infraestructura ha cambiado y el primer dropper es ahora un archivo JavaScript, para reducir el flujo de ataque y hacer la infección más rápida.
- Si el usuario introduce sus datos, estos serán enviados al servidor del ciberdelincuente y el malware mostrará una ventana emergente con un botón para descargar un ejecutable. Si el usuario hace clic en “Descargar Asistencia Bancanet” (el mensaje varía dependiendo el banco), será redirigido a la página oficial de TeamViewer, y la descarga comenzará automáticamente.
Figura 20 – Ventanas emergentes desplegadas para descargar un software de asistencia (I)
Figura 21 – Ventanas emergentes desplegadas para descargar un software de asistencia (II)
Figura 22 – Descarga automática de TeamViewer
Tras analizar el ejecutable descargado, SCILabs determinó que se trata de una herramienta legítima y no se observó ningún comportamiento malicioso, por lo que se tienen dos hipótesis al respecto:
- Se trata de una actualización de la campaña anterior, para hacerla más efectiva al generar mayor confianza en la víctima.
- La descarga de esta herramienta sugiere que en el futuro el ciberdelincuente utilizará técnicas de ingeniería social para obtener las credenciales de TeamViewer y así conseguir el control remoto del equipo de la víctima.
En la última campaña, el atacante está utilizando una plantilla para robar las credenciales de correo electrónico de las víctimas:
Figura 23 – Plantilla para robar credenciales de correo electrónico
Durante la investigación, SCILabs observó un nuevo mecanismo defensivo de evasión: cuando se intenta inspeccionar el código de los sitios Web visitados en el navegador Chrome infectado, se habilita automáticamente el depurador y no permite continuar el análisis, debido a que el código malicioso contiene un bucle infinito para habilitar el depurador y pausarlo.
Figura 24 – Inspector de código con depuración automática
Flujo de ataque
La siguiente imagen describe el flujo de ataque observado durante el mes de junio:
Figura 25 – Flujo de ataque de la primera muestra recuperada por SCILabs
Y a continuación, el flujo de ataque observado durante el mes de agosto:
Figura 26 – Flujo de ataque de la variante recuperada por SCILabs
Resumen técnico
- El acceso inicial se realiza, probablemente, a través de correos electrónicos que suplantan un sitio legítimo del Servicio de Administración Tributaria de México y que incitan a las víctimas a descargar e instalar un artefacto malicioso con el que comienza la cadena de infección.
- La página principal proporciona instrucciones para descargar e instalar el primer
- Una imagen que simula una transferencia bancaria (probablemente utilizada como distracción y motivación, para que el usuario introduzca sus credenciales de la banca en línea) aparece en la pantalla, tras ejecutar el primer
- El archivo .hta contiene código VBS ofuscado, que ejecuta funciones de PowerShell, cuyo objetivo es descargar el archivo php#.jse en la ruta %appdata%/Roaming y crear una tarea programada para ejecutarlo.
- El archivo js o feb.php#.jse, según el caso, contiene código ofuscado que añade una extensión maliciosa de Google Chrome en la ruta %localappdata% junto con su archivo manifest, una imagen en la ruta %localappdata%/Temp que simula un recibo de transferencia y dos accesos directos de Google Chrome en la ruta de inicio, que tienen por objetivo cargar la extensión maliciosa en cada ejecución.
- Cuando se ejecuta el archivo .js a través de rundll32, se muestra, en pantalla completa, la imagen del falso recibo y se genera la persistencia en la ruta de inicio de Windows a través de los accesos directos ejecutados. Además, se instala en Google Chrome la extensión maliciosa, que tiene como objetivo realizar el ataque MitB.
- Si la víctima abre el navegador Google Chrome y visita una página bancaria, el recurso 8vZ9d1-ad.js se inyecta en el DOM del sitio Web visitado.
- El recurso JavaScript 8vZ9d1-ad.js contiene llamadas a otros recursos externos, dependiendo del sitio del banco que visita la víctima, para mostrar una plantilla que suplanta al portal bancario.
- Por último, si la víctima ingresa información, esta es enviada al servidor C2 del atacante.
Comparación entre las campañas de BlackDog y otras campañas de malware
Para determinar si se trata de una nueva campaña, el equipo de SCILabs investigó en fuentes públicas sobre diferentes campañas y encontró similitudes en algunas de ellas:
- Magnant: uso de archivos EXE o ISO para su instalación. Esta amenaza tiene como objetivo la instalación de un backdoor mediante una extensión maliciosa de Chrome para robar credenciales bancarias, se dirige especialmente a Norteamérica y Australia.
- IceID Stelear AKA BokBot: utiliza documentos maliciosos de Office con macros, normalmente distribuidos por phishing, para iniciar la cadena de infección. En este caso, los ciberdelincuentes utilizan imágenes con esteganografía para realizar diferentes tareas durante el flujo de ataque, dirigido principalmente a la región de APAC.
- Chaes: la distribución se basa en sitios comprometidos para descargar e instalar un JavaScript que inicia la cadena de infección, pero en este caso es sólo para preparar un entorno Python. Se dirige principalmente a Brasil y algunos nombres de los archivos instalados están escritos en portugués. Finalmente instala al menos cinco extensiones maliciosas de Chrome, para ejecutar diferentes tareas, como conexiones a C2, a marketplaces o robar credenciales.
- Kronos: la ejecución es a través de archivos EXE. Los ciberdelincuentes utilizan un kit de phishing e inyección de código similar, pero en este caso, también utilizan imágenes con esteganografía y un entorno TOR para conectarse con su servidor C2. No hay más similitudes entre las campañas.
Nota: las amenazas listadas se han tenido en cuenta porque también utilizan código JavaScript o tienen Plugins escritos en este lenguaje.
Tras esta investigación, el equipo de SCILabs determinó que, a pesar de las similitudes, ninguna de las campañas utilizaba las mismas TTP durante su cadena de infección, por lo que, con base en sus características particulares, SCILabs la nombró como BlackDog.
TTP observados, alineados con el marco ATT&CK de MITRE
Tabla 1 – TTP observados, alineados con el marco ATT&CK de MITRE
Conclusiones
SCILabs considera que el peligro de esta campaña radica en tres aspectos principales:
- Rápida actualización de sus droppers y TTP durante la cadena de infección.
- Podría utilizarse para desplegar otros tipos de malware más peligrosos, como ransomware, que pueden causar mayores daños a las organizaciones.
- Los artefactos utilizados tienen una tasa de detección muy baja por parte de soluciones de antivirus.
Durante la investigación de esta amenaza, SCILabs observó un grupo notable de características que no están presentes en otras campañas, tales como:
- Uso e inyección de código JavaScript; dirigido sólo a usuarios mexicanos y probablemente distribuido por phishing.
- Instalación de una extensión maliciosa de
- Ataque Man-in-The-Browser.
- Suplantación de sitios legítimos de muchos bancos mexicanos.
Este ataque podría ser especialmente efectivo porque la mayoría de los usuarios no suelen tener el control del navegador Google Chrome y sus plugin o extensiones.
SCILabs cree que debido a la efectividad de las técnicas del ataque Man-in-the-Browser, se seguirán viendo campañas similares durante el resto del año.
Por último, SCILabs recomienda tomar las siguientes medidas:
- Añadir los indicadores de compromiso obtenidos en esta investigación a sus soluciones de seguridad.
- Realizar caza de amenazas en busca de complementos o extensiones maliciosas en los navegadores de su empresa.
- Tener una política estricta respecto al uso e instalación de complementos o extensiones, especialmente en Google Chrome.
- Buscar archivos sospechosos con nombres como js, 8vZ9d1-ad.js o SAT_Policy.js.
- Estar atentos a carpetas o archivos sospechosos creados en %APPDATA%, %LOCALAPPDATA%/TEMP y %LOCALAPPDATA%.
- Monitorear accesos directos del navegador Chrome que utilicen el parámetro –load-extension para ejecutar código o extensiones maliciosas.
También es fundamental realizar campañas de concientización sobre el buen uso de las herramientas de acceso a Internet y la difusión de las técnicas de ingeniería social utilizadas por los ciberdelincuentes para distribuir programas maliciosos.
IOC
Hash MD5
E3636A8F7690363F1B20B43216DAEA79
9DDB858C2C70BA20BF95E814138109EA
DA23CC54F02481F7C09622AD858DC52D
F53272F2C3249518A5F70B68920B0A26
1B5003647BBAE52962136AE3CCE9B140
F6602CF167A7A687A6510ACF347A5532
7BF728A71F2D25095D843B4287354013
C0BB58DBDCC80C28A924F18575970A08
C8A606291C1C5F62AD3F176A9BA38C18
4A274021641DE59F810A0D8EE8F1578D
B2E1F08C53033C91B0F3589DF04E0870
1B5003647BBAE52962136AE3CCE9B140
F6602CF167A7A687A6510ACF347A5532
BF8A90379BAFAA636EC90A6FEE2A239C
CE8B31603C46B8C8F9057A48ED389352
4F6F69970F7EE06CAE53518B4B567F17
D6C309BDB7336543A618A5154166D4A6
9456E2D1CEDC94BA2A11739F9406FD3B
F281ADFB6FB12D79DEF69D9CDCB5A91B
898DA26633A5E64E572F3717FAF43B9B
FDFF1FA1935EF2929EC06B96AC9386D6
15E32BF9C93F92BFCE1F00EF26C40D9F
06B2BBBE49DE76D13306E5BAC693F7BB
C0B2B350D09D3A789BD21887F3CC08D6
B8F651AC504C739CA5B9285124A3ECBD
CB2EE959AE1059C1E87DA7B3AB264C78
Dominios
HXXPS[:]//FACTURACIONMEXICO[.]NET/CHOCKA[.]PHP
HXXPS[:]//DLXFREIGHT[.]BID/UADMIN/GATE[.]PHP
HXXPS[:]//FACTURACIONMEXICO[.]NET/8VZ9D1-AD[.]JS
FACTURAMX[.]CLUB/8VZ9D1-AD[.]JS
FACTURAMX[.]CLUB
HXXPS[:]//LLOYDMETALFAB[.]COM/DESCARGAS/FEB[.]PHP#[.]JSE
HXXPS[:]//WWW[.]KAWAITRAVELMEXICO[.]COM/SAT[-]PORTAL[-]DESCARGAS[-]ACTUALIZACION[-]TRIBUTARIA
HXXPS[:]//FACTURACIONMEXICO[.]NET/CHOA[.]PHP
HXXPS[:]//DLXFREIGHT[.]BID/W1Q5DXR7TE/GATE[.]PHP
HXXPS[:]//DLXFREIGHT[.]BID/W1Q5DXR7TE/GATE[.]PHP?PL=TOKEN&LINK=BMX&CALLBACK=JQUERY32007615543501712587_1659630759896&DATA=%7B%22ONLINE_BIDER%22%3A1%2C%22W%22%3A0%2C%22DEV%22%3A3%7D&_=1659630760036
HXXPS[:]//DLXFREIGHT[.]BID/W1Q5DXR7TE/GATE[.]PHP?PL=TOKEN&LINK=INTER&CALLBACK=JSONP1659633991587&_=1659634028100&DATA=%7B%22ONLINE_BIDER%22%3A1%2C%22W%22%3A0%2C%22DEV%22%3A3%7D
HXXPS[:]//DLXFREIGHT[.]BID/MX/BB/BJIO[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/MONE/MAIN[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/SAN/MAIN[.]JS
HXXPS[:]//CDNJS[.]CLOUDFLARE[.]COM/AJAX/LIBS/JQUERY/3[.]2[.]0/JQUERY[.]MIN[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/HNET/MAIN[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/BMXE/MAIN[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/INT/B_INTER[.]JS
HXXPS[:]//CDNJS[.]CLOUDFLARE[.]COM/AJAX/LIBS/JQUERY/3[.]2[.]0/JQUERY[.]MIN[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/HS/MAIN[.]JS
HXXPS[:]//CDNJS[.]CLOUDFLARE[.]COM/AJAX/LIBS/JQUERY/3[.]2[.]0/JQUERY[.]MIN[.]JS
HXXPS[:]//DLXFREIGHT[.]BID/MX/SANE/MAIN[.]JS
HXXPS[:]//BBVA-COM-MX[.]8GEMIR[.]ASIA
Nombres de Archivo
SAT_POLICY2022.ZIP
SAT_POLICY.JS
._SAT_POLICY.JS
SEGURO.JS
MANIFEST.JSON
SCREENSHOTFROM202034-58.PNG
8VZ9D1-AD.JS
FEB.HTA
FEB.PHP#.JSE
SCREENSHOTFROM202034-58.PNG
SEGURO.JS
MANIFEST.JSON
8VZ9D1-AD.JS
8VZ9D1.JS
OK.JS
MAIN.JS
MAIN.JS
B_INTER.JS
MAIN.JS
MAIN.JS
BACKIMAGEN2022.JPG
CONTIMAGEN2022.JPG
JRIMAGEN2022.JPG
MANIMAGEN2022.JPG
SATDESCARGA.ZIP
SAT.JS
Rutas en FileSystem
%APPDATA%
%LOCALAPPDATA%/TEMP
%LOCALAPPDATA%
%SYSTEMDRIVE%\USERS\USERNAME\APPDATA\ROAMING\MICROSOFT\WINDOWS\START MENU\PROGRAMS\STARTUP
IOC Observables
Hash MD5
C9DBCC2233B752055DE6ED75E56E0C30
3ECDF2253E63541D570486575EF7CD66
C8C6692A2BDC9D362F7370E63188927C
3D82A8BF4275C8D0D62EC20839CF24EE
1A7A6116EA1CA388903977FA48567D08
9CFF860F447C0E88D5AB0E61344BF802
817B2386BEBDEB905830547672990C66
C9DBCC2233B752055DE6ED75E56E0C30
Nombres de Archivo
CHROME.LNK
CHROME1.LNK
TEAMVIEWER_SETUP_X64.EXE
TV_X64.EXE
TV_W32.EXE
LNK1IMAGEN2021.JPG
LNKIMAGEN2021.JPG
LNK.JPG