SOC Prime Bias: Alto

17 Jun 2026 13:09 UTC

Por Dentro de um Proxy e RAT Baseados em Deno

Author Photo
SOC Prime Team linkedin icon Seguir
Por Dentro de um Proxy e RAT Baseados em Deno
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Um atacante implantou um Cavalo de Troia de Acesso Remoto (RAT) modular e uma estrutura de proxy aproveitando o runtime JavaScript Deno. O ataque utilizou bombardeio de e-mails e personificação do Microsoft Teams para facilitar o download de um arquivo malicioso. O implante opera através de múltiplos arquivos JavaScript modulares que usam flags de permissão específicas do Deno para realizar comunicação C2, execução de comandos locais e pivotagem de rede.

Investigação

A investigação revelou uma fase de acesso inicial consistindo em inundação de e-mails e engenharia social via Microsoft Teams. O malware foi identificado como um sistema não-tradicional, modular baseado em Deno, dividido em quatro scripts: app.js, back.js, helper.js e webui.js. A detecção ocorreu durante atividades de reconhecimento pós-exploração em vez de na execução inicial.

Mitigação

As organizações devem monitorar a execução de runtimes de script como Deno a partir de diretórios graváveis pelo usuário e alertar sobre flags de permissão suspeitas, como –allow-run ou –allow-net. Implementar o monitoramento de serviços HTTP local loopback e a correlação de alertas de personificação no Teams com anomalias em e-mails é recomendado. Além disso, restringir a capacidade de executar runtimes não assinados ou não aprovados pode reduzir a superfície de ataque.

Resposta

Após a detecção, os respondedores devem isolar os hosts afetados e investigar a origem da personificação no Teams. A análise deve focar na linhagem do processo Deno e em quaisquer serviços locais vinculados às portas loopback 10021 ou 10022. Revisar os logs de auditoria unificada do Microsoft 365 para eventos TeamsImpersonationDetected é crítico para determinar o escopo da campanha de engenharia social.

graph TB %% Definição de classes classDef action fill:#99ccff classDef builtin fill:#cccccc classDef malware fill:#ff9999 classDef discovery fill:#ccffcc classDef command_control fill:#ffff99 %% Fase inicial do ataque attack_email_bombing[“<b>Ação</b> – <b>T1667 Bombardeamento de Correio Eletrónico</b><br/>Descrição: Campanha massiva de emails utilizada<br/>para gerar fadiga e confusão na vítima.”] class attack_email_bombing action attack_social_eng[“<b>Ação</b> – <b>T1684.001 Engenharia Social: Personificação</b><br/>Descrição: Os atacantes fazem-se passar pelo suporte de TI<br/>através de chamadas no Microsoft Teams para ganhar credibilidade.”] class attack_social_eng action attack_user_exec[“<b>Ação</b> – <b>T1204.002 Execução pelo Utilizador: Ficheiro Malicioso</b><br/>Descrição: A vítima descarrega e extrai<br/>um arquivo malicioso.”] class attack_user_exec action file_malicious_archive[“<b>Ficheiro</b>: patch09913.b<br/>Descrição: Arquivo malicioso contendo<br/>a estrutura de malware baseada em Deno.”] class file_malicious_archive builtin %% Execução da framework de malware malware_deno_framework[“<b>Malware</b>: Framework baseada em Deno<br/>Descrição: Malware modular que utiliza o ficheiro app.js<br/>como orquestrador.”] class malware_deno_framework malware module_app_js[“<b>Módulo</b>: app.js<br/>Descrição: Orquestrador em JavaScript<br/>responsável por iniciar módulos especializados.”] class module_app_js malware action_js_interpreter[“<b>Ação</b> – <b>T1059.007 Interpretador de Comandos e Scripts: JavaScript</b><br/>Descrição: Utilizado pelo app.js para iniciar módulos.”] class action_js_interpreter action action_hide_artifacts[“<b>Ação</b> – <b>T1564.011 Ocultação de Artefactos: Ignorar Interrupções de Processos</b><br/>Descrição: Utiliza conhost.exe –headless para<br/>ocultar janelas de consola.”] class action_hide_artifacts action %% Persistência module_back_js[“<b>Módulo</b>: back.js<br/>Descrição: Responsável pela persistência e pelo C2.”] class module_back_js malware action_persistence[“<b>Ação</b> – <b>T1037.004 Scripts de Inicialização de Arranque ou Sessão: Scripts RC</b><br/>Descrição: Modifica a chave de Registo do Windows<br/>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run.”] class action_persistence action %% Descoberta module_helper_js[“<b>Módulo</b>: helper.js<br/>Descrição: Realiza a enumeração do sistema.”] class module_helper_js malware action_process_discovery[“<b>Ação</b> – <b>T1057 Descoberta de Processos</b><br/>Descrição: Executa tasklist para identificar processos em execução.”] class action_process_discovery discovery action_sys_info_discovery[“<b>Ação</b> – <b>T1082 Descoberta de Informação do Sistema</b><br/>Descrição: Executa ipconfig /all e set para recolher<br/>informações de rede e variáveis de ambiente.”] class action_sys_info_discovery discovery %% C2 e movimentação interna action_c2_protocol[“<b>Ação</b> – <b>T1071.001 Protocolo de Camada de Aplicação: Protocolos Web</b><br/>Descrição: Mantém uma ligação WebSocket persistente<br/>a um endpoint C2 alojado no CloudFront.”] class action_c2_protocol command_control module_webui_js[“<b>Módulo</b>: webui.js<br/>Descrição: Facilita a movimentação dentro da rede interna.”] class module_webui_js malware action_proxy_pivoting[“<b>Ação</b> – <b>T1090 Proxy (Pivotagem Interna)</b><br/>Descrição: Atua como intermediário de acesso para encaminhar<br/>tráfego TCP para a rede interna.”] class action_proxy_pivoting command_control %% Ligações attack_email_bombing –>|gera_confusão_para| attack_social_eng attack_social_eng –>|leva_a| attack_user_exec attack_user_exec –>|envolve| file_malicious_archive file_malicious_archive –>|executa| malware_deno_framework malware_deno_framework –>|orquestrado_por| module_app_js module_app_js –>|utiliza| action_js_interpreter module_app_js –>|implementa| action_hide_artifacts module_app_js –>|inicia| module_back_js module_app_js –>|inicia| module_helper_js module_app_js –>|inicia| module_webui_js module_back_js –>|executa| action_persistence module_back_js –>|estabelece| action_c2_protocol module_helper_js –>|executa| action_process_discovery module_helper_js –>|executa| action_sys_info_discovery module_webui_js –>|executa| action_proxy_pivoting

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-voo de Telemetria & Linha de Base deve ter passado.

Racionalização: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para ativar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e ter como objetivo 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 e Comandos de Ataque: O adversário entregou com sucesso um RAT malicioso baseado em Deno na máquina da vítima via anexo de spearphishing (T1566.004). Para evadir antivírus (AV) baseado em assinatura tradicional, o atacante esconde o binário Deno dentro de um subdiretório profundo e não padrão do perfil de roaming do usuário: C:Usersuser.nameAppDataRoamingDenoJSEnv. O atacante então executa o binário usando as flags --allow-run and --allow-net . Isso permite que o malware baseado em JavaScript execute comandos shell arbitrários para descoberta de sistema (T1082) e se comunique com um servidor C2 externo via HTTPS (T1071.001).

  • Script de Teste de Regressão:

    # Nota: Este script simula a existência do diretório e binário 
    # para ativar a lógica da regra. Em um teste real, o arquivo deve existir no caminho exato.
    
    $targetDir = "C:Usersuser.nameAppDataRoamingDenoJSEnv"
    $targetExe = "$targetDirdeno.exe"
    
    # 1. Criar a estrutura de diretório específica necessária pela regra de detecção
    if (!(Test-Path $targetDir)) {
        New-Item -ItemType Directory -Force -Path $targetDir
    }
    
    # 2. Criar um arquivo fictício para atuar como o 'deno.exe'
    # Em uma simulação real, este seria o binário Deno real.
    New-Item -ItemType File -Force -Path $targetExe
    
    # 3. Executar o comando 'malicioso'
    # Usamos Start-Process para garantir que apareça como um processo filho nos logs do Sysmon.
    # Como 'deno.exe' é fictício, chamaremos 'cmd.exe' mas mascaramos o comando 
    # para corresponder à lógica, OU se estiver testando a REGRA REAL, garantir que o binário 
    # seja real e chamá-lo. Para esta simulação, assumimos que o usuário fornece um 
    # binário Deno real nesse caminho.
    
    Write-Host "[!] Simulando execução de $targetExe com flags maliciosas..."
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c echo Simulação Ativando Regra..." 
    # Nota: Para realmente ativar a regra, o deno.exe real deve estar presente.
    # Se a regra está estritamente verificando o caminho de Imagem, o binário DEVE estar lá.
    # Para o bem de um script de simulação funcional, chamamos o caminho:
    # Start-Process -FilePath $targetExe -ArgumentList "--allow-run --allow-net"
  • Comandos de Limpeza:

    # Remover o diretório e arquivos maliciosos simulados
    Remove-Item -Path "C:Usersuser.nameAppDataRoamingDenoJSEnv" -Recurse -Force
    Write-Host "[+] Limpeza completa."