Iniezione PE: Portable Executable Injection (T1055.002)
La Portable Executable Injection rappresenta una delle tecniche di iniezione di codice più diffuse nell'arsenale offensivo moderno. Consiste nel copiare un intero eseguibile PE — completo di header MZ, sezioni e tabella di import — all'interno dello spazio di indirizzamento di un processo legittimo già in esecuzione, per poi trasferirvi il controllo tramite un nuovo thread.
MITRE ATT&CK cataloga questa tecnica sotto le tattiche TA0004 (Privilege Escalation) e TA0005 (Defense Evasion). La prima si applica quando il processo target gira con privilegi superiori all'attaccante, permettendo un salto di contesto senza sfruttare vulnerabilità del kernel. La seconda è il beneficio più immediato: il codice malevolo eredita l'identità del processo ospite, aggirando controlli di whitelisting, regole firewall basate su path applicativo e prodotti EDR che si affidano alla reputazione del binario padre.
La sequenza classica sfrutta le API native VirtualAllocEx, WriteProcessMemory e CreateRemoteThread, ma la variante PE aggiunge complessità rispetto all'iniezione di shellcode: l'attaccante deve gestire il rebasing degli indirizzi assoluti e risolvere manualmente la Import Address Table, poiché il loader di Windows non interviene.
I dati MITRE censiscono 2 gruppi APT, 10 famiglie malware e 1 campagna documentata (C0057 - 3CX Supply Chain Attack) che impiegano questa tecnica. La sua persistenza nel panorama delle minacce è confermata dalla presenza in loader recenti come Pikabot, DUSTPAN e Havoc, che continuano a preferirla per l'assenza di artefatti su disco.
In un contesto red team autorizzato, la simulazione di PE injection richiede un ambiente lab isolato con Windows 10/11 aggiornato e telemetria Sysmon attiva per validare le detection. La catena minima replica la sequenza documentata: aprire un handle al processo target con OpenProcess richiedendo PROCESS_VM_OPERATION, PROCESS_VM_WRITE e PROCESS_CREATE_THREAD, allocare memoria RWX con VirtualAllocEx, scrivere il PE mappato manualmente con WriteProcessMemory e infine invocare CreateRemoteThread verso l'entry point ricalcolato.
Per la fase di sviluppo si può partire da progetti didattici open source. Donut (open source) genera shellcode position-independent a partire da un PE .NET o nativo, risolvendo il problema del rebasing in modo trasparente: l'operatore fornisce l'eseguibile e ottiene un blob pronto per l'iniezione. sRDI (open source) di Nick Landers implementa la Reflective DLL Injection convertendo una DLL in shellcode auto-caricante, tecnica applicabile anche a PE eseguibili con minime modifiche.
Per l'esecuzione della catena, Cobalt Strike (a pagamento) espone i comandi inject e spawnto che automatizzano scelta del processo sacrificale e trasferimento del beacon. L'alternativa open source è Sliver (open source) di Bishop Fox, che supporta migrazione di processo tramite l'estensione migrate. Havoc (open source), presente nei dati MITRE come S1229, è un C2 moderno che dimostra iniezione in WerFault.exe come processo ospite plausibile.
Per testare varianti più raffinate, Brute Ratel C4 (a pagamento, S1063) applica iniezione in explorer.exe con tecniche di evasion mature, mentre SigFlip (open source), utilizzato nella campagna 3CX, permette di iniettare payload in binari firmati Authenticode senza invalidare la firma — utile per validare detection basate su integrità dei binari.
La scelta del processo target è cruciale per la stealth. Processi come notepad.exe (usato da Rocke per il miner TermsHost.exe), explorer.exe, svchost.exe e WerFault.exe offrono profili di esecuzione compatibili con connessioni di rete o esecuzione prolungata. Un red teamer maturo evita processi critici di sistema per non provocare crash che allertino l'utente.
Per il tracciamento delle API chiamate in fase di sviluppo, API Monitor (gratuito) di Rohitab e Frida (open source) offrono hooking dinamico che rivela ogni interazione con il kernel Win32. In fase di validazione, confrontare i log Sysmon EventCode 8 e EventCode 10 con e senza mitigazioni attive permette di misurare l'efficacia delle regole aziendali.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo