Winlogon Helper DLL: Boot/Logon Autostart Execution: Winlogon Helper DLL (T1547.004)
I componenti helper di Winlogon rappresentano un meccanismo Windows che gestisce le operazioni critiche durante l'accesso utente e il logout dal sistema. Questa funzionalità permette di eseguire automaticamente DLL e programmi quando un utente effettua l'autenticazione, sfruttando chiavi di registro specifiche in HKLM e HKCU sotto il percorso Windows NT\CurrentVersion\Winlogon.
La tecnica si colloca nelle tattiche TA0003 (Persistence) e TA0004 (Privilege Escalation), operando durante le fasi di Installation e Actions on Objectives della kill chain. Gli attaccanti modificano le chiavi Notify, Userinit e Shell per garantirsi l'esecuzione automatica del codice malevolo ad ogni accesso utente.
I dati indicano che 3 gruppi APT hanno utilizzato attivamente questa tecnica, insieme a 10 famiglie di malware documentate. L'abuso di questi meccanismi garantisce persistenza duratura poiché il codice viene eseguito con i privilegi dell'utente che effettua il login, potenzialmente anche con privilegi elevati se l'accesso avviene con account amministrativi.
Per replicare questa tecnica in laboratorio, inizia verificando le configurazioni correnti delle chiavi Winlogon. Su Windows, apri una shell amministrativa e controlla lo stato attuale:
reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell
Il valore predefinito per Shell è explorer.exe mentre Userinit punta a C:\Windows\system32\userinit.exe. Per implementare la persistenza, puoi modificare questi valori aggiungendo il tuo payload.
Una tecnica comune prevede l'append del malware al valore esistente. Ad esempio, per la chiave Shell: reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "explorer.exe, C:\temp\malware.exe" /f
La virgola separa i processi da eseguire in sequenza. Questo approccio mantiene la funzionalità normale del sistema mentre esegue silenziosamente il payload.
Per Userinit, la modifica richiede maggiore attenzione poiché interromperla può impedire il login: reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /t REG_SZ /d "C:\Windows\system32\userinit.exe,C:\temp\backdoor.exe" /f
Le DLL Notify offrono un metodo più sofisticato. Queste devono esportare specifiche funzioni callback che Winlogon invoca durante eventi di sistema. Crea una DLL che esporta WLEventLogon, WLEventLogoff e altre routine, poi registrala: reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\MyNotify" /v DLLName /t REG_SZ /d "C:\Windows\System32\mynotify.dll" /f
Testa sempre queste modifiche in macchine virtuali isolate. Un errore nelle configurazioni Winlogon può rendere il sistema non avviabile.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo