Dirottamento Thread: Thread Execution Hijacking (T1055.003)

Il Thread Execution Hijacking è una tecnica di process injection che consente a un attaccante di eseguire codice arbitrario all'interno dello spazio di indirizzamento di un processo legittimo già in esecuzione, dirottandone un thread esistente. A differenza del Process Hollowing, che crea un nuovo processo in stato sospeso, questa variante prende di mira un processo vivo, riducendo ulteriormente le anomalie visibili in fase di creazione.

La sequenza operativa canonica sfrutta le API native di Windows: si ottiene un handle al thread bersaglio con OpenThread, lo si sospende via SuspendThread, si alloca memoria nel processo target con VirtualAllocEx, si scrive il payload con WriteProcessMemory, si modifica il registro EIP/RIP con SetThreadContext e infine si ripristina l'esecuzione con ResumeThread.

MITRE ATT&CK classifica la tecnica sotto due tattiche: TA0004 (Privilege Escalation), perché consente di ereditare il contesto di sicurezza del processo dirottato, e TA0005 (Defense Evasion), poiché il codice malevolo viene mascherato all'interno di un binario firmato e legittimo. L'impatto operativo è significativo: 4 famiglie malware documentate (Trojan.Karagany, Gazer, Waterbear, Pikabot) impiegano questa tecnica, spesso per iniettare shellcode direttamente nei processi delle soluzioni di sicurezza, neutralizzandone la telemetria dall'interno del loro stesso address space.

In un contesto di red team autorizzato, il Thread Execution Hijacking si presta a esercizi mirati contro EDR e soluzioni AV per validarne la resilienza. La catena classica in C/C++ prevede l'enumerazione dei thread del processo target tramite CreateToolhelp32Snapshot con flag TH32CS_SNAPTHREAD, seguita dalla selezione di un thread candidato e dall'apertura con OpenThread richiedendo i diritti THREAD_ALL_ACCESS.

Uno degli strumenti più utilizzati in laboratorio è Process Hacker (open source), utile per osservare in tempo reale lo stato dei thread durante l'iniezione e verificare che la modifica del contesto sia avvenuta. Per generare payload da iniettare, msfvenom della suite Metasploit Framework (open source) permette di produrre shellcode position-independent con comandi del tipo msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST= LPORT= -f raw.

Un framework didattico molto adottato è Donut (open source) di TheWover, che converte assembly .NET, DLL o EXE in shellcode iniettabile, utile quando si vuole caricare tooling C# senza toccare il disco. Per il testing di tecniche di injection in ambiente controllato, Pinjectra (open source) implementa oltre venti varianti di process injection in modalità libreria, inclusa la Thread Execution Hijacking, ed è particolarmente utile per confrontare la superficie di detection di diverse implementazioni.

La sequenza operativa tipica è la seguente:

  • Individuazione di un processo target longevo e con privilegi sufficienti (spesso explorer.exe, svchost.exe o processi utente firmati);
  • Enumerazione dei thread e selezione di uno in stato Waiting;
  • Sospensione con SuspendThread per congelare il contesto;
  • Allocazione di memoria RWX (o RW+RX in due fasi per evadere controlli su pagine RWX) con VirtualAllocEx;
  • Scrittura del shellcode con WriteProcessMemory;
  • Recupero del contesto con GetThreadContext, modifica del registro istruzioni e riscrittura con SetThreadContext;
  • Ripresa dell'esecuzione con ResumeThread.

Per evitare pagine RWX facilmente sospette, gli operatori più maturi allocano memoria come PAGE_READWRITE, scrivono il payload, quindi convertono la protezione a PAGE_EXECUTE_READ con VirtualProtectEx. Un altro accorgimento è evitare i processi critici del sistema per non generare crash rilevabili: un thread mal gestito in lsass.exe provoca un bugcheck immediato. In ambiente ESXi o Linux la tecnica non si applica direttamente; l'equivalente più vicino è l'uso di ptrace con PTRACE_ATTACH e PTRACE_SETREGS, verificabile con injector (open source) di kubo.

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.