SOC Prime Bias: Médio

18 Dez 2025 21:42

Phantom 3.5 – malware de roubo de credenciais entregue através de um instalador falso da Adobe

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Phantom 3.5 – malware de roubo de credenciais entregue através de um instalador falso da Adobe
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Phantom 3.5 é um malware de roubo de credenciais distribuído através de um instalador falso da Adobe. Uma vez executado, o instalador solta um script PowerShell que fornece um DLL .NET ofuscado (BLACKHAWK.dll) e injeta a carga final no Aspnet_compiler.exe para ser executado em um contexto de processo que parece confiável.

Investigação

Pesquisadores detonaram o instalador falso em um sandbox e capturaram a localização do downloader (positivepay-messages.com/file/floor.ps1). Eles decodificaram o script protegido por Base64/RC4, identificaram o DLL .NET recuperado e confirmaram a injeção no Aspnet_compiler.exe usando ferramentas como hollows_hunter e ProcDump. A análise indica que o DLL inclui medidas anti-análise, técnicas de Heaven’s Gate e múltiplos canais de exfiltração, incluindo SMTP, FTP, Telegram e Discord.

Mitigação

Restrinja ou bloqueie a execução de scripts PowerShell não assinados, impeça o carregamento de DLLs não confiáveis e monitore a criação anormal de processos Aspnet_compiler.exe. Aplique filtragem de URL para negar acesso ao domínio malicioso e seus caminhos. Garanta que controles de endpoint possam detectar padrões de injeção de processos e comportamentos comuns de roubo de credenciais.

Resposta

Dispare alertas sobre conexões de saída para positivepay-messages.com, artefatos de memória ou módulo relacionados ao BLACKHAWK.dll e evidências de injeção de código no Aspnet_compiler.exe. Quarentena o host afetado, adquira imagens de memória e realize triagem forense completa para erradicar o DLL malicioso e cargas associadas.

“graph TB %% Definições de Classe classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef process fill:#c2f0c2 classDef malware fill:#f9d5e5 %% Nós u2013 Acesso Inicial e Execução action_user_execution[“<b>Ação</b> – <b>T1204.002 Execução do Usuário</b>: A vítima executa um falso “instalador Adobe 11.7.7″ que parece legítimo.”] class action_user_execution action tech_masquerade[“<b>Técnica</b> – <b>T1036.008 Mascaramento</b>: O arquivo do instalador é renomeado e mascarado para se parecer com um instalador Adobe.”] class tech_masquerade technique tool_powershell[“<b>Ferramenta</b> – <b>Nome</b>: PowerShell<br/><b>Descrição</b>: Usado para baixar e executar um script malicioso com a janela oculta e ignorar a política de execução.”] class tool_powershell tool %% Nós u2013 Ofuscação e Decodificação tech_deobfuscate[“<b>Técnica</b> – <b>T1140 Desofuscar/Decodificar Arquivos</b>: O payload Base64u2011RC4 é decodificado e descriptografado antes da execução.”] class tech_deobfuscate technique tech_obfuscate[“<b>Técnica</b> – <b>T1027 Arquivos Ofuscados</b>: Scripts maliciosos são fortemente ofuscados para evadir a análise estática.”] class tech_obfuscate technique %% Nós u2013 Injeção de Processo e Carregamento Reflexivo tech_process_injection[“<b>Técnica</b> – <b>T1055 Injeção de Processo</b>: BLACKHAWK.dll é injetado em Aspnet_compiler.exe para executar o payload.”] class tech_process_injection technique process_aspnet_compiler[“<b>Processo</b> – <b>Nome</b>: Aspnet_compiler.exe”] class process_aspnet_compiler process tech_reflective_load[“<b>Técnica</b> – <b>T1620 Carregamento de Código Reflexivo</b>: Assembly .NET é carregado na memória usando System.Reflection.Assembly::Load.”] class tech_reflective_load technique %% Nós u2013 Evasão de Defesa tech_sandbox_evasion[“<b>Técnica</b> – <b>T1497.002 Evasão de Sandbox Virtualização</b>: Verifica nomes de usuários e variáveis de ambiente para detectar máquinas de análise.”] class tech_sandbox_evasion technique %% Nós u2013 Persistência tech_active_setup[“<b>Técnica</b> – <b>T1547.014 Persistência do Active Setup</b>: Cria uma chave de registro Run via Active Setup para execução automática no logon.”] class tech_active_setup technique %% Nós u2013 Acesso e Coleta de Credenciais tech_keylogging[“<b>Técnica</b> – <b>T1056.001 Keylogging</b>: Captura as teclas digitadas pelo usuário.”] class tech_keylogging technique tech_browser_cred[“<b>Técnica</b> – <b>T1555.003 Acesso a Credenciais do Navegador</b>: Rouba chaves mestras, senhas, cookies e dados de carteira de navegadores web.”] class tech_browser_cred technique tech_clipboard[“<b>Técnica</b> – <b>T1115 Dados da Área de Transferência</b>: Coleta dados da área de transferência do sistema.”] class tech_clipboard technique tech_screen_capture[“<b>Técnica</b> – <b>T1113 Captura de Tela</b>: Tira capturas de tela em intervalos de um segundo.”] class tech_screen_capture technique tech_video_capture[“<b>Técnica</b> – <b>T1125 Captura de Vídeo</b>: Grava imagens de vídeo da área de trabalho do usuário.”] class tech_video_capture technique %% Nós u2013 Exfiltração tech_smtp_ftp[“<b>Técnica</b> – <b>T1048 Exfiltração via Protocolo Alternativo</b>: Envia dados roubados por email SMTP e transferências FTP.”] class tech_smtp_ftp technique tech_telegram_discord[“<b>Técnica</b> – <b>T1567 Exfiltração via Serviço Web</b>: Transfere dados através das APIs do Telegram e Discord.”] class tech_telegram_discord technique %% Nós u2013 Comando e Controle tech_web_service[“<b>Técnica</b> – <b>T1102.002 Serviço Web C2 Bidirecional</b>: Usa Telegram e Discord como canais de comunicação bidirecional para comando e controle.”] class tech_web_service technique %% Conexões u2013 Fluxo do Ataque action_user_execution u002du002d>|leva a| tech_masquerade tech_masquerade u002du002d>|leva a| tool_powershell tool_powershell u002du002d>|executa| tech_deobfuscate tech_deobfuscate u002du002d>|suporta| tech_obfuscate tech_obfuscate u002du002d>|habilita| tech_process_injection tech_process_injection u002du002d>|alvos| process_aspnet_compiler process_aspnet_compiler u002du002d>|carrega| tech_reflective_load tech_reflective_load u002du002d>|facilita| tech_sandbox_evasion tech_sandbox_evasion u002du002d>|permite| tech_active_setup tech_active_setup u002du002d>|habilita| tech_keylogging tech_keylogging u002du002d>|coleta| tech_browser_cred tech_browser_cred u002du002d>|acrescenta a| tech_clipboard tech_clipboard u002du002d>|acrescenta a| tech_screen_capture tech_screen_capture u002du002d>|acrescenta a| tech_video_capture tech_video_capture u002du002d>|alimenta| tech_smtp_ftp tech_video_capture u002du002d>|alimenta| tech_telegram_discord tech_smtp_ftp u002du002d>|exfiltra via| tech_web_service tech_telegram_discord u002du002d>|exfiltra via| tech_web_service %% Estilização class action_user_execution action class tech_masquerade,tech_deobfuscate,tech_obfuscate,tech_process_injection,tech_reflective_load,tech_sandbox_evasion,tech_active_setup,tech_keylogging,tech_browser_cred,tech_clipboard,tech_screen_capture,tech_video_capture,tech_smtp_ftp,tech_telegram_discord,tech_web_service technique class tool_powershell tool class process_aspnet_compiler process “

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-vôo de Telemetria & Baseline deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e têm como objetivo gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa do Ataque & Comandos:
    O adversário obteve a carga útil Phantom 3.5 e deseja executá-la na memória para evadir defesas baseadas em disco. Eles usam Aspnet_compiler.exe, um binário confiável do Windows, para carregar o assembly gerenciado malicioso via Invoke-ManagedAssembly argumento. Isso faz com que o processo do compilador seja iniciado, injete a carga útil no espaço do processo atual e persista criando uma tarefa agendada que executa repetidamente o mesmo comando.

    1. Prepare o assembly gerenciado malicioso (phantom_payload.dll) no host alvo.

    2. Execute a injeção usando Aspnet_compiler.exe:

       $maliciousDll = "C:Tempphantom_payload.dll"
       $cmd = "`"$env:WINDIRMicrosoft.NETFramework64v4.0.30319Aspnet_compiler.exe`" -p `"$maliciousDll`" -c `Invoke-ManagedAssembly`"
       Start-Process -FilePath $cmd -WindowStyle Hidden
    3. Crie persistência (opcional) registrando uma tarefa agendada que reaplica o mesmo comando a cada hora.

  • Script de Teste de Regressão: O script abaixo reproduz as etapas acima de maneira autocontida e repetível.

    <#
    .SYNOPSIS
        Simula injeção de processo Phantom 3.5 usando Aspnet_compiler.exe.
    .DESCRIPTION
        Copia um DLL malicioso fictício para um local conhecido, em seguida, lança Aspnet_compiler.exe
        com a flag `Invoke-ManagedAssembly` para gerar o evento de criação de processo exato
        que a regra de detecção observa.
    #>
    
    # --- Preparation -----------------------------------------------------------
    $dllPath = "$env:TEMPphantom_payload.dll"
    # Crie um pequeno DLL fictício (substituto para a carga real)
    Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A,0x90,0x00,0x03,0x00,0x00,0x00)) -Encoding Byte
    
    # --- Execution -------------------------------------------------------------
    $aspnetPath = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319Aspnet_compiler.exe"
    if (-Not (Test-Path $aspnetPath)) {
        Write-Error "Aspnet_compiler.exe não encontrado no local esperado."
        exit 1
    }
    
    $arguments = "-p `"$dllPath`" -c `Invoke-ManagedAssembly`"
    Write-Host "Iniciando Aspnet_compiler.exe com argumentos maliciosos..."
    Start-Process -FilePath $aspnetPath -ArgumentList $arguments -WindowStyle Hidden -PassThru
    
    # --- Optional Persistence ----------------------------------------------------
    # Registre uma tarefa agendada que repete a injeção a cada hora
    $taskName = "PhantomInject"
    $action = New-ScheduledTaskAction -Execute $aspnetPath -Argument $arguments
    $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(5) -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration ([TimeSpan]::MaxValue)
    Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -Force
    
    Write-Host "Simulação completa. Verifique o SIEM para o alerta gerado."
  • Comandos de Limpeza: Remova o DLL fictício, a tarefa agendada e quaisquer processos remanescentes.

    # Remova o DLL fictício
    Remove-Item -Path "$env:TEMPphantom_payload.dll" -Force -ErrorAction SilentlyContinue
    
    # Desregistre a tarefa agendada
    Unregister-ScheduledTask -TaskName "PhantomInject" -Confirm:$false -ErrorAction SilentlyContinue
    
    # Elimine quaisquer processos Aspnet_compiler.exe remanescentes iniciados pelo teste
    Get-Process -Name "Aspnet_compiler" -ErrorAction SilentlyContinue | Stop-Process -Force