Envío de registros, alertas y datos de telemetría a través de un diodo de datos

Descubre cómo
Utilizamos inteligencia artificial para traducir el sitio web y, aunque nos esforzamos por garantizar la precisión, es posible que las traducciones no sean siempre 100 % exactas. Agradecemos tu comprensión.

Nueva familia de malware JavaSquid

Descubrimiento de una campaña de malware oportunista con MetaDefender
Por OPSWAT
Última actualización:
Comparte esta publicación

Resumen ejecutivo

OPSWAT identificado una amplia campaña de infección, probablemente con fines económicos, que utiliza software de IA falso como señuelo para que los usuarios descarguen una familia de malware recién descubierta a la que hemos bautizado como «JavaSquid», precisamente por sus múltiples componentes de JavaScript evasivos y escurridizos.   

Según el seguimiento que hemos realizado gracias a las capacidades MetaDefender , hemos determinado que la campaña sigue en marcha y que comenzó a mediados de julio de 2024. Los autores de la amenaza asociados a esta campaña han llevado a cabo anteriormente ataques exitosos en los que sustrajeron certificados digitales de diversas empresas chinas.   

Además de descubrir una nueva familia de malware y una campaña activa, los resultados de esta investigación y seguimiento han permitido mejorar las capacidades de detección Sandboxnuestro Sandbox. Por otra parte, nuestra investigación proporciona información suficiente para implementar una aplicación completa del Modelo Diamante de Análisis de Intrusiones, junto con los IOC (indicadores de compromiso) facilitados y las correspondencias específicas con el marco MITRE ATT&CK que figuran en los informes MetaDefender . 

Descubriendo la campaña

El equipo de investigación Sandbox OPSWAT Sandbox ha descubierto una campaña de infección que utiliza software de IA como señuelo, pero que en realidad no emplea la IA en sus ataques ni en su malware. La investigación comenzó cuando observamos el dominio sospechoso https[://]my-profai[.]com. Aunque el dominio parece haber sido ya retirado, se registró el 5 de septiembre de 2024, lo que significa que la campaña se lanzó muy recientemente y es probable que aún esté en marcha, según la información recopilada durante nuestra investigación.

Según el título de su sitio web, «Epivaravomw: Dando vida a tus imágenes estáticas», parece que ofrecen una herramienta basada en IA para añadir movimiento a las imágenes, lo que apunta a un posible ataque de tipo «watering hole», que además aprovecha la publicidad maliciosa en otros sitios web para inducir a los usuarios a descargar el malware. Sin embargo, es probable que se trate de una suplantación de https://proai.co, ya que el ejecutable de Windows disponible para su descarga se llama ProAI.exe, que es la muestra de malware que analizaremos a continuación.

Presentación de Epivaravomw, una empresa especializada en animación basada en inteligencia artificial para imágenes estáticas

Estas técnicas de acceso inicial indican que los autores de la amenaza que están detrás de la campaña buscan infecciones oportunistas y, por lo tanto, es probable que actúen con fines económicos, posiblemente como un IAB (Initial Access Broker). A juzgar por la ubicación de las muestras enviadas, es muy probable que el objetivo de la campaña sea principalmente Europa. 

El dominio «watering hole» utilizado para engañar a las víctimas y distribuir el malware está protegido por Cloudflare. Sin embargo, la muestra de malware que han obtenido se conecta a un dominio diferente, que se resuelve en una dirección IP a la que también apuntan muchos otros dominios. Muchos de los distintos dominios que apuntan a la misma dirección IP también parecen estar relacionados con el señuelo basado en la tecnología de IA y la suplantación de identidad de otras empresas.  

Curiosamente, nuestra investigación OSINT reveló que la dirección IP del servidor de comando y control (C2) se había relacionado anteriormente con los ladrones de datos Lumma y Poseidon. Mientras que, según se informa, el ladrón de datos Lumma se basaba en el antiguo ladrón de datos Mars, Poseidon es una familia de malware descubierta muy recientemente y escrita en AppleScript, por lo que está dirigida a entornos iOS. El hecho de que esta nueva familia esté escrita en JavaScript podría indicar que el autor de la amenaza detrás de esta actividad podría estar pasando a utilizar un lenguaje de scripting que se puede emplear en diferentes entornos. Otro aspecto a destacar es el hecho de que la dirección IP pertenece a un proveedor de servicios de Internet chino (Chang Way Technologies Co. Limited), mientras que el servidor está geolocalizado dentro de la Federación Rusa. 

La muestra inicial de malware contaba con una firma digital válida cuando la analizamos por primera vez (el 9 de noviembre de 2024), emitida por la empresa china «Taigu Fulong Electronic Tech Co., Ltd». Sin embargo, durante nuestra investigación observamos que ya había sido revocada. 

Captura de pantalla en la que se comparan los detalles de los certificados, destacando las diferencias en cuanto a validez y emisión

Al analizar muestras similares mediante nuestro motorSandbox , encontramos un conjunto de muestras de la misma familia que utilizaban el mismo certificado digital, probablemente sustraído, pero también dos nuevos conjuntos de muestras. Uno de los conjuntos no tenía ninguna firma digital, mientras que el otro utilizaba un certificado digital diferente. Todas las muestras seguían los mismos patrones y técnicas de hacerse pasar por alguna herramienta de utilidad legítima basándose en sus diferentes nombres (ai_Generation.exe, sweethome3d.exe, Installer_capcut_pro_x64.exe...). 

Lista de archivos analizados con resultados que indican que cada uno de ellos es malicioso

Según nuestras conclusiones, esta campaña comenzó a mediados de julio y sigue en marcha, ya que seguimos detectando nuevas muestras de esta familia, incluso en la última semana de octubre de 2024. Además, aunque el certificado de la muestra inicial fue revocado durante nuestra investigación, el otro certificado descubierto, perteneciente a un conjunto diferente, sigue siendo válido y fue emitido a principios de septiembre, lo que podría indicar que el emisor ha sido comprometido y que no era consciente de ello hasta que nos pusimos en contacto con él para informarle de que su certificado estaba siendo utilizado en malware. 

Comprender el malware 

https://www.filescan.io/uploads/672231bb2734cb737d901c74/reports/e5b27d3e-0d46-44fc-9e11-9ca7ce03319b

Aunque MetaDefender detecta muchas de las capacidades del archivo PE original y sus fases posteriores, tal y como se explica más adelante, en el momento de redactar este artículo, la muestra inicial del malware sigue sin ser detectada por la mayoría de los proveedores de antivirus.

https://www.virustotal.com/gui
/file/999abd365022c5d83dd2db4c0739511a7ac38bcd9e3aa19056d62d3f5c29ca30/detection

Resultado del análisis de seguridad que indica que no se ha detectado ninguna actividad maliciosa por parte de 73 proveedores de seguridad

El archivo PE es un malware de JavaScript compilado, que utiliza la herramienta pkg para convertir el código JavaScript en un archivo PE de Windows. El JavaScript compilado parece estar en auge dentro del panorama de amenazas, tal y como han informado recientemente otros investigadores. La herramienta mencionada empaqueta una carga útil de JavaScript en un PE de Windows mediante la incrustación de un intérprete Node JS/V8 con la opción de compilar el código en bytecode V8, incorporando así al PE bien el código en texto plano o bien un bytecode de JavaScript compilado. La extracción de la versión en texto plano es trivial en la mayoría de los casos; sin embargo, MetaDefender puede extraer el código compilado como un JSC (archivo JavaScript compilado) y desensamblarlo para su posterior análisis. 

Visualización de los archivos extraídos de un ejecutable analizado, con indicación de los tipos de archivo y los detalles

La carga útil de JavaScript contiene la carga útil relevante codificada en base64, la descodifica y la ejecuta mediante la función eval. Esta carga útil descodificada comienza realizando una rápida comprobación del tamaño de la RAM, probablemente para evitar ejecutarse en entornos de análisis. Aunque muchos entornos de pruebas tradicionales no superarían esta comprobación, MetaDefender lleva a cabo un análisis más profundo de todo el código JavaScript, lo que permite activar los indicadores relevantes. 

Fragmento de código JavaScript con condiciones basadas en la memoria RAM del sistema para cerrar procesos

Una vez superada la comprobación, la muestra enviará una solicitud HTTP a la URL de un evento de Google Calendar, cuya descripción contiene una segunda URL en formato base64. 

Enlace de invitación codificado y detalles de un evento del calendario

La URL descodificada apunta a un dominio controlado por el atacante, que envía una nueva carga útil en base64 tras la solicitud correspondiente. Una vez descodificada la nueva carga útil de JavaScript, esta se ejecuta inmediatamente mediante la función eval. Este código JavaScript adicional descifra y ejecuta una carga útil codificada de forma estática en una capa adicional utilizando cifrado AES.  

Captura de pantalla de API en la que se muestran valores cifrados en formato Base64
Código JavaScript para descifrar y ejecutar una carga útil utilizando el cifrado AES

Curiosamente, las claves IV y AES se obtienen de los encabezados de respuesta de la última solicitud HTTP, que, según hemos observado, son diferentes en cada solicitud, lo que significa que la carga útil y los encabezados que se envían se crean dinámicamente en cada solicitud al servidor C2 para ser descifrados con claves diferentes. Además, la carga útil descifrada parece ser siempre la misma, pero con una ofuscación diferente, lo que revela que no solo el cifrado, sino también la ofuscación, se producen dinámicamente en cada solicitud. Esta técnica no solo podría dificultar el análisis forense en caso de incidente o la investigación de amenazas, sino que también eludiría las detecciones basadas en firmas, ya que la ofuscación es diferente en cada solicitud. 

Este módulo, recientemente descifrado, está muy ofuscado y amplía considerablemente las funcionalidades de la muestra al incorporar código de bibliotecas adicionales, principalmente para gestionar operaciones con archivos y funciones de compresión mediante el módulo «adm». Además, coloca distintos archivos en diferentes subdirectorios de %appdata%\Local, utilizando nombres aleatorios. 

Uno de los archivos descargados es un script de PowerShell llamado «run.ps1», que contiene el código para instalar el instalador MSI de NodeJS con el fin de ejecutar posteriormente la carga útil final de JavaScript utilizando el NodeJS instalado, en lugar de la carga útil inicial de JavaScript compilada. 

Código de PowerShell para instalar una aplicación con gestión de errores

En este punto, la ejecución mostrará al usuario un mensaje de error en forma de ventana emergente, lo que probablemente lleve a la víctima a pensar que el «software de IA» esperado (ProAI.exe) podría no ser compatible con su sistema, desviando así su atención de la infección por JavaSquid que se está produciendo. Esta carga útil de JavaScript de la fase posterior también descargará un último archivo JavaScript utilizando el mismo mecanismo de contacto con los calendarios de Google, para luego ponerse en contacto con su dominio controlado utilizando los encabezados de respuesta HTTP para descifrar la carga útil finalmente servida. En esta ocasión, la carga útil final se guardará como index.js en un directorio con un nombre aleatorio ubicado dentro del directorio %appdata%/Romaing. 

El archivo «run.ps1» anterior se sustituirá más adelante por otro script de PowerShell con el mismo nombre, que también se ejecutará de inmediato. Como se puede ver en la captura de pantalla, este script solo se utiliza para conseguir persistencia en el equipo, mientras que el código principal del malware se escribió en «index.js». 

Captura de pantalla de un script de PowerShell que configura un acceso directo para ejecutar código al iniciar el sistema

Archivos adicionales creados por el malware: 

  • VeqVMR.zip (nombre generado aleatoriamente): Descargado desde el mismo C2. Solo contiene un instalador de Notepad (npp.8.6.6.Installer.exe) que, al parecer, no afecta al comportamiento general. 
  • bypass.ps1: se utiliza para ejecutar el archivo run.ps1 mencionado anteriormente, eludiendo la restricción de ejecución de scripts de PowerShell. 
  • NiOihmgUci.msi (nombre generado aleatoriamente): instalador de Node.js, descargado de su sitio web oficial. 
  • Update.lnk: Si se coloca en la carpeta de inicio, apuntará al script de PowerShell «run.ps1». 
Diagrama que muestra el proceso de extracción y el flujo de la carga útil de un archivo malicioso, con pasos que incluyen el desensamblaje de JSC y la decodificación Base64

Como se ha mencionado, la carga útil final se guarda en el equipo de la víctima con el nombre index.js. Además, está muy ofuscada y se cifra dinámicamente en cada solicitud, siguiendo el mismo flujo descrito anteriormente para la carga útil de la etapa intermedia (Google Calendar, URL Base64, descifrado de la carga útil). Sin embargo, dado que se trata de la última etapa de la cadena de infección de JavaSquid, las claves de descifrado están escritas en el propio script, lo que permitió a MetaDefender identificar, extraer y descifrar la carga útil final para realizar un análisis exhaustivo. 

https://www.filescan.io/uploads/672232297b6de3d3d3569e26/reports/aff52866-60a2-4b61-bfa6-31f5292aadb3

Representación visual de las etapas de descifrado de JavaScript en Visual Studio Code, en la que se destacan la evaluación y el descifrado del código

Curiosamente, hemos descubierto que el archivo index.js que se está sirviendo actualmente ha ido cambiando a diferentes versiones que incluyen una implementación mejorada y características ligeramente diferentes. Esto respalda la hipótesis de que la campaña sigue activa, y que la carga útil final de JavaSquid aún se encuentra en fase de desarrollo. El archivo se ha servido sistemáticamente como un fragmento de JavaScript de una sola línea con una carga útil de etapa intermedia codificada en base64, que contiene claves codificadas de forma fija para el descifrado AES. Como se muestra en la captura de pantalla anterior, esto descifra y ejecuta la carga útil final, lo que pone de relieve la cadena de carga útil en el análisis de index.js. 

La carga útil inicial servida establece su comunicación con el servidor C2 a través del protocolo WebSocket. Analizaba los mensajes procedentes del servidor C2 en formato JSON en busca del elemento «command», que debía recibirse en formato Base64. Sin embargo, la última carga útil servida tenía una funcionalidad similar, pero utilizaba solicitudes HTTP para sus comunicaciones con el servidor C2. Además, aunque esta familia sigue siendo una puerta trasera muy básica, observamos que el último código de JavaSquid que se distribuyó incluía nuevas funcionalidades de recopilación y sustracción de información. 

empresas petroleras internacionales 

Hash de archivos

999abd365022c5d83dd2db4c0739511a7ac38bcd9e3aa19056d62d3f5c29ca30 

Aec44665395d4ae7064ea08d6d03b729464715d2169c629f3e3215d61c1299ea 

b216880a67fc2e502ae94928aead75ef870fbb7ba142f7eda355d9ed6e72146d 

Cuentas de correo electrónico

chackopanikulamskykat@gmail.com 

kendalllopez149@gmail.com 

Dirección IP

45,93[.]20 174

Dominios

ambisecperu[.]com 

angelswipe [.]com 

nenkinseido[.]com 

URL

hxxps://calendar.app[.]google/X97t5bVooB2ti1QB8 

hxxps://calendar.app[.]google/pPGGk4W26WW7oJxN7 

hxxps://calendar.app[.]google/fD8MeHaN46bfYy3SA 

hxxps://ambisecperu[.]com/a74Uxj9QjqWbeKr2SYOHsw%3D%3D 

hxxps://ambisecperu[.]com/lBdvVW3MiQgpwRGAl5KNwg%3D%3D 

hxxps://ambisecperu[.]com/o2BF9EGgskwn0k5Cwo7kugjt7xChBPSnghiJkDU7MwQ%3D 

wss://ambisecperu[.]com/ss_ss?uuid=L07nKQ%2FEG1qQXwzQ1Tv3vqduOgfze7Yz3Ry%2FrXnr8WY%3D 

hxxp://angelswipe[.]com?uuid=1sdtM0o5b35Uhe6wp9nM5UMMZ8BNrbYwtT1LAvW4rRA%3D 

hxxps://nenkinseido[.]com/a3vNlpuRk6O5S469pG17Gw%3D%3D 

hxxps://nenkinseido[.]com/YMvBag0VXbce5q0WvNrMRg%3D%3D 

Huellas digitales de certificados

9A:84:A9:7F:AC:26:DF:5C:8A:74:FB:E6:88:0A:0B:5D:A5:17:08:DC 

BB:F9:86:55:F4:D4:ED:39:6F:BC:A9:5F:4A:F8:ED:4E:B0:19:50:A9 

CCO adicionales 

Diferentes dominios que apuntan a la misma dirección IP, que no han sido utilizados por las muestras analizadas, pero que también parecen estar relacionados con la suplantación de sitios web relacionados con la inteligencia artificial:

agattiairport[.]com 

aimodel[.]itez-kz[.]com 

akool[.]cleartrip[.]voyage 

akool[.]techdom[.]click 

akordiyondersi[.]com 

albanianvibes[.]com 

albert[.]alcokz[.]store 

albert[.]flora-kz[.]store 

apkportion[.]com 

asd[.]leboncoin-fr[.]eu 

basgitardersi[.]com 

bendiregitimi[.]com 

bybit[.]travel-watch[.]org 

cap[.]cleartrip[.]voyage 

dipo[.]cleartrip[.]voyage 

face[.]techdom[.]click 

facetwo[.]techdom[.]click 

ftp[.]millikanrams[.]com 

haiper[.]techdom[.]click 

haiper[.]travel-watch[.]org 

havoc[.]travel-watch[.]org 

l[.]apple-kz[.]store 

liama[.]cleartrip[.]voyage 

loader[.]waltkz[.]com 

locktgold[.]travel-watch[.]org 

luminarblack[.]techdom[.]click 

millikanrams[.]com 

openaai[.]clear-trip-ae[.]com 

proai[.]travel-watch[.]org 

sweethome[.]travel-watch[.]org 

synthesia[.]flow-kz[.]store 

synthesia[.]techdom[.]click 

uizard[.]flow-kz[.]store 

upscayl[.]cleartrip[.]voyage 

Descubre cómo las soluciones de análisis de malware adaptativo y de entornos de pruebas de última generación OPSWATproporcionan a las organizaciones una ventaja decisiva en la lucha contra el malware complejo y evasivo: habla con un experto. 

¡Mantente al día con OPSWAT!

Regístrate hoy mismo para recibir las últimas novedades de la empresa, historias, información sobre eventos y mucho más.