Calcolo DNS: DNS Calculation (T1568.003)

Il DNS Calculation è una tecnica di command and control in cui l'attaccante non usa direttamente l'indirizzo IP restituito da una risposta DNS, ma esegue operazioni matematiche sugli ottetti per derivare la porta (e talvolta l'IP) del canale C2. È una sottotecnica di Dynamic Resolution collocata nella tattica TA0011 (Command and Control), dove l'avversario cerca di comunicare con i sistemi compromessi imitando traffico legittimo per eludere il rilevamento.

L'idea è semplice ma efficace: invece di codificare una porta fissa nel malware, l'impianto interroga un dominio controllato, ottiene una risposta A record e applica una formula ai primi ottetti. Una implementazione documentata prende i primi tre ottetti dell'IP restituito e li usa per calcolare la porta di destinazione del traffico di controllo.

Questo approccio ha un impatto operativo preciso: consente di bypassare l'egress filtering basato su liste statiche di porte e IP, perché la destinazione effettiva cambia dinamicamente e non compare mai in chiaro nel binario. L'unico gruppo mappato è APT12, che ha usato varianti multiple della tecnica, tra cui moltiplicare i primi due ottetti di un IP e sommare il terzo per ottenere la porta C2.

Nella kill chain, la tecnica si colloca nella fase di comando e controllo, dopo l'accesso iniziale e la persistenza, quando l'impianto deve stabilire un canale stabile e resiliente verso l'infrastruttura dell'attaccante.

Dal punto di vista offensivo, il DNS Calculation è un pattern di C2 che disaccoppia la porta di destinazione dalla configurazione statica dell'impianto. In un esercizio red team lab-safe l'obiettivo è dimostrare come un beacon possa risolvere un dominio controllato, leggere l'A record e derivare la porta con una formula deterministica condivisa tra impianto e server.

La catena tipica è: risoluzione DNS del dominio C2, estrazione degli ottetti dalla risposta, calcolo della porta, connessione outbound alla porta derivata. Replicando la variante attribuita ad APT12, la formula prende i primi due ottetti, li moltiplica e somma il terzo ottetto per ottenere la porta finale — un valore che l'operatore controlla semplicemente cambiando l'IP restituito nella zona DNS.

Per costruire il laboratorio in ambiente isolato servono un resolver o server DNS autoritativo controllato e un ascoltatore sulla porta calcolata. Strumenti utili:

  • dnspython (open source), libreria Python per interrogare e costruire risposte DNS personalizzate.
  • CoreDNS o BIND (open source) per pubblicare una zona autoritativa con A record arbitrari.
  • Cobalt Strike (a pagamento) e Sliver (open source), framework C2 con listener DNS configurabili per prototipare canali dinamici.

Una simulazione della logica lato client, senza divulgare payload weaponizzati, si limita a interrogare il record e stampare la porta:

dig +short A c2.lab.internal

L'output è un IP di test; da lì lo script applica la formula agli ottetti e apre il socket. Su Linux la connessione risultante si verifica con:

ss -tnp state established

Su Windows l'equivalente per osservare la porta effimera e il processo associato è:

Get-NetTCPConnection -State Established | Select LocalPort,RemoteAddress,RemotePort,OwningProcess

Il valore didattico dell'esercizio sta nel mostrare al blue team che il traffico verso una porta "anomala" (spesso sopra 1024) non è casuale ma calcolato, e che il dominio interrogato è l'unico elemento realmente statico. Documenta nel report la finestra temporale tra query DNS e connessione, perché è proprio quella correlazione la superficie di detection più solida. Mantieni tutto in una rete segmentata, senza toccare risolutori pubblici, e distruggi la zona DNS al termine del test.

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.