Chiavi di Registro Run e Cartella Startup: Registry Run Keys / Startup Folder (T1547.001)
La tecnica T1547.001 rappresenta uno dei meccanismi di persistenza più longevi e sfruttati nell'ecosistema Windows. L'idea è tanto semplice quanto efficace: inserire un riferimento a un eseguibile o script in una delle chiavi di Registro dedicate all'avvio automatico, oppure depositare un collegamento nella cartella Startup dell'utente o del sistema. Al successivo logon, il codice viene eseguito nel contesto dell'utente che accede, ereditandone i privilegi.
Sul piano tattico, questa tecnica copre due obiettivi ATT&CK: TA0003 (Persistence), perché garantisce la sopravvivenza dell'impianto attraverso reboot e cambi di credenziali, e TA0004 (Privilege Escalation), quando la chiave scelta risiede in HKLM e viene eseguita in contesti privilegiati o quando un utente amministrativo effettua il logon.
I numeri raccontano la centralità del vettore: 55 gruppi APT documentati, 194 famiglie di malware e 3 campagne tracciate ne fanno uno dei sottotecniche più prolifiche dell'intero framework. Le chiavi coinvolte spaziano dai classici Run e RunOnce fino a percorsi meno battuti come RunServicesOnce, Policies\Explorer\Run, il valore Load sotto Windows NT\CurrentVersion\Windows e il BootExecute di Session Manager, quest'ultimo abusato da impianti UEFI come LoJax. La longevità della tecnica riflette la difficoltà di distinguere una modifica legittima (software installato dall'utente) da una malevola in ambienti eterogenei.
In un esercizio red team la persistenza via Run keys è quasi obbligatoria come tecnica baseline, sia per la semplicità sia perché consente di validare la maturità del SOC nel rilevare autorun anomali. La superficie di attacco è ampia e va esplorata in modo metodico.
Il percorso più diretto sfrutta l'utility nativa reg.exe. Da un contesto utente non privilegiato si può scrivere sotto HKCU senza necessità di elevazione:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v Updater /t REG_SZ /d "C:\Users\Public\payload.exe" /f
Per target che eseguono il logon come amministratore o per persistenza system-wide, la variante HKLM richiede token elevato:
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v SecurityHealth /t REG_SZ /d "C:\ProgramData\svc.exe" /f
L'alternativa filesystem prevede il drop di un file .lnk nella cartella di avvio dell'utente (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup) o in quella globale (%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp). PowerShell offre una sintassi pulita per generare shortcut programmaticamente tramite l'oggetto COM WScript.Shell, tecnica adottata da gruppi come Windshift e KONNI.
Sul fronte framework, PowerSploit (open source) espone il modulo New-UserPersistenceOption con parametro -Registry che automatizza l'inserimento sotto HKCU...\Run. Empire (open source), nella sua release community mantenuta da BC-Security, replica la funzionalità con il modulo powershell/persistence/userland/registry. Koadic (open source), scritto in Python/JScript, offre plugin nativi per la stessa finalità. SILENTTRINITY (open source) può depositare LNK nella Startup folder attraverso i suoi moduli post-exploitation.
Per scenari più raffinati vale la pena esplorare vettori meno battuti: il valore Load sotto HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows, usato storicamente da Cardinal RAT; la chiave RunOnceEx\0001\Depend che consente il caricamento di DLL arbitrarie; il BootExecute di Session Manager, dove LoJax ha modificato il valore autocheck autochk * in autocheck autoche * per eseguire payload prima dell'avvio dei servizi utente.
Durante il test conviene anche masquerading dei nomi valore: ZIRCONIUM ha usato Dropbox Update Setup, Mustang Panda AdobelmdyU, RTM Windows Update. Emulare questi pattern permette di stressare le regole di detection basate su denylist di nomi noti e valutare l'efficacia della correlazione con reputation del binario referenziato. Documentare il timestamp esatto della modifica facilita il debrief con il blue team.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo