Persistenza Obbligatoria del Profilo Utente
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Gli attori delle minacce possono stabilire la persistenza sui terminali Windows abusando dei Profili Utente Obbligatori. Creando o sostituendo un file NTUSER.MAN all’interno della directory del profilo utente, le modifiche al registro dannose vengono caricate nell’alveare del registro durante l’accesso senza affidarsi alle API standard del registro. Questa tecnica consente l’esecuzione furtiva di comandi o binari ogni volta che l’utente accede.
Indagine
Il rapporto descrive una tecnica proof-of-concept che manipola l’alveare del registro di Windows per creare un profilo utente obbligatorio. Mostra come strumenti come Swarmer e HiveSwarming possono convertire i dati del registro esportati nel formato .MAN, permettendo agli attaccanti di aggirare il monitoraggio EDR concentrato sull’attività dell’API del registro.
Mitigazione
Le organizzazioni dovrebbero monitorare la creazione o la modifica dei file NTUSER.MAN file all’interno delle directory del profilo utente, in particolare dove i profili obbligatori non sono normalmente utilizzati. Una telemetria del file system robusta combinata con la correlazione degli eventi del Servizio Profili Utente di Windows può aiutare a rilevare questa tecnica di persistenza.
Risposta
Se viene creato inaspettatamente o sospettosamente un file NTUSER.MAN file o si osserva il caricamento sospetto di Offreg.dll, gli investigatori dovrebbero esaminare il profilo utente associato per modifiche non autorizzate al registro. Correlare l’ID Evento Sysmon 11 per la creazione di file con gli ID Evento del Servizio Profili Utente di Windows 5 e 67 per verificare che sia stato caricato un profilo obbligatorio.
Flusso di Attacco
Rilevamenti
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (tramite registry_event)
Possibile Tentativo di Esecuzione Utilità Swarmer (tramite cmdline)
Possibile Tentativo di Esecuzione Utilità Swarmer (tramite powershell)
Creazione di File NTUSER.MAN nella Directory del Profilo Utente [Evento File di Windows]
Esecuzione della Simulazione
Requisito preliminare: Il Controllo Preliminare di Telemetria e Baseline deve essere superato.
Motivo: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (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 prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
Narrazione & Comandi di Attacco: L’avversario intende mantenere la persistenza tra gli accessi utente. Invece di modificare il registro corrente, che potrebbe essere monitorato da EDR, l’attaccante crea un “Profilo Obbligatorio” inserendo un
file NTUSER.MANfile nella directory del profilo utente. Durante il successivo accesso, Windows utilizza questo file per costruire l’alveare del registro dell’utente. Questo metodo è furtivo perché la configurazione del registro “maliziosa” è tecnicamente parte del processo di inizializzazione del profilo piuttosto che un evento standard di modifica del registro. La simulazione creerà unfile NTUSER.MANfile fittizio in una sottocartella del profilo utente per attivare laendswith: 'NTUSER.MAN'andcontains: 'Users'logica. -
Script di Test di Regressione:
# Simulazione della creazione di NTUSER.MAN per il test di persistenza $targetDir = Join-Path $env:USERPROFILE "AppDataLocalTempSimulatedProfile" # Crea directory se non esiste if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force } # Crea il file NTUSER.MAN per attivare la regola di rilevamento $filePath = Join-Path $targetDir "NTUSER.MAN" Set-Content -Path $filePath -Value "Contenuto Profilo Obbligatorio Simulato" Write-Host "[+] Simulazione completata. File creato in: $filePath" -ForegroundColor Green -
Comandi di Pulizia:
# Pulizia dei dati simulati $targetDir = Join-Path $env:USERPROFILE "AppDataLocalTempSimulatedProfile" if (Test-Path $targetDir) { Remove-Item -Path $targetDir -Recurse -Force Write-Host "[+] Pulizia riuscita. Artifacts rimossi." -ForegroundColor Yellow } else { Write-Host "[-] Pulizia fallita: Directory non trovata." -ForegroundColor Red