Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Winlogon.exe è il processo Windows che orchestra l'intero ciclo di logon, logoff e la famosa sequenza Ctrl-Alt-Delete (Secure Attention Sequence). Proprio perché gira con privilegi elevati e si avvia prima della sessione utente, rappresenta un bersaglio ideale per chi vuole impiantare codice persistente. La tecnica T1547.004 sfrutta tre sottochiavi specifiche del registro di Windows — Winlogon\Shell, Winlogon\Userinit e Winlogon\Notify — per iniettare DLL o eseguibili che verranno caricati automaticamente a ogni accesso.
La tecnica ricade in due tattiche distinte: Persistence (TA0003), perché il codice malevolo sopravvive ai riavvii del sistema, e Privilege Escalation (TA0004), dato che Winlogon opera nel contesto SYSTEM e le modifiche alla chiave HKLM richiedono già privilegi amministrativi, consolidando di fatto un accesso elevato. Le sottochiavi bersaglio risiedono sia in HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\ sia nella corrispondente HKCU, il che significa che un attaccante può operare sia a livello macchina sia a livello utente.
L'ecosistema di minacce documentato è significativo: 3 gruppi APT, 10 famiglie di malware e 2 mitigazioni formali la rendono una tecnica trasversale, usata tanto da gruppi di spionaggio statale quanto da operatori ransomware.
La simulazione di questa tecnica in laboratorio è relativamente semplice e non richiede tool esotici — bastano i comandi nativi di Windows e un minimo di attenzione alle chiavi corrette. L'obiettivo è dimostrare al cliente che una singola modifica al registro può garantire persistenza silenziosa a ogni login.
Scenario 1 — Abuso della sottochiave Shell (livello utente)
Il valore predefinito di Shell è explorer.exe. Per aggiungere un payload mantenendo la shell legittima funzionante, si concatena il percorso del malware con una virgola, esattamente come documentato per Gazer e Revenge RAT:
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /d "explorer.exe, C:\Temp\payload.exe" /f
Questo comando non rompe il desktop dell'utente — explorer parte normalmente — ma al prossimo logon verrà lanciato anche il payload. La variante HKCU non richiede privilegi elevati, il che la rende perfetta per simulare uno scenario di post-exploitation con utente standard.
Scenario 2 — Abuso di Userinit (livello macchina)
Il valore predefinito di Userinit punta a C:\Windows\System32\userinit.exe. Per replicare la tecnica usata da Wizard Spider e Remexi:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /d "C:\Windows\System32\userinit.exe, C:\Temp\implant.exe" /f
Questo richiede un prompt amministrativo. Al successivo logon di qualsiasi utente, userinit.exe eseguirà prima la propria inizializzazione e poi il binario aggiunto.
Scenario 3 — Notify DLL (tecnica legacy ma ancora funzionale)
La sottochiave Notify carica DLL di notifica. Si può registrare una DLL personalizzata creando una sottochiave dedicata:
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\TestPkg" /v DLLName /d "C:\Temp\notify_test.dll" /f
Per validare che il meccanismo funzioni senza eseguire codice malevolo, si può utilizzare una DLL compilata con un semplice DllMain che scrive un file di log. Questo approccio replica quanto documentato per Dipsind.
Autoruns (a pagamento come parte della suite Sysinternals, ma distribuito gratuitamente da Microsoft) è lo strumento ideale per verificare se la persistenza è stata scritta correttamente: lanciando autorunsc.exe -m -c -nobanner si ottiene un output CSV filtrato che include le entry Winlogon, utile anche per confrontare snapshot pre e post-attacco.
Per il framework di simulazione, Atomic Red Team (open source) offre test pronti per T1547.004 che automatizzano l'intero ciclo di scrittura e pulizia delle chiavi.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo