Il sistema dei nomi di dominio (Domain Name System) è un sistema utilizzato per la risoluzione di nomi dei nodi della rete in indirizzi IP e viceversa (ossia traduce il nome del dominio in indirizzo IP). Dopo aver identificato tutti i dominio associati ad un bersaglio (con il Footprinting) viene effettuata la fase di interrogazione dei DNS per identificare possibili configurazioni errate o con un basso livello di sicurezza. Esistono diversi strumenti per questa tecnica, e le informazioni più rilevanti che possiamo ottenere sono:
La fase di ricognizione dei DNS è considerata a tutti gli effetti un Footprinting attivo, ed obbligatorio quando si vuole mappare la rete di un azienda o organizzazione.
Nslookup è uno strumento presente in tutti i sistemi operativi che utilizzano il protocollo TCP/IP; esso consente di effettuare delle query ad un indirizzo IP o dominio per ottenere la risoluzione dello stesso. Per svolgere una interrogazione veloce basta digitare
nslookup sito.it
e si avrà il seguente output Il server specificato è quello utilizzato dal nostro sistema per la query, tramite la porta 53. È possibile confermare i dati ricevuti modificando il server, in questo modo
nslookup
server IP
sito.it
I risutati sono stati confermati, e siamo certi che il dominio richiesto abbia quegli indirizzi IP.
Possiamo anche interrogare il database in altri modi, tra i quali:
C’è la possibiltà di creare anche uno script automatico per effettuare molteplici test senza dover digitare ogni volta il comando. I passi da effettuare sono:
Creare un file chiamato AutoM8 (io ho utilizzato nano, anche vi va bene);
Copiare e incollare questo codice
#!/bin/sh
for HOSTNAME in cat Domini.txt
do
echo “Getting name servers for [$HOSTNAME]”
nslookup -type=ns $HOSTNAME 8.8.8.8
done
Creare, nello stesso percorso, un file chiamato Domini.txt in cui inserirete la lista (uno per riga) degli indirizzi da controllare;
Nel terminale digitate ./AutoM8 e stamperà l’interrogazione di tutti i domini.
Domain Information Groper è un comando per sistemi Unix utilizzato per l’interrogazione DNS. È un’ottima alternativa a nslookup e, per certe vie, decisamente più completo. Come prima, una query base è
root@kali:~$ dig amazon.com
; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> amazon.com
;; global options: +cmd
;; Got answer:
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;amazon.com. IN A
;; ANSWER SECTION:
amazon.com. 8 IN A 54.239.25.200
amazon.com. 8 IN A 54.239.17.7
amazon.com. 8 IN A 54.239.17.6
amazon.com. 8 IN A 54.239.25.208
amazon.com. 8 IN A 54.239.25.192
amazon.com. 8 IN A 54.239.26.128
;; Query time: 56 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Mon May 02 19:27:35 CEST 2016
;; MSG SIZE rcvd: 135
Anche in questo caso, il server utilizzato per l’interrogazione è lo stesso di nslookup, per cambiarlo bisogna andare in /etc/resolve.conf.
Un’altro comando utile è
dig +qr sito.it any
Esso ci fornisce tutte le informazioni possibili sul dominio interrogato insieme ai diversi tipi di DNS
Un comando molto utile (anche se ormai obsoleto, in quanto pochi DNS lo permettono ancora) è lo Zone Tranfer. Se attivo, esso ci permette di avere tutte le informazioni possibili di un DNS, come sottodomini o configurazioni errate dello stesso. È anche possibile farlo in automatico da questo sito. Digitando
dig @DNS.it sito.it axfr
scopriamo se un dominio lo ha attivo o meno. Se fosse attivo, la risposta sarebbe la seguente
; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> axfr @ns1.publinord.it siti.it
; (1 server found)
;; global options: +cmd
siti.it. 86400 IN SOA ns1.publinord.it. domain.publinord.it. 2014010201 86400 3600 604800 86400
siti.it. 86400 IN NS ns1.publinord.it.
siti.it. 86400 IN NS ns2.publinord.it.
siti.it. 86400 IN MX 10 mail.siti.it.
siti.it. 86400 IN A 46.37.14.7
siti.it. 86400 IN A 46.37.14.18
siti.it. 86400 IN A 46.37.14.27
mail.siti.it. 86400 IN A 46.37.14.38
www.siti.it. 86400 IN CNAME siti.it.
siti.it. 86400 IN SOA ns1.publinord.it. domain.publinord.it. 2014010201 86400 3600 604800 86400
;; Query time: 56 msec
;; SERVER: 46.37.14.14#53(46.37.14.14)
;; WHEN: Mon May 02 19:38:40 CEST 2016
;; XFR size: 10 records (messages 1, bytes 253)
Altri comandi utili sono:
Fierce è utilizzato solitamente per il forzare la scoperta di sottodomini e DNS (è un DNS bruteforcer). È composto da molte opzioni, ma nel nostro caso basta il comando principale
fierce -dns sito.it
Se la Zone Tranfer risulta attiva, il software ci mostra l’output con tutti i sottodomini rilevati, altrimenti con il bruteforce cerca di scoprire quali sono attivi. Il file di default per gli host è abbastanza completo, ma io sono solito usare questo file (con più di 50000 mila host).
fierce -dns sito.it -wordlist alexaTop1mAXFRcommonSubdomains.fuzz.txt
In questo modo abbiamo la possibilità di mappare i sottodomini dell’azienda target.
Oltre che i software introdotti nell’articolo è possibile utilizzare:
Questa fase è effettuata in contemporanea a quella del Footprinting, per chi vuole approfondire o capire meglio l’argomento, consiglio questo e quest’altro video (due conferenze di qualche anno fa).