Dirottamento Associazioni File: Change Default File Association (T1546.001)
La tecnica T1546.001 sfrutta un meccanismo legittimo di Windows: l'associazione tra estensione di file e programma predefinito che la gestisce. Modificando le chiavi di registro sotto HKEY_CLASSES_ROOT, un attaccante può fare in modo che l'apertura di un file apparentemente innocuo — un .txt, un .hwp, un .msc — inneschi invece l'esecuzione di codice arbitrario.
Rientra nelle tattiche TA0003 (Persistence) e TA0004 (Privilege Escalation), perché il codice iniettato viene eseguito nel contesto dell'utente che apre il file e, se il file viene aperto da un account privilegiato o attraverso meccanismi elevati come UAC, può portare a un'escalation. Nella kill chain si colloca dopo l'accesso iniziale, come metodo di mantenimento silenzioso della presenza: nessun task pianificato, nessun servizio, nessuna chiave Run — solo una modifica mirata a un handler già esistente.
L'impatto operativo è significativo perché la persistenza è attivata da azioni legittime dell'utente, riducendo la superficie di rilevazione comportamentale. I dati MITRE documentano l'uso da parte di 1 gruppo APT (Kimsuky, con focus sui documenti HWP diffusi in Corea) e 1 tool (SILENTTRINITY, che dirotta .msc per bypassare UAC). Sebbene la casistica pubblica sia contenuta, la tecnica è particolarmente insidiosa in ambienti dove estensioni verticali (CAD, contabilità, formati regionali) offrono handler poco monitorati.
In un esercizio red team, l'obiettivo è ottenere persistenza senza toccare le classiche chiavi Run o creare task pianificati. Il percorso più diretto passa dalla modifica di un handler in HKEY_CLASSES_ROOT o, per non richiedere privilegi amministrativi, dal suo equivalente utente in HKCU\Software\Classes.
Su Windows si parte identificando l'associazione corrente con l'utility integrata assoc:
assoc .txt
che restituisce ad esempio txtfile. Il comando ftype txtfile mostra la riga eseguita all'apertura. Per dirottare l'handler in contesto utente, senza UAC, si scrive sotto HKCU:
reg add "HKCU\Software\Classes\txtfile\shell\open\command" /ve /d "powershell.exe -w hidden -c IEX(Get-Content 'C:\Users\Public\payload.txt' -Raw); notepad.exe %1" /f
Il trucco è concatenare il payload con l'apertura del programma legittimo (notepad.exe %1) per non insospettire l'utente. La priorità di HKCU\Software\Classes rispetto a HKCR consente di operare senza privilegi elevati.
Per scenari che richiedono escalation, il target tipico sono le estensioni .msc, .msi o formati verticali (es. .hwp in ambienti coreani, come documentato per Kimsuky). Il tool SILENTTRINITY (open source, disponibile su GitHub) implementa un modulo di UAC bypass basato su image hijack di .msc: sfrutta il fatto che mmc.exe viene invocato con auto-elevation e che l'handler modificato viene rispettato durante l'esecuzione. Il modulo è accessibile via il C2 di SILENTTRINITY dopo aver ottenuto una sessione utente.
Alternative da lab: Empire (open source, mantenuto da BC-Security) include moduli di persistenza analoghi; Metasploit Framework (open source con edizione Pro a pagamento) permette di scriptare la modifica registry via reg_persistence e Meterpreter.
Per validare il dirottamento, in una VM di test aprire un file .txt con doppio click e verificare in Sysmon (open source Microsoft) l'evento EventID 1 con parent explorer.exe e child powershell.exe. Un'ulteriore variante prevede di puntare l'handler a un LNK o a un .hta remoto tramite mshta.exe, tecnica utile in scenari dove EDR blocca l'esecuzione diretta di PowerShell da explorer. Documentare sempre in report l'impatto: la persistenza sopravvive al reboot e si attiva solo su interazione utente, riducendo il rumore su sandbox automatiche.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo