Il Demone Arriva Più Tardi: Un Havoc Stager Si Nasconde Dietro Microsoft Defender DLP
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Gli attori delle minacce in Brasile stanno distribuendo fatture elettroniche contraffatte NF-e allegati ZIP che consegnano un installatore MSI dannoso. L’MSI rilascia una falsa DLL Microsoft Defender Endpoint DLP che funziona effettivamente come uno stager Havoc. Una volta lanciato, lo stager si connette a un server di comando e controllo remoto, recupera un payload Havoc in memoria e crea persistenza attraverso un script di accesso valore di registro. Varianti simili sono state osservate anche su domini registrati in Malesia utilizzando lo stesso wrapper di consegna.
Indagine
LevelBlue SpiderLabs ha analizzato l’archivio ZIP, il VBS dropper e il pacchetto MSI, scoprendo un binario Microsoft firmato, mpextms.exe, accoppiato con un endpointdlp.dll stager non firmato. Lo stager conteneva valori di configurazione in chiaro, inclusi l’host di comando e controllo, i percorsi URL e una stringa di mutex. Le catture di rete hanno rivelato traffico GET e POST a indirizzi IP specifici insieme a distinti valori di user-agent. I ricercatori hanno identificato nove varianti di stager correlate che condividevano gli stessi metadati di versione e import hash.
Mitigazione
I difensori dovrebbero rilevare le DLL non firmate che si spacciano per componenti Microsoft Defender Endpoint DLP o Dragon Data Protection, monitorare le modifiche a HKCUEnvironmentUserInitMprLogonScript, e allertare sul valore di mutex noto. La regola YARA pubblicata dovrebbe essere distribuita per rilevare lo stager prima che possa caricare il payload Havoc. I team di sicurezza dovrebbero anche verificare le firme Authenticode su tutti i binari a marchio Microsoft consegnati all’interno di archivi.
Risposta
Se viene rilevata questa attività, bloccare gli indirizzi IP e i domini associati, mettere in quarantena i file MSI e DLL e rimuovere la voce di script di accesso registro dannosa. Eseguire una verifica forense dell’host per confermare che nessun payload Havoc in memoria rimanga attivo e ruotare le credenziali per gli utenti interessati. I team aziendali rilevanti devono essere notificati e le protezioni email devono essere aggiornate per bloccare allegati simili a tema NF-e.
graph TB %% Definizione classi classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef operator fill:#ff9900 %% Nodi action_phishing[“<b>Azione</b> – <b>T1566.001 Phishing: Allegato di Spearphishing</b><br/>Consegna di un file ZIP dannoso camuffato da fattura NF-e brasiliana”] class action_phishing action action_vbscript[“<b>Azione</b> – <b>T1059.005 Interprete di Comandi e Script: Visual Basic</b><br/>Uno script VBScript nascosto avvia un cmd occultato che avvia il download dell’MSI”] class action_vbscript action action_download_msi[“<b>Azione</b> – <b>T1218.007 Esecuzione Proxy tramite Binario Firmato: Msiexec</b><br/>Curl viene richiamato per scaricare <i>update.msi</i> da Google Cloud Storage”] class action_download_msi action action_msi_execution[“<b>Azione</b> – <b>T1218.007 Esecuzione Proxy tramite Binario Firmato: Msiexec</b><br/>Msiexec esegue il file MSI che contiene <i>mpextms.exe</i> firmato e il file dannoso <i>endpointdlp.dll</i>”] class action_msi_execution action action_dll_sideload[“<b>Azione</b> – <b>T1218 Caricamento Laterale di DLL</b> e <b>T1036.001 Mascheramento</b><br/><i>endpointdlp.dll</i> imita una DLL di Microsoft Defender ma non possiede una firma valida”] class action_dll_sideload action action_stager_c2[“<b>Azione</b> – <b>T1102.002 Protocollo di Livello Applicativo: Protocolli Web</b><br/>Lo stager invia GET /stage/<hex> con lo User-Agent personalizzato «Microsoft-Delivery-Optimization/10.1»”] class action_stager_c2 action action_download_havoc[“<b>Azione</b> – <b>T1219 Strumento di Accesso Remoto</b><br/>Il demone Havoc viene scaricato tramite HTTP ed eseguito direttamente in memoria senza essere scritto su disco”] class action_download_havoc action action_persistence[“<b>Azione</b> – <b>T1037.001 Script di Accesso</b><br/>Scrive HKCU\Environment\UserInitMprLogonScript per avviare <i>mpextms.exe</i> all’accesso dell’utente”] class action_persistence action action_telemetry[“<b>Azione</b> – <b>T1102.003 Protocollo di Livello Applicativo: Protocolli Web</b><br/>POST /api/v2/telemetry/diag verso il server C2”] class action_telemetry action action_defense_evasion[“<b>Azione</b> – <b>T1027.013 File o Informazioni Offuscati: Payload Incorporato</b>, <b>T1027.010 Riempimento Binario</b>, <b>T1564.003 Nascondere Artefatti</b><br/>Il payload è cifrato, i comandi sono offuscati ed eseguiti in finestre nascoste”] class action_defense_evasion action %% Connessioni del flusso di attacco action_phishing –>|porta_a| action_vbscript action_vbscript –>|attiva| action_download_msi action_download_msi –>|richiama| action_msi_execution action_msi_execution –>|installa| action_dll_sideload action_dll_sideload –>|comunica_con| action_stager_c2 action_dll_sideload –>|crea| action_persistence action_stager_c2 –>|scarica| action_download_havoc action_stager_c2 –>|invia| action_telemetry action_download_havoc –>|abilita| action_defense_evasion
Flusso di Attacco
Rilevamenti
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizza
Utilizzo Sospetto di CURL (via cmdline)
Visualizza
IOC (HashSha256) per rilevare: Il Demone Arriva In Ritardo: Uno Stager Havoc Si Nasconde Dietro Microsoft Defender DLP
Visualizza
IOC (HashMd5) per rilevare: Il Demone Arriva In Ritardo: Uno Stager Havoc Si Nasconde Dietro Microsoft Defender DLP
Visualizza
IOC (SourceIP) per rilevare: Il Demone Arriva In Ritardo: Uno Stager Havoc Si Nasconde Dietro Microsoft Defender DLP
Visualizza
IOC (DestinationIP) per rilevare: Il Demone Arriva In Ritardo: Uno Stager Havoc Si Nasconde Dietro Microsoft Defender DLP
Visualizza
Rilevamento di Attività di Rete dello Stager Havoc [Connessione di Rete Windows]
Visualizza
Persistenza tramite Modifica del Registro UserInitMprLogonScript [Evento Registro di Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Pre-volo di Telemetria e Baseline deve essere superato.
Razionale: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente le TTP identificate e mirano a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrativa dell’Attacco & Comandi:
Un attaccante che ha già acquisito un punto d’appoggio iniziale sulla macchina della vittima desidera mantenere la persistenza tra i logon degli utenti. Scelgono ilvalore UserInitMprLogonScriptperché viene eseguito prima che la shell dell’utente inizi, fornendo un’esecuzione precoce del codice. L’attaccante posiziona un binario nascostompextms.exe(una versione rinominata dirundll32.exe) nella cartella AppData dell’utente e crea una DLL dannosaendpointdlp.dllche esegue il dump delle credenziali. Impostando il valore del registro su"%APPDATA%mpextms.exe" "%APPDATA%endpointdlp.dll", l’attaccante garantisce che ad ogni accesso la DLL venga caricata lateralmente tramite ilrundll32.exeproxy firmato, soddisfacendo i T1218.007 and T1027.013 evitando le liste bianche binarie ingenue. -
Script per il Test di Regressione:
# ------------------------------------------------- # Step 1: Rilascia i binari dannosi (simulato) $payloadDir = "$env:APPDATAMalicious" New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null # Simulato 'mpextms.exe' – usando rundll32.exe rinominato per realismo $src = "$env:SystemRootSystem32rundll32.exe" $dstExe = Join-Path $payloadDir "mpextms.exe" Copy-Item -Path $src -Destination $dstExe -Force # DLL dannosa simulata (file vuoto per scopi di test) $dllPath = Join-Path $payloadDir "endpointdlp.dll" New-Item -ItemType File -Path $dllPath -Force | Out-Null # Step 2: Crea la voce di persistenza nel registro $regPath = 'HKCU:Environment' $regName = 'UserInitMprLogonScript' $regValue = "`"$dstExe`" `"$dllPath`"" Set-ItemProperty -Path $regPath -Name $regName -Value $regValue -Force Write-Host "Voce di persistenza creata: $regName = $regValue" # ------------------------------------------------- -
Comandi di Pulizia:
# Rimuovi la voce di persistenza del registro Remove-ItemProperty -Path 'HKCU:Environment' -Name 'UserInitMprLogonScript' -ErrorAction SilentlyContinue # Elimina i file rilasciati $payloadDir = "$env:APPDATAMalicious" Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue Write-Host "Pulizia completata."