Phantom 3.5 – malware de roubo de credenciais entregue através de um instalador falso da Adobe
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)
Visualizar
Uso Potencial de Timeout para Execução com Atraso (via cmdline)
Visualizar
Execução de Mudança de Página de Código Incomum (via cmdline)
Visualizar
Pontos de Persistência Possíveis [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizar
IOCs (HashMd5) para detectar: Phantom 3.5: Análise de Vetor Inicial e Forense
Visualizar
Injeção de Processo Phantom 3.5 via Aspnet_compiler.exe [Criação de Processo do Windows]
Visualizar
Execução de Script PowerShell com Atributo Oculto e Strings Codificadas em Base64 [PowerShell do Windows]
Visualizar
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 usamAspnet_compiler.exe, um binário confiável do Windows, para carregar o assembly gerenciado malicioso viaInvoke-ManagedAssemblyargumento. 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.-
Prepare o assembly gerenciado malicioso (
phantom_payload.dll) no host alvo. -
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 -
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