Script di Logon: Boot Persistence - Logon Script (T1037.001)

I criminali informatici sfruttano gli script di logon Windows per garantirsi una persistenza silenziosa sui sistemi compromessi. Questa tecnica manipola la chiave di registro HKCU\Environment\UserInitMprLogonScript per eseguire automaticamente codice malevolo ogni volta che un utente effettua l'accesso al sistema.

La versatilità di questo meccanismo lo rende particolarmente insidioso. Gli attaccanti possono operare sia con privilegi utente standard che amministrativi, adattandosi al livello di accesso disponibile. Una volta configurato, il payload si riattiva ad ogni login, sopravvivendo a riavvii e cambi di password.

Questa tecnica si posiziona in due fasi critiche della kill chain: TA0003 (Persistence) per mantenere l'accesso nel tempo e TA0004 (Privilege Escalation) quando utilizzata per eseguire codice con privilegi elevati. L'adozione risulta limitata ma significativa, con 2 gruppi APT documentati e 4 famiglie di malware che la implementano attivamente.

Per testare questa tecnica in laboratorio, inizia con l'approccio più diretto. Apri una PowerShell con privilegi utente standard ed esegui:

Set-ItemProperty -Path "HKCU:\Environment" -Name "UserInitMprLogonScript" -Value "C:\temp\payload.bat"

Il batch file può contenere qualsiasi comando, dal semplice beacon verso un C2 all'esecuzione di un dropper più complesso. Un esempio minimo per validare la persistenza:

echo powershell.exe -NoProfile -WindowStyle Hidden -Command "Add-Content C:\temp\persistence.log (Get-Date)" > C:\temp\payload.bat

Per simulare il comportamento di APT28, crea una catena di esecuzione multi-stadio. Il loader iniziale resta minimale nel registro mentre scarica il payload reale da una risorsa remota. Questo approccio riduce l'impronta forense sulla macchina target.

Su sistemi con policy restrittive, valuta percorsi alternativi per gli script. Le cartelle NETLOGON e SYSVOL sui domain controller offrono location legittime spesso escluse dai controlli antivirus. La sintassi per puntare a share di rete:

Set-ItemProperty -Path "HKCU:\Environment" -Name "UserInitMprLogonScript" -Value "\domain.local\NETLOGON\login.bat"

Il Cobalt Group ha dimostrato come concatenare questa tecnica con altre forme di persistenza. Dopo aver stabilito lo script di logon, utilizzano task schedulati o servizi Windows per garantire ridondanza. Questo approccio "defense in depth" complica notevolmente l'eradicazione completa del malware.

Per massimizzare le chance di successo, verifica sempre i permessi sulla chiave di registro target prima di procedere. Il comando Get-Acl "HKCU:\Environment" | fl mostra rapidamente se l'utente corrente può modificare i valori. In ambienti hardened, potresti dover ricorrere a tecniche di privilege escalation prima di implementare questa persistenza.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo