Spoofing degli Argomenti di Processo: Process Argument Spoofing (T1564.010)
Process Argument Spoofing è una tecnica di Defense Evasion (TA0005) con cui un attaccante manipola il Process Environment Block (PEB) di un processo Windows per nascondere gli argomenti reali della riga di comando. Il PEB è la struttura dati che Windows usa per memorizzare informazioni fondamentali sul processo, inclusi appunto i parametri di lancio che sensori EDR, Sysmon e strumenti di logging leggono al momento della creazione del processo.
Lo schema tipico prevede l'avvio di un processo in stato sospeso con argomenti benigni (spesso in combinazione con Process Hollowing o Parent PID Spoofing), la lettura di questi argomenti da parte dei sensori difensivi, e la successiva sovrascrittura della regione di memoria del PEB tramite WriteProcessMemory() prima di riprendere l'esecuzione con parametri malevoli. La variante inversa è altrettanto usata: il processo parte con argomenti malevoli e, subito dopo, la memoria viene ripulita con valori benigni per ingannare analisi post-mortem.
L'impatto operativo è significativo perché rompe l'affidabilità del campo CommandLine in tutti gli eventi di process creation (Security 4688, Sysmon 1). Nel corpus MITRE risultano 2 software che implementano nativamente questa tecnica: Cobalt Strike (S0154), che offre lo spoofing degli argomenti nei processi spawnati per l'esecuzione dei comandi beacon, e SombRAT (S0615), che modifica la propria memoria di processo per nascondere gli argomenti effettivi.
Per un red team, la simulazione di Process Argument Spoofing richiede familiarità con le API native di Windows e con la struttura del PEB. L'approccio più didattico consiste nello scrivere un piccolo loader in C/C++ o C# che segua il pattern classico: CreateProcessW con flag CREATE_SUSPENDED, risoluzione dell'indirizzo del PEB tramite NtQueryInformationProcess con classe ProcessBasicInformation, individuazione della struttura RTL_USER_PROCESS_PARAMETERS e sovrascrittura del campo CommandLine con WriteProcessMemory, seguita da ResumeThread.
Sul fronte tooling, Cobalt Strike (a pagamento) espone la funzionalità direttamente nel Malleable C2 profile tramite il blocco process-inject e il comando Beacon spawnto, permettendo di lanciare processi con argomenti fittizi visibili ai sensori. Per chi opera in laboratori di training, Nighthawk (a pagamento) e Sliver (open source) offrono primitive analoghe di process spawning con controllo sugli argomenti.
Un'alternativa completamente aperta per esercitazioni è ArgFuscator e i proof-of-concept pubblicati nel repository Hells-Gate e PEB-Masquerading su GitHub (open source), che mostrano l'accesso al PEB senza chiamare API user-mode facilmente hookate. Per la fase di sviluppo, x64dbg (open source) e WinDbg (gratuito, Microsoft) sono indispensabili per ispezionare la struttura RTL_USER_PROCESS_PARAMETERS in tempo reale: il comando WinDbg !peb stampa l'intero PEB del processo debuggato e mostra il puntatore ai parametri.
La catena d'attacco realistica in un engagement red team prevede alcuni passaggi tipici. Si genera un beacon Cobalt Strike con un profilo Malleable che imposta spawnto_x64 su un binario legittimo come dllhost.exe con argomenti plausibili. Si lancia il beacon tramite un initial access vector (phishing, exploit), e il beacon a sua volta effettua spawn di comandi post-exploitation (mimikatz, situational awareness) all'interno di processi con argomenti spoofati. Combinando la tecnica con Parent PID Spoofing (T1134.004), il processo malevolo appare come figlio legittimo di explorer.exe con una command line innocua.
Per validare il risultato in laboratorio, si confrontano l'evento Sysmon 1 raccolto al momento del ResumeThread con l'output di Get-Process | Select CommandLine eseguito subito dopo: la discrepanza dimostra il successo dello spoofing. Documentare entrambi i valori nel report finale aiuta il blue team a calibrare le regole di detection.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo