SOC Prime Bias: Alto

17 Jun 2026 12:58 UTC

Como um Arquivo VHDX Entrega o Remcos RAT

Author Photo
SOC Prime Team linkedin icon Seguir
Como um Arquivo VHDX Entrega o Remcos RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma campanha de malware em várias etapas utiliza um arquivo ZIP armado contendo uma imagem de disco VHDX para escapar de controles de segurança comuns. Após a montagem do VHDX, um arquivo JavaScript ofuscado é executado e lança uma série de estágios do PowerShell através do WMI. O payload final é o Remcos RAT, que é injetado em um processo legítimo do Windows para ocultar sua execução.

Investigação

O pesquisador examinou um arquivo ZIP malicioso e o contêiner VHDX incorporado para reconstruir o fluxo completo do ataque. A análise expôs uma cadeia de execução complexa que usava criação de processos baseada em WMI para disfarçar relações de pai e filho, junto com ofuscação de strings XOR e Base64 e um carregador refletivo .NET. O caminho da infecção foi rastreado com sucesso desde a execução inicial do JavaScript até a implantação do payload final Remcos.

Mitigação

As organizações devem aplicar controles rigorosos para evitar a montagem de imagens de disco VHDX de fontes não confiáveis. Ferramentas de segurança também devem monitorar atividades suspeitas Win32_Process.Create atividades desencadeadas por mecanismos de script, como JavaScript ou PowerShell. Bloquear domínios maliciosos conhecidos e observar persistência incomum em chaves de execução no registro pode reduzir ainda mais o risco.

Resposta

Se esta atividade for detectada, isole o endpoint afetado imediatamente para interromper a comunicação de comando e controle. Adquira um dump de memória para capturar o payload Remcos injetado e o carregador refletivo .NET. Uma revisão forense completa deve então buscar entradas de chaves de execução maliciosas, arquivos VHDX adicionais e atividades suspeitas de PowerShell em outros locais do ambiente.

graph TB %% Definição das classes classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef connection fill:#f9f9f9 %% Acesso inicial e execução action_phishing[“<b>Ação</b> – <b>T1566.001 Phishing: Anexo de spearphishing</b><br/>Descrição: Arquivo ZIP malicioso<br/>entregue por e-mail.”] class action_phishing action action_user_exec[“<b>Ação</b> – <b>T1204.002 Execução pelo usuário: Arquivo malicioso</b><br/>Descrição: O usuário executa<br/>o arquivo ZIP malicioso.”] class action_user_exec action tool_vhdx[“<b>Ferramenta</b> – <b>Nome</b>: Arquivo VHDX<br/>Descrição: Contêiner de malware usado para ocultar<br/>a carga útil através de Escape to Host T1611.”] class tool_vhdx tool %% Ofuscação e scripts file_js[“<b>Arquivo</b>: Partnerschaft_fur_neue_Angebotsanfrage.js<br/><b>Descrição</b>: Arquivo JavaScript malicioso que utiliza<br/>Ofuscação de Comandos T1027.010 através de poluição<br/>de strings e descriptografia XOR.”] class file_js tool action_wmi[“<b>Ação</b>: PowerShell via WMI<br/><b>Descrição</b>: Executa um script PowerShell usando WMI<br/>para evitar monitoramento de relacionamento entre processos.”] class action_wmi action %% Transferência e estágios do malware action_ingress_1[“<b>Ação</b> – <b>T1105 Transferência de Ferramentas de Entrada</b><br/><b>Descrição</b>: O script PowerShell baixa<br/>o arquivo de segundo estágio.”] class action_ingress_1 action file_dsp[“<b>Arquivo</b>: Exoticisms121.dsp<br/><b>Descrição</b>: Arquivo de segundo estágio armazenado<br/>em %APPDATA%.”] class file_dsp tool tool_loader[“<b>Ferramenta</b>: Carregador .NET Reflexivo<br/><b>Descrição</b>: Executa shellcode<br/>a partir do arquivo de segundo estágio.”] class tool_loader tool action_ingress_2[“<b>Ação</b> – <b>T1105 Transferência de Ferramentas de Entrada</b><br/><b>Descrição</b>: O shellcode obtém<br/>a carga final do Remcos RAT.”] class action_ingress_2 action malware_remcos[“<b>Malware</b>: Remcos RAT<br/>Descrição: Carga final estabelecida<br/>para comunicação de Comando e Controle TA0011.”] class malware_remcos malware %% Processo e C2 process_bg_task[“<b>Processo</b>: backgroundTaskHost.exe<br/>Descrição: Processo alvo<br/>para injeção do malware.”] class process_bg_task process c2_server[“<b>Servidor C2</b>: animal342.duckdns.org:53562<br/>Descrição: Servidor remoto utilizado<br/>para comunicação de Comando e Controle.”] class c2_server tool %% Persistência action_persistence[“<b>Ação</b> – <b>T1547.001 Execução Automática no Boot ou Logon: Chaves Registry Run / Pasta Startup</b><br/>Descrição: Utiliza cmd.exe para criar chaves<br/>de registro de inicialização automática para o carregador PowerShell.”] class action_persistence action %% Conexões action_phishing –>|leva_a| action_user_exec action_user_exec –>|revela| tool_vhdx tool_vhdx –>|contém| file_js file_js –>|executa_via_WMI| action_wmi action_wmi –>|realiza| action_ingress_1 action_ingress_1 –>|baixa| file_dsp file_dsp –>|processado_por| tool_loader tool_loader –>|realiza| action_ingress_2 action_ingress_2 –>|obtém| malware_remcos malware_remcos –>|injeta_em| process_bg_task malware_remcos –>|comunica_com| c2_server malware_remcos –>|garante| action_persistence

Fluxo de Ataque

## Execução de Simulação

Pré-requisito: O Check Preliminar de Telemetria & Linha de Base deve ter sido aprovado.

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 tentar 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 do Ataque: O adversário pretende executar um payload malicioso na memória para evitar a detecção por antivírus tradicionais. Eles utilizam um script PowerShell que aproveita [System.Reflection.Assembly]::Load() para puxar uma DLL .NET compilada diretamente de um array de bytes para o processo atual. Para manter a persistência e evitar escrutínio, eles tentam gerar ou interagir com backgroundTaskHost.exe, um processo legítimo do Windows, para ocultar seu thread de execução dentro de uma tarefa de sistema padrão.

  • Script de Teste de Regressão:

    # Script de Simulação: Carga Refletiva .NET e Interação de Processo
    # Este script imita a lógica capturada pela regra de detecção.
    
    # 1. Crie um array de bytes fictício representando um Assembly .NET (altamente simplificado para simulação)
    $assemblyBytes = [byte[]](0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00) # Imita o cabeçalho MZ
    
    Write-Host "[+] Tentando Carga Refletiva do Assembly .NET..." -ForegroundColor Cyan
    try {
        # Esta string específica é um alvo para a regra de detecção
        $assembly = [System.Reflection.Assembly]::Load($assemblyBytes)
        Write-Host "[!] Sucesso: Assembly carregado na memória (somente simulação)." -ForegroundColor Green
    } catch {
        Write-Host "[-] Falha no carregamento do assembly (esperada devido a bytes fictícios inválidos), mas o comando foi enviado." -ForegroundColor Yellow
    }
    
    Write-Host "[+] Tentando invocar backgroundTaskHost.exe para acionar a detecção..." -ForegroundColor Cyan
    # Esta string específica é um alvo para a regra de detecção
    Start-Process "C:WindowsSystem32backgroundTaskHost.exe" -ArgumentList "/test-detection"
  • Comandos de Limpeza:

    # Limpeza: Termine o processo backgroundTaskHost gerado
    Stop-Process -Name "backgroundTaskHost" -ErrorAction SilentlyContinue
    Write-Host "[+] Limpeza concluída. BackgroundTaskHost terminado." -ForegroundColor Green