SOC Prime Bias: Medium

18 Dec 2025 18:42 UTC

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 Seguir
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.

Fluxo de Ataque

Detecções

Strings do Powershell suspeitas (via powershell)

Equipe SOC Prime
18 de Dez de 2025

Uso Potencial de Timeout para Execução com Atraso (via cmdline)

Equipe SOC Prime
18 de Dez de 2025

Execução de Mudança de Página de Código Incomum (via cmdline)

Equipe SOC Prime
18 de Dez de 2025

Pontos de Persistência Possíveis [ASEPs – Software/NTUSER Hive] (via registry_event)

Equipe SOC Prime
18 de Dez de 2025

IOCs (HashMd5) para detectar: Phantom 3.5: Análise de Vetor Inicial e Forense

Regras SOC Prime AI
18 de Dez de 2025

Injeção de Processo Phantom 3.5 via Aspnet_compiler.exe [Criação de Processo do Windows]

Regras SOC Prime AI
18 de Dez de 2025

Execução de Script PowerShell com Atributo Oculto e Strings Codificadas em Base64 [PowerShell do Windows]

Regras SOC Prime AI
18 de Dez de 2025

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