Proxy Interno per il C2: Internal Proxy (T1090.001)

Quando un avversario ha già compromesso più sistemi all'interno di una rete, il problema successivo è far parlare quei sistemi con l'infrastruttura di comando e controllo senza generare decine di connessioni in uscita visibili ai difensori. La tecnica Internal Proxy risolve esattamente questo: un host compromesso con accesso a Internet diventa il punto di snodo attraverso cui tutto il traffico C2 degli altri nodi interni viene incanalato verso l'esterno.

La tecnica ricade nella tattica Command and Control (TA0011), la fase della kill chain in cui l'attaccante stabilisce e mantiene il canale di comunicazione con i sistemi sotto il proprio controllo. L'impatto operativo è significativo: ridurre i punti di uscita dalla rete significa ridurre la superficie di detection, mentre l'uso di protocolli interni comuni — SMB, RPC, named pipe — permette al traffico malevolo di mimetizzarsi nel rumore di fondo legittimo.

I numeri del catalogo parlano chiaro: 9 gruppi APT, 20 software, 3 campagne documentate e 1 mitigazione ufficiale. Si tratta di una tecnica trasversale, adottata tanto da attori state-sponsored cinesi e russi quanto da gruppi a movente finanziario, segno che il proxy interno è diventato un pattern architetturale standard nelle operazioni offensive moderne.


Il proxy interno è una delle tecniche più utili da padroneggiare in un red team engagement, perché trasforma una singola compromissione con accesso Internet nell'hub di comunicazione per l'intera operazione. L'obiettivo in laboratorio è dimostrare che, una volta ottenuto un foothold, è possibile raggiungere segmenti di rete isolati senza che ogni host debba parlare direttamente con il C2.

Il punto di partenza più immediato su Windows è il comando nativo usato da Volt Typhoon nelle operazioni reali. Con il solo netsh si può creare un port proxy che inoltra il traffico da un'interfaccia interna verso un altro host compromesso o verso il C2:

netsh interface portproxy add v4tov4 listenport=8443 listenaddress=0.0.0.0 connectport=443 connectaddress=192.168.1.50

Questo comando configura il sistema per ascoltare sulla porta 8443 e inoltrare tutto il traffico verso la porta 443 di un host interno. Per verificare le regole attive:

netsh interface portproxy show all

Per scenari più complessi, Cobalt Strike (a pagamento) offre nativamente la funzionalità di comunicazione peer-to-peer tra beacon tramite SMB named pipe. In un engagement si configura un SMB listener sul team server e si distribuiscono beacon "link" sugli host senza accesso diretto a Internet, concatenandoli al beacon con uscita. Questa è esattamente l'architettura usata durante la SolarWinds Compromise (C0024), dove APT29 configurò Cobalt Strike per usare network pipe su SMB.

Su Linux, la catena classica prevede l'uso di socat (open source) per creare relay bidirezionali:

socat TCP-LISTEN:4444,fork TCP:10.10.10.20:443

In alternativa, Chisel (open source) è uno strumento specificamente progettato per il tunneling TCP su HTTP, particolarmente utile quando le regole firewall interne consentono solo traffico web. Il server Chisel viene avviato sull'host con accesso Internet, mentre il client gira sugli host isolati, creando un tunnel inverso.

Per simulare il pattern peer-to-peer visto in malware come Duqu e Stuxnet, Sliver (open source) e Mythic (open source) offrono entrambi profili C2 peer-to-peer nativi. Con Sliver si può generare un implant configurato per comunicare via named pipe con un altro implant che ha accesso esterno, replicando fedelmente il modello a catena documentato nelle campagne reali.

Infine, per replicare lo scenario di Lazarus Group — che usò un router compromesso come ponte tra segmento corporate e segmento ristretto — si può usare Ligolo-ng (open source), che crea tunnel di livello 3 attraverso un agente intermedio, simulando esattamente il pivoting attraverso un dispositivo di rete.


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

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