Resumo executivo
OPSWAT identificou uma vasta campanha de infeção, provavelmente com motivação financeira, que utiliza software de IA falso como isco para descarregar uma família de malware recém-descoberta, que apelidámos de "JavaSquid", nomeadamente devido às suas múltiplas partes JavaScript evasivas/deslizantes.
Based on our monitoring thanks to MetaDefender Aether’s capabilities, we’ve assessed that the campaign remains ongoing and that it started around mid-July of 2024. The threat actors associated with this campaign have conducted previous successful attacks where they stole digital certificates from different Chinese companies.
Besides uncovering a new malware family and a live campaign, the findings of this research and monitoring have allowed the improvement of our Sandbox’s feature/indicator capabilities. Additionally, our investigation provides enough information to implement a comprehensive instance of a Diamond Model of Intrusion Analysis along with the provided IOCs (indicators of compromise) and specific MITRE ATT&CK mappings from MetaDefender Aether reports.
Descobrir a campanha
OPSWATO site Sandbox Threat Research da Microsoft descobriu uma campanha de infeção que utiliza software de IA como isco, mas que na realidade não utiliza IA nos seus ataques ou malware. A investigação começou quando observámos o domínio suspeito, https[://]my-profai[.]com. Embora o domínio pareça já ter sido retirado, foi registado em 2024-09-05, o que significa que a campanha foi lançada muito recentemente e provavelmente ainda está em curso, com base nas informações recolhidas durante a nossa investigação.
De acordo com o título do seu sítio Web "Epivaravomw: Bringing Your Static Images to Life", parece que eles oferecem uma ferramenta baseada em IA para adicionar movimento às imagens, o que aponta para um potencial ataque de watering hole, que também aproveita a publicidade maliciosa noutros sites para levar os utilizadores a descarregar o malware. No entanto, é provável que se trate de uma imitação do https://proai.co, uma vez que o executável do Windows disponível para descarregamento tem o nome de ProAI.exe, que é a amostra de malware que iremos analisar mais à frente.

Estas técnicas de comprometimento inicial indicam que os agentes da ameaça por detrás da campanha procuram infecções oportunistas e, por conseguinte, agem provavelmente com motivação financeira, potencialmente como um IAB (Initial Access Broker). Com base na localização dos envios de amostra, é muito provável que o alvo da campanha seja principalmente a Europa.
O domínio watering hole utilizado para enganar as vítimas e servir o malware é protegido pelo Cloudflare. No entanto, a sua amostra de malware irá contactar um domínio diferente que se resolve num endereço IP que também é apontado por muitos outros domínios. Muitos dos diferentes domínios que apontam para o mesmo endereço IP também parecem estar relacionados com o engodo tecnológico da IA e a personificação de outras empresas.
Curiosamente, a nossa investigação OSINT indicou que o endereço IP C2 estava anteriormente relacionado com os ladrões Lumma e Poseidon. Enquanto o Lumma stealer foi alegadamente baseado no antigo Mars stealer, o Poseidon é uma família de malware descoberta muito recentemente e escrita em AppleScript, visando assim ambientes iOS. O facto de esta nova família ser escrita em JavaScript pode indicar que o agente da ameaça por detrás da atividade pode estar a mudar para uma linguagem de scripting que pode ser utilizada em diferentes ambientes. Outro aspeto a destacar é o facto de o endereço IP pertencer a um ISP chinês (Chang Way Technologies Co. Limited), enquanto o anfitrião está geolocalizado na Federação Russa.
A amostra inicial de malware tinha uma assinatura digital válida na altura em que a analisámos pela primeira vez (9 de novembro de 2024), emitida por uma empresa chinesa "Taigu Fulong Electronic Tech Co., Ltd". No entanto, observámos que, durante a nossa investigação, a assinatura já tinha sido revogada.

Ao pesquisar amostras semelhantes utilizando o nosso motor de buscaSandbox , encontrámos um conjunto de amostras da mesma família utilizando o mesmo certificado digital provavelmente roubado, mas também dois novos conjuntos de amostras. Um dos conjuntos não tinha qualquer assinatura digital, enquanto o outro utilizava um certificado digital diferente. Todas as amostras seguiam os mesmos padrões e técnicas de fingir ser uma ferramenta utilitária legítima com base nos seus diferentes nomes (ai_Generation.exe, sweethome3d.exe, Installer_capcut_pro_x64.exe...).

Com base nas nossas descobertas, esta campanha começou em meados de julho e está atualmente em curso, uma vez que continuamos a observar novas amostras da família até à última semana de outubro de 2024. Além disso, embora o certificado da amostra inicial tenha sido revogado durante a nossa investigação, o outro certificado descoberto do conjunto diferente ainda é válido e foi emitido no início de setembro, indicando potencialmente que o emissor pode estar comprometido, e não estava ciente até que o contactámos informando sobre a utilização do seu certificado em malware.
Compreender o malware
While MetaDefender Aether flags many capabilities of the original PE and its later stages as explained ahead, at the time of this writing, the initial malware sample remains fully undetected by most AV vendors .

The PE is compiled JavaScript malware, using the pkg tool to turn the JavaScript code into a Windows PE. Compiled JavaScript appears to be on the rise within the threat landscape, as recently reported by the other researchers. The mentioned tool packages a JavaScript payload into a Windows PE by embedding a Node JS/V8 interpreter with the option of compiling the code into V8 bytecode, hence embedding into the PE either the plaintext code or a JavaScript Compiled bytecode. The plaintext version extraction is trivial in most cases, though, MetaDefender Aether can extract the compiled code as a JSC (JavaScript Compiled file) and disassemble for later further analysis.

The JavaScript payload holds the relevant payload base64 encoded, decodes it, and executes it using the eval function. This decoded payload starts by running a quick RAM size check, likely to avoid executing on analysis environments. While many traditional sandboxes would not pass through this check, MetaDefender Aether performs deeper analysis of all the JavaScript code, allowing the trigger of relevant indicators.

Quando a verificação é aprovada, o exemplo executa um pedido HTTP para um URL de evento do Google Calendar, que armazena na sua descrição um segundo URL no formato base64.

O URL descodificado aponta para um domínio controlado pelo atacante, que serve um novo payload base64 após o pedido correspondente. Após a descodificação do novo payload JavaScript, este é também imediatamente executado utilizando a função eval. Este código JavaScript adicional desencripta e executa um payload hardcoded de camada adicional usando encriptação AES.


Curiosamente, as chaves IV e AES são obtidas a partir dos cabeçalhos de resposta do último pedido HTTP, que observámos serem diferentes em cada pedido, o que significa que a carga útil e os cabeçalhos servidos são criados dinamicamente em cada pedido ao C2 para serem desencriptados com chaves diferentes. Além disso, a carga útil desencriptada parece ser sempre a mesma, mas com uma ofuscação diferente, o que revela que não só a encriptação como também a ofuscação ocorrem dinamicamente em cada pedido. Esta técnica poderia não só dificultar a análise forense em caso de incidente ou a investigação de ameaças, como também evitaria as detecções baseadas em assinaturas, uma vez que a ofuscação é diferente em cada pedido.
Este novo módulo desencriptado está altamente ofuscado e traz muitas mais funcionalidades à amostra, adicionando o código de bibliotecas adicionais, principalmente para lidar com operações de ficheiros e funcionalidades zip usando o módulo adm. Além disso, coloca diferentes ficheiros em diferentes subdirectórios %appdata%\Local, utilizando nomes aleatórios.
Um dos arquivos descartados é um script do PowerShell chamado run.ps1, que contém o código para instalar o instalador MSI do NodeJS para depois lançar o payload JavaScript final usando o NodeJS instalado, em vez do payload JavaScript compilado inicial.

Neste ponto, a execução irá desencadear uma mensagem de erro para o utilizador sob a forma de um pop-up, provavelmente para levar a vítima a pensar que o esperado "software AI" (ProAI.exe) pode não ser capaz de ser executado no seu sistema, desviando a sua atenção da infeção JavaSquid em curso. Este payload JavaScript de fase posterior também descarregará um último ficheiro JavaScript usando o mesmo mecanismo de contacto com os calendários do Google, contactando depois o seu domínio controlado usando os cabeçalhos de resposta HTTP para desencriptar o payload finalmente servido. Desta vez, o payload final será guardado como index.js num diretório com um nome aleatório localizado dentro do diretório %appdata%/Romaing.
O ficheiro run.ps1 anterior será posteriormente substituído por um script PowerShell diferente com o mesmo nome e também imediatamente executado. Como podemos ver na captura de ecrã, este script é apenas utilizado para ganhar persistência na máquina, enquanto o código principal do malware foi escrito em index.js.

Ficheiros adicionais largados pelo malware:
- VeqVMR.zip (nome gerado aleatoriamente): Descarregado do mesmo C2. Contém apenas um instalador do notepad (npp.8.6.6.Installer.exe) aparentemente sem impacto no comportamento geral.
- bypass.ps1: usado para executar o run.ps1 mencionado anteriormente, ignorando a restrição de execução do script powershell.
- NiOihmgUci.msi (nome gerado aleatoriamente): instalador do nodejs, obtido a partir do seu sítio Web oficial.
- Update.lnk: Colocado na pasta de arranque, apontará para o script PowerShell run.ps1.

As mentioned, the final payload is saved into the victim’s machine as index.js. It is also highly obfuscated and encrypted dynamically on every request, following the same flow described before for the middle stage payload (google calendar, base64 URL, payload decryption). However, since this is the latest stage of the JavaSquid infection chain, the decryption keys are written into the script itself, which allowed MetaDefender Aether to identify, extract, and decrypt the very final payload for thorough analysis.

Curiosamente, descobrimos que o index.js servido atualmente tem vindo a mudar para versões diferentes que incluem uma implementação melhorada e caraterísticas ligeiramente diferentes. Isto apoia a hipótese de que a campanha ainda está viva, com o payload final do JavaSquid ainda em desenvolvimento. O ficheiro tem sido consistentemente apresentado como um JavaScript de linha única com um payload de fase intermédia codificado em base64, contendo chaves codificadas para desencriptação AES. Como mostrado na captura de ecrã anterior, isto desencripta e executa o payload final, destacando a cadeia de payloads na análise do index.js.
O payload inicial servido implementa a sua comunicação com o C2 através do protocolo websocket. Analisava as mensagens do C2 em formato json à procura do elemento "command", que devia ser recebido em formato base64. No entanto, a última carga útil servida tinha uma funcionalidade semelhante, mas utilizava o pedido HTTP para as suas comunicações com o C2. Além disso, embora esta família continue a ser uma backdoor muito básica, observámos que o código JavaSquid mais recente que foi servido incluía novas funcionalidades de recolha e roubo de informações.
COIs
999abd365022c5d83dd2db4c0739511a7ac38bcd9e3aa19056d62d3f5c29ca30
Aec44665395d4ae7064ea08d6d03b729464715d2169c629f3e3215d61c1299ea
b216880a67fc2e502ae94928aead75ef870fbb7ba142f7eda355d9ed6e72146d
chackopanikulamskykat@gmail.com
kendalllopez149@gmail.com
45.93[.]20.174
ambisecperu[.]com
angelswipe [.]com
nenkinseido[.]com
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
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
Diferentes domínios que apontam para o mesmo endereço IP, que não foram utilizados pelas amostras analisadas, mas que também parecem estar relacionados com a falsificação de sítios Web relacionados com a IA:
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
Saiba mais sobre como as soluções de análise de malware adaptável e sandbox de próxima geração da OPSWATdão às organizações uma vantagem crítica na luta contra malware complexo e evasivo - fale com um especialista.
