Dirottamento Ordine di Ricerca: Path Interception by Search Order Hijacking (T1574.008)

Il Path Interception by Search Order Hijacking è una tecnica che sfrutta il modo in cui Windows risolve i percorsi degli eseguibili quando un programma invoca un altro binario senza specificarne il path assoluto. Quando un'applicazione richiama, ad esempio, net.exe senza qualificarlo completamente, il sistema operativo consulta una sequenza precisa di directory partendo tipicamente dalla cartella del processo chiamante prima di raggiungere C:\Windows\System32.

Un attaccante che identifica un processo vulnerabile può depositare un binario malevolo con il nome dell'utility legittima nella directory dell'applicazione chiamante, ottenendo l'esecuzione del proprio codice al posto di quello di sistema. Il meccanismo si amplifica sfruttando la variabile PATHEXT, che stabilisce l'ordine delle estensioni: un file net.com verrà eseguito prima di net.exe, permettendo di intercettare invocazioni anche quando il binario originale esiste già.

La tecnica copre tre tattiche del framework: TA0003 (Persistence) perché il binario piantato viene rieseguito a ogni invocazione del processo padre, TA0004 (Privilege Escalation) quando il processo chiamante gira con privilegi elevati (tipicamente servizi SYSTEM), e TA0005 (Defense Evasion) perché l'esecuzione avviene attraverso una catena apparentemente legittima. L'impatto è significativo su installazioni software di terze parti che non seguono le best practice di path qualification, aprendo vettori di persistenza silenziosi e difficili da individuare senza baseline dei percorsi di esecuzione.

L'attività di red team parte dall'enumerazione dei processi vulnerabili: applicazioni installate in directory scrivibili dall'utente che invocano utility di sistema senza path assoluto. Il modulo PowerUp incluso in PowerSploit (open source, repository PowerShellMafia archiviato ma ancora disponibile su GitHub) automatizza gran parte del lavoro. Dopo aver importato il modulo, la funzione Invoke-AllChecks esegue una batteria completa di verifiche su servizi, permessi di directory e configurazioni sospette.

Import-Module .\PowerUp.ps1

Invoke-AllChecks

Per un check mirato al search order hijacking, Get-ModifiableServiceFile e Get-UnquotedService identificano servizi che potrebbero essere sfruttati anche in combinazione con T1574.009. Empire (open source, fork BC-Security mantenuto attivamente) integra gli stessi moduli PowerUp sotto la categoria privesc/powerup/, utili quando si opera con un agent già stabilito sull'host.

Una volta identificato un processo target — poniamo un'applicazione installata in *C:\Program Files\VendorX* che invoca net user tramite cmd.exe — la catena operativa prevede di:

  • Verificare i permessi NTFS sulla directory dell'applicazione con icacls "C:\Program Files\VendorX"
  • Compilare un payload rinominato in net.com (l'estensione .com ha precedenza su .exe nell'ordine PATHEXT)
  • Depositare il binario nella directory bersaglio
  • Attendere o forzare l'invocazione del processo padre

Un proof-of-concept minimale in C può essere compilato con MinGW producendo un eseguibile che lancia una reverse shell tramite cmd.exe /c e poi rilancia il vero net.exe di sistema per non insospettire l'utente. La chiave è mantenere la funzionalità legittima come wrapper, tecnica nota come proxy execution.

Su ambienti di laboratorio, Process Monitor (gratuito, suite Sysinternals) è indispensabile per identificare a runtime quali processi eseguono lookup su path non qualificati: filtrare per Operation is CreateFile e Result is NAME NOT FOUND nella directory del processo rivela immediatamente le opportunità di hijacking. Altro strumento utile è AccessChk (gratuito, Sysinternals) per verificare i permessi di scrittura su directory di installazione tramite accesschk.exe -wus "Everyone" "C:\Program Files".

In contesti macOS ed ESXi la tecnica non si applica nella forma classica: il focus resta esclusivamente su Windows, dove la logica di risoluzione dei percorsi e PATHEXT rendono l'attacco praticabile.

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.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.