SOC Prime Bias: Medium

18 Dec 2025 18:42 UTC

Phantom 3.5 – Malware di furto di credenziali distribuito tramite un falso installer di Adobe

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Segui
Phantom 3.5 – Malware di furto di credenziali distribuito tramite un falso installer di Adobe
shield icon

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)

Team SOC Prime
18 Dic 2025

Possibile Utilizzo del Timeout per Ritardare l’Esecuzione (via cmdline)

Team SOC Prime
18 Dic 2025

Esecuzione Insolita di Modifiche della Code Page (via cmdline)

Team SOC Prime
18 Dic 2025

Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)

Team SOC Prime
18 Dic 2025

IOC (HashMd5) per rilevare: Phantom 3.5: Analisi del Vettore Iniziale & Forensics

Regole AI di SOC Prime
18 Dic 2025

Iniezione di Processo Phantom 3.5 tramite Aspnet_compiler.exe [Creazione di Processo Windows]

Regole AI di SOC Prime
18 Dic 2025

Esecuzione di Script PowerShell con Attributo Nascosto e Stringhe Codificate in Base64 [Windows Powershell]

Regole AI di SOC Prime
18 Dic 2025

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. Sfruttano Aspnet_compiler.exe, un binario affidabile di Windows, per caricare l’assembly gestito malevolo tramite l’argomento Invoke-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.

    1. Prepara l’assembly gestito malevolo (phantom_payload.dll) sull’host di destinazione.

    2. 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
    3. 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