Process Hollowing: Process Injection – Process Hollowing (T1055.012)

Il Process Hollowing è una delle tecniche di code injection più eleganti e diffuse nel panorama offensivo moderno. Il principio è semplice nella sua concezione: un avversario crea un processo legittimo in stato sospeso, svuota la sua memoria originale e la sostituisce con codice malevolo, per poi riprenderne l'esecuzione. Il risultato è un processo che, agli occhi del sistema operativo e degli strumenti di monitoraggio, appare del tutto legittimo — ma esegue payload arbitrario.

La tecnica si colloca in due tattiche distinte della kill chain. Nella fase di Defense Evasion (TA0005), il suo scopo primario è mascherare l'esecuzione malevola sotto l'identità di un processo fidato come svchost.exe, explorer.exe o notepad.exe. In parallelo, è classificata anche sotto Privilege Escalation (TA0004), poiché il contesto di sicurezza del processo hollowed può essere sfruttato strategicamente, anche se il processo figlio eredita i privilegi del processo padre.

I numeri confermano la sua popolarità: 32 famiglie malware documentate la impiegano attivamente, 7 gruppi APT la includono nei propri arsenali operativi e una mitigazione specifica è stata formalizzata. La catena di API call che la caratterizza — CreateProcess con flag CREATE_SUSPENDED, poi NtUnmapViewOfSection, VirtualAllocEx, WriteProcessMemory, SetThreadContext e infine ResumeThread — rappresenta una firma comportamentale riconoscibile, ma sufficientemente comune in operazioni legittime da rendere il tuning della detection una sfida reale per ogni SOC.


Il process hollowing è un fondamentale del red teaming. Replicarlo in laboratorio richiede familiarità con le Windows API e con i framework di post-exploitation che lo implementano nativamente.

Il punto di partenza più immediato è Cobalt Strike (a pagamento). Il suo modulo spawnto permette di definire quale eseguibile verrà utilizzato come contenitore hollowed. Dal Beacon, la configurazione del Malleable C2 profile permette di personalizzare il binario target:

set spawnto_x64 "%windir%\sysnative\dllhost.exe"; set spawnto_x86 "%windir%\syswow64\dllhost.exe";

L'operatore può poi lanciare un payload con spawn o execute-assembly, e il framework si occupa internamente della sequenza CreateProcess → NtUnmapViewOfSection → WriteProcessMemory → ResumeThread.

Per chi preferisce un approccio open source, Metasploit Framework (open source) offre il modulo post/windows/manage/migrate, che supporta la migrazione in un processo sospeso. Il comando dalla sessione Meterpreter è diretto:

meterpreter > run post/windows/manage/migrate SPAWN=true NAME=svchost.exe

Un'alternativa didattica e granulare è scrivere il proprio loader in C/C++ utilizzando le API native. La sequenza operativa è:

  1. Chiamare CreateProcessW sull'eseguibile target (es. svchost.exe) con il flag CREATE_SUSPENDED (valore 0x4)
  2. Ottenere il PEB del processo sospeso tramite NtQueryInformationProcess per leggere l'image base
  3. Svuotare l'immagine originale con NtUnmapViewOfSection
  4. Allocare nuova memoria con VirtualAllocEx e scrivervi il payload con WriteProcessMemory
  5. Aggiornare l'entry point nel thread context con SetThreadContext
  6. Richiamare ResumeThread per avviare l'esecuzione

Per il testing, Process Hacker (open source) è indispensabile per verificare visivamente che il processo hollowed presenti discrepanze tra l'immagine su disco e quella in memoria. Una volta eseguito il hollowing, aprendo le proprietà del processo in Process Hacker noterete che il campo Image file name punta all'eseguibile legittimo, ma la memoria non corrisponde.

Anche pe-sieve (open source), tool di hasherezade, è fondamentale in fase di validazione: esegue uno scan in-memory dei processi e rileva le discrepanze tra il PE caricato e l'immagine originale su disco. Il comando di base:

pe-sieve.exe /pid <PID_TARGET>

Questo restituisce un report con le pagine di memoria modificate, ideale per confermare che il hollowing è andato a buon fine e per capire cosa vedrebbe un analista.


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

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