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.
“graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef process fill:#c2f0c2 classDef malware fill:#f9d5e5 %% Nodes u2013 Initial Access and Execution action_user_execution[“<b>Azione</b> – <b>T1204.002 Esecuzione Utente</b>: La vittima esegue un falso u201cinstaller Adobe 11.7.7u201d che sembra legittimo.”] class action_user_execution action tech_masquerade[“<b>Tecnica</b> – <b>T1036.008 Camuffamento</b>: Il file dell’installer viene rinominato e camuffato per sembrare un installer Adobe.”] class tech_masquerade technique tool_powershell[“<b>Strumento</b> – <b>Nome</b>: PowerShell<br/><b>Descrizione</b>: Usato per scaricare ed eseguire uno script dannoso con finestra nascosta e bypass delle policy di esecuzione.”] class tool_powershell tool %% Nodes u2013 Obfuscation and Decoding tech_deobfuscate[“<b>Tecnica</b> – <b>T1140 Deoffuscare/Decodificare File</b>: Il payload Base64u2011RC4 viene decodificato e decriptato prima dell’esecuzione.”] class tech_deobfuscate technique tech_obfuscate[“<b>Tecnica</b> – <b>T1027 File Offuscati</b>: Gli script malware sono fortemente offuscati per eludere l’analisi statica.”] class tech_obfuscate technique %% Nodes u2013 Process Injection and Reflective Loading tech_process_injection[“<b>Tecnica</b> – <b>T1055 Injection Processo</b>: BLACKHAWK.dll viene iniettato in Aspnet_compiler.exe per eseguire il 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>Tecnica</b> – <b>T1620 Caricamento Codice Riflessivo</b>: Un assembly .NET viene caricato in memoria usando System.Reflection.Assembly::Load.”] class tech_reflective_load technique %% Nodes u2013 Defense Evasion tech_sandbox_evasion[“<b>Tecnica</b> – <b>T1497.002 Evasione Sandbox di Virtualizzazione</b>: Controlla nomi utente e variabili d’ambiente per rilevare macchine di analisi.”] class tech_sandbox_evasion technique %% Nodes u2013 Persistence tech_active_setup[“<b>Tecnica</b> – <b>T1547.014 Persistenza Active Setup</b>: Crea una chiave di registro Run tramite Active Setup per l’esecuzione automatica all’accesso.”] class tech_active_setup technique %% Nodes u2013 Credential Access and Collection tech_keylogging[“<b>Tecnica</b> – <b>T1056.001 Keylogging</b>: Cattura i tasti premuti dall’utente.”] class tech_keylogging technique tech_browser_cred[“<b>Tecnica</b> – <b>T1555.003 Accesso Credenziali Browser</b>: Ruba chiavi master, password, cookie e dati del portafoglio dai browser web.”] class tech_browser_cred technique tech_clipboard[“<b>Tecnica</b> – <b>T1115 Dati Appunti</b>: Raccoglie dati dagli appunti di sistema.”] class tech_clipboard technique tech_screen_capture[“<b>Tecnica</b> – <b>T1113 Cattura Schermo</b>: Scatta screenshot a intervalli di un secondo.”] class tech_screen_capture technique tech_video_capture[“<b>Tecnica</b> – <b>T1125 Cattura Video</b>: Registra riprese video del desktop dell’utente.”] class tech_video_capture technique %% Nodes u2013 Exfiltration tech_smtp_ftp[“<b>Tecnica</b> – <b>T1048 Esfiltrazione su Protocollo Alternativo</b>: Invio dati rubati tramite email SMTP e trasferimenti FTP.”] class tech_smtp_ftp technique tech_telegram_discord[“<b>Tecnica</b> – <b>T1567 Esfiltrazione tramite Servizio Web</b>: Trasferisce dati attraverso le API di Telegram e Discord.”] class tech_telegram_discord technique %% Nodes u2013 Command and Control tech_web_service[“<b>Tecnica</b> – <b>T1102.002 Servizio Web C2 Bidirezionale</b>: Utilizza Telegram e Discord come canali di comunicazione bidirezionali per comando e controllo.”] class tech_web_service technique %% Connections u2013 Flow of Attack action_user_execution u002du002d>|porta a| tech_masquerade tech_masquerade u002du002d>|porta a| tool_powershell tool_powershell u002du002d>|esegue| tech_deobfuscate tech_deobfuscate u002du002d>|supporta| tech_obfuscate tech_obfuscate u002du002d>|abilita| tech_process_injection tech_process_injection u002du002d>|obiettivo| process_aspnet_compiler process_aspnet_compiler u002du002d>|carica| tech_reflective_load tech_reflective_load u002du002d>|facilita| tech_sandbox_evasion tech_sandbox_evasion u002du002d>|permette| tech_active_setup tech_active_setup u002du002d>|abilita| tech_keylogging tech_keylogging u002du002d>|raccoglie| tech_browser_cred tech_browser_cred u002du002d>|aggiunge a| tech_clipboard tech_clipboard u002du002d>|aggiunge a| tech_screen_capture tech_screen_capture u002du002d>|aggiunge a| tech_video_capture tech_video_capture u002du002d>|fornisce| tech_smtp_ftp tech_video_capture u002du002d>|fornisce| tech_telegram_discord tech_smtp_ftp u002du002d>|esfiltra tramite| tech_web_service tech_telegram_discord u002du002d>|esfiltra tramite| tech_web_service %% Styling 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 “
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