Ataque em Múltiplos Estágios com LNK Usa Blockchain TON para Entregar um Backdoor em Node.js
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Um ataque sofisticado de múltiplos estágios usa arquivos LNK maliciosos entregues por meio de phishing para implantar um backdoor baseado em Node.js. O malware depende da técnica EtherHiding consultando o blockchain TON para obter seus endereços de comando e controle, facilitando atualizações de infraestrutura para os operadores. Ele também usa métodos avançados de evasão, incluindo um interpretador de máquina virtual de bytecode personalizado e scripts PowerShell altamente ofuscados.
Investigation
A equipe de Pesquisa de Ameaças Gerenciadas do LevelBlue descobriu a campanha por meio de alertas de segurança ligados a arquivos ZIP e LNK suspeitos. Analistas desofuscaram comandos PowerShell que usavam lógica bit a bit e aritmética para reconstruir URLs maliciosos. Eles também examinaram um interpretador de VM JavaScript personalizado usado para executar bytecode criptografado e rastrearam a recuperação de comando e controle para transações no blockchain TON.
Mitigação
As organizações devem restringir a execução de arquivos LNK de fontes não confiáveis e monitorar comportamento suspeito do PowerShell, especialmente comandos envolvendo lógica bitwise ou grandes cálculos inteiros. Deve-se utilizar filtragem de e-mail robusta para bloquear links maliciosos, e os defensores devem observar por instalações ou execuções não autorizadas de Node.js. Restringir o acesso a APIs relacionadas ao blockchain para processos incomuns também pode interromper a recuperação de comando e controle.
Resposta
Se esta atividade for detectada, isole os pontos de extremidade afetados e termine imediatamente os processos node.exe ou PowerShell. Realize análise forense de memória para recuperar o bytecode JavaScript decifrado e identificar os domínios de comando e controle específicos que estão sendo consultados. Revise as chaves de execução do registro para persistência não autorizada e verifique as exclusões do Windows Defender criadas pelo malware.
Fluxo de Ataque
Detecções
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via registro_evento)
Visualizar
PowerShell Executando Arquivo Em Diretório Suspeito Usando Política de Execução Bypass (via linha_de_comando)
Visualizar
Executável NodeJS Executando De Local Não Comum (via linha_de_comando)
Visualizar
Chamar Métodos .NET Suspeitos do PowerShell (via powershell)
Visualizar
Alterações Suspeitas nas Preferências do Windows Defender (via powershell)
Visualizar
Possível NodeJs Sendo Baixado Por Processo Suspeito (via consulta_dns)
Visualizar
Execução Ofuscada de PowerShell e Node.js via Arquivo LNK [Criação de Processo do Windows]
Visualizar
Execução de Simulação
Pré-requisito: O Teste de Pré-voo de Telemetria & Baseline deve ter passado.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa do Ataque & Comandos: O adversário visa estabelecer um backdoor no sistema. Para evitar a detecção, eles usam um arquivo LNK que executa um comando PowerShell. Em vez de uma URL clara, eles usam
-band 255and-shr 8para manipular grandes valores inteiros que, quando processados, reconstruem uma URL apontando para uma carga maliciosa. Uma vez que a carga é buscada ou preparada, o processo PowerShell geranode.exepara executar o backdoor baseado em JavaScript, misturando-se com a atividade legítima do desenvolvedor na máquina. -
Script de Teste de Regressão:
# Simulação da cadeia de execução PowerShell Ofuscado -> Node.js # Este script imita os argumentos específicos da linha de comando exigidos pela regra de detecção. $jsPayload = "console.log('Conexão C2 Estabelecida');" # Etapa 1: Simular a fase de ofuscação do PowerShell (como apareceria na linha de comando do processo) # Em um ataque real, este seria o comando acionado pelo arquivo LNK. $simulatedPSCommand = "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -band 255 -shr 8 -Command `"`$url = [Convert]::ToString([bigint]123456789); iwr `$url | iex`"" # Etapa 2: Simular a execução subsequente do Node.js como parte da mesma cadeia # Usamos Start-Process para simular a relação pai-filho Start-Process "powershell.exe" -ArgumentList "-NoProfile -Command `"$simulatedPSCommand; node.exe $jsPayload`"" -
Comandos de Limpeza:
# Nenhum arquivo persistente foi criado por esta simulação, # mas garantimos que quaisquer processos de node gerados sejam terminados. Stop-Process -Name "node" -ErrorAction SilentlyContinue Stop-Process -Name "powershell" -ErrorAction SilentlyContinue