Dirottamento del Flusso d'Esecuzione: Hijack Execution Flow (T1574)

Hijack Execution Flow raccoglie tutte le tecniche con cui un avversario altera il modo in cui il sistema operativo individua ed esegue programmi o librerie, sostituendo il flusso legittimo con codice proprio. La manipolazione può riguardare l'ordine di ricerca delle DLL, i percorsi di servizi Windows, le variabili d'ambiente Unix come LD_PRELOAD, i file plist di macOS o gli oggetti condivisi caricati da binari fidati.

La tecnica è mappata a tre tattiche complementari: TA0003 Persistence, perché il dirottamento si ripresenta a ogni avvio del programma bersaglio; TA0004 Privilege Escalation, quando il processo abusato gira con privilegi superiori (SYSTEM, root, o via UAC bypass); e TA0005 Defense Evasion, poiché il codice malevolo viene caricato dentro un binario firmato e considerato attendibile.

Nel corpus MITRE risultano otto famiglie malware documentate — da Denis e ShimRat fino a DarkGate, Raspberry Robin, COATHANGER e Nightdoor — e due campagne notevoli, C0017 di APT41 contro sei governi statali USA e la distribuzione di Pikabot di febbraio 2024. Le dieci mitigazioni disponibili coprono l'intero spettro difensivo: dalla firma digitale delle librerie al Safe DLL Search Mode, dall'application control ai controlli ACL su registry e filesystem.

In un esercizio red team la tecnica si presta a molteplici varianti; la scelta dipende dal target e dalla postura difensiva. Su Windows la via più classica resta il DLL Search Order Hijacking: individuato un eseguibile firmato che carica una DLL con nome non qualificato, si piazza una libreria omonima nella directory di lavoro del processo. Per la scoperta, Process Monitor (gratuito, Sysinternals) con filtro su Result: NAME NOT FOUND e Path ends with .dll rivela immediatamente i candidati. Il modulo PowerUp di PowerSploit (open source) automatizza la caccia con Invoke-AllChecks, evidenziando servizi con path non quotati, permessi deboli su binari e opportunità di unquoted service path.

Per il side-loading — variante prediletta da APT41 nella campagna C0017 — si sfrutta un eseguibile firmato Microsoft che carica una DLL da directory scrivibile. Il flusso operativo di Pikabot a febbraio 2024 è didattico: modifica dell'open source grepWinNP3.exe per iniettare la logica malevola nel loader di prima fase, mantenendo la firma originale del wrapper. Strumenti come Koppeling (open source) o Spartacus (open source) generano DLL proxy che inoltrano le chiamate legittime mantenendo la funzionalità del programma vittima.

Su Linux l'approccio più immediato è la variabile LD_PRELOAD, esportabile prima del lancio del processo per anteporre una libreria condivisa alle chiamate standard. La variante persistente scrive in /etc/ld.so.preload, come fa COATHANGER rimpiazzando implementazioni di read(2) con shared object malevoli. Per un test controllato basta compilare gcc -shared -fPIC hook.c -o hook.so -ldl e valutare l'intercettazione delle syscall.

Su macOS l'equivalente è DYLD_INSERT_LIBRARIES, efficace solo contro binari non hardened (privi di hardened runtime o non firmati con library validation). Tool come insert_dylib (open source) automatizzano la patch del load command di un Mach-O.

Per l'UAC bypass tramite hijack — pattern usato da DarkGate che modifica HKCU\Software\Classes\mscfile\shell\open\command per intercettare l'avvio di eventvwr.exe → mmc.exe — la validazione lab si fa con UACMe (open source) che raccoglie oltre 70 tecniche note. ShimRat dimostra invece il side-loading di cryptbase.dll dentro migwiz.exe come vettore di elevazione. Tutte le prove vanno condotte su VM isolate con snapshot pre-esecuzione.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.