SOC Prime Bias: Médio

14 Abr 2026 18:48

JavaScript Ofuscado no Centro do Ataque

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
JavaScript Ofuscado no Centro do Ataque
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Um email de phishing entregou um arquivo JavaScript malicioso dentro de um arquivo RAR, iniciando uma cadeia de infecção que termina com a execução de malware Formbook. Uma vez lançado, o script grava vários arquivos na pasta pública, estabelece persistência através de uma tarefa agendada e inicia uma carga útil do PowerShell que descriptografa conteúdo criptografado com AES para carregar uma DLL .NET maliciosa. Essa DLL é então injetada em um MSBuild.exe processo, onde continua a execução e implanta a fase final do malware. A campanha também incorpora vários métodos de evasão de defesa, incluindo a modificação de ETW e AMSI para reduzir a detecção.

Investigação

Durante a análise, os pesquisadores identificaram o dropper JavaScript cbmjlzan.JS, juntamente com uma tarefa agendada configurada para executar o script copiado a cada quinze minutos para persistência. Eles também rastrearam o comando PowerShell responsável por decodificar dados codificados em base64 escondidos dentro de arquivos de imagem. O conteúdo descriptografado revelou uma DLL .NET que foi injetada em MSBuild.exe e usado para entregar o Formbook. Indicadores adicionais, incluindo caminhos de arquivos, nomes de tarefas e material criptográfico, foram extraídos para apoiar uma investigação mais profunda e o desenvolvimento de detecções.

Mitigação

As organizações devem bloquear a execução de arquivos JavaScript não confiáveis e scripts PowerShell lançados a partir de diretórios acessíveis pelo usuário, ao mesmo tempo que monitoram de perto as tarefas agendadas criadas com nomes incomuns ou aleatórios. Controles de execução devem ser aplicados a MSBuild.exe para prevenir abusos em cadeias de malware. Ferramentas de segurança também devem detectar comportamento de injeção de DLL, modificação de ETW e AMSI, e assinaturas conhecidas relacionadas ao Formbook. O treinamento de conscientização do usuário continua importante para reduzir o risco representado por anexos de phishing.

Resposta

Os defensores devem gerar alertas quando o arquivo JavaScript identificado ou a tarefa agendada relacionada aparecer, isolar o ponto de extremidade afetado e coletar evidências voláteis para análise. Os arquivos maliciosos devem ser removidos, a tarefa agendada deletada e a DLL injetada examinada em sua totalidade para entender o fluxo completo de execução. Quaisquer componentes de sistema comprometidos devem ser reconstruídos ou restaurados para garantir a integridade. IOCs relevantes também devem ser compartilhados com a comunidade de segurança mais ampla para ajudar outros a detectar atividades semelhantes.

graph TB %% Class definitions classDef action fill:#ffcccc classDef tool fill:#99ccff classDef process fill:#ffff99 classDef file fill:#ccffcc classDef malware fill:#ffcc99 %% Nodes email_phishing[“<b>Ação</b> – <b>T1566.001 Spearphishing com anexo</b><br/>Anexo RAR malicioso entregue por email”] class email_phishing action tool_wsh[“<b>Ferramenta</b> – <b>Nome</b>: Windows Script Host (JavaScript)<br/><b>Técnica</b>: T1559.001 Component Object Model”] class tool_wsh tool action_copy[“<b>Ação</b> – <b>T1559.001 Component Object Model</b><br/>Script copia-se para C:\\Users\\Public\\Libraries”] class action_copy action action_sched[“<b>Ação</b> – <b>T1053 Tarefa agendada</b><br/>Cria tarefa agendada para persistência”] class action_sched action tool_ps[“<b>Ferramenta</b> – <b>Nome</b>: PowerShell<br/><b>Técnica</b>: T1059.001 Interpretador de comandos”] class tool_ps tool action_decode[“<b>Ação</b> – <b>T1027.004 Compilar após entrega</b> & <b>T1140 Desofuscar/decodificar</b><br/>Decodificação Base64 e AES”] class action_decode action action_patch[“<b>Ação</b> – <b>T1027.005 Remoção de indicadores</b><br/>Patches em ETW e AMSI”] class action_patch action file_dll[“<b>Ficheiro</b> – <b>Nome</b>: Orio.png (contém DLL .NET encriptada)<br/><b>Técnica</b>: Payload oculto”] class file_dll file process_msbuild[“<b>Processo</b> – <b>Nome</b>: msbuild.exe<br/><b>Técnica</b>: T1127.001 Execução proxy de ferramentas de desenvolvimento”] class process_msbuild process action_inject[“<b>Ação</b> – <b>T1055.001 Injeção de processo</b><br/>Injeta DLL descodificada em msbuild.exe”] class action_inject action malware_formbook[“<b>Malware</b> – <b>Nome</b>: Formbook<br/><b>Origem</b>: Payload embutido em Brio.png”] class malware_formbook malware %% Edges / Flow email_phishing –>|delivers| tool_wsh tool_wsh –>|uses COM to| action_copy action_copy –>|leads to| action_sched tool_wsh –>|launches| tool_ps tool_ps –>|executes| action_decode tool_ps –>|applies| action_patch action_decode –>|produces| file_dll action_patch –>|prepares environment for| file_dll file_dll –>|loaded by| process_msbuild process_msbuild –>|receives| action_inject action_inject –>|extracts final payload from| malware_formbook

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Verificação Preliminar de Telemetria e Linha de Base deve ter sido aprovada.

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.

  • Narrativa do Ataque & Comandos:
    Um atacante que violou uma conta de baixo privilégio deseja baixar uma carga maliciosa armazenada como uma string Base64 em um repositório de scripts comprometido. Para evitar a detecção, o atacante cria um PowerShell one-liner que (1) decodifica a string Base64, (2) a invoca via iex, e (3) cria um objeto AES para descriptografar dados incorporados adicionais. A linha de comando exata é escrita para corresponder aos literais da regra.

    powershell
    C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -Noexit -nop -c iex([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(('REPLACED_STRING'.Replace('VFHDVXDJCF',''))))) ; $aes_var = [System.Security.Cryptography.Aes]::Create()
    
    • O atacante substitui REPLACED_STRING por uma carga útil Base64 legítima após remover um marcador conhecido (VFHDVXDJCF).
    • The -Noexit -nop -c interruptores suprimem prompts e bypass da política de execução, correspondendo à condição de detecção.
    • The $aes_var nome da variável é mantido literal para satisfazer a segunda cláusula de seleção.
  • Script de Teste de Regressão: O seguinte script PowerShell reproduz a linha de comando exata de uma maneira controlada, garantindo que o SIEM receba telemetria idêntica.

    # Script de Teste de Regressão – aciona a detecção
    $payload = "U2FtcGxlIEJhc2U2NCBTdHJpbmc="   # "String Base64 de Exemplo"
    $marker  = "VFHDVXDJCF"
    $obfuscated = $payload.Replace($marker, "")   # simula o .Replace usado na detecção
    $command = @"
    C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -Noexit -nop -c iex([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(('${obfuscated}'.Replace('VFHDVXDJCF',''))))) ; $aes_var = [System.Security.Cryptography.Aes]::Create()
    "@
    
    # Executar a linha de comando criada
    Invoke-Expression $command
  • Comandos de Limpeza: Remova quaisquer objetos AES remanescentes e interrompa a sessão do PowerShell gerada.

    # Cleanup – termine o processo filho do PowerShell se ainda estiver em execução
    Get-Process -Name powershell -ErrorAction SilentlyContinue | Where-Object { $_.Path -like "*WindowsPowerShellv1.0powershell.exe" } | Stop-Process -Force
    
    # Opcionalmente, limpe quaisquer variáveis temporárias
    Remove-Variable -Name payload, marker, obfuscated, command -ErrorAction SilentlyContinue