tags: reconnaissance nslookup dns passive SOA_Records DNS_Transfer
Nslookup è uno strumento molto utile nel trovare l’indirizzo IP di un determinato dominio, il suo uso è semplicissimo e si può utilizzare da riga di comando digitando prima i seguenti parametri:
Trovare l’indirizzo IP non autorevole
nslookup
> set type=aQuesto parametro ci permetterà di cercare l’indirizzo IP corrispondente, dopo aver settato questo parametro possiamo mettere il dominio come nel seguente esempio:
nslookup
> set type=a
> certifiedhacker.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: certifiedhacker.com
Address: 162.241.216.11In questo caso l’indirizzo IP del dominio certifiedhacker è 162.241.216.11, ma abbiamo ottenuto una risposta non autorevole il che significa che il server non è quello ufficiale, ma un server che ha interagito con il server ufficale o che ha memorizzato nella cache i dati, un altro indizio che ci suggerisce questo è che alla voce Server e Address ci appare il nostro indirizzo locale il che indica che siamo stati noi a risolvere il DNS.
Ottenere l’indirizzo IP effettivo del dominio (Autorevole)
Per ottenere una risposta autorevole e quindi diretta dal server ufficiale possiamo utilizzare il tipo NS che serve proprio a scovare i server DNS autorevoli ai quali poi porre un’interrogazione di tipo A ed ottenere l’indirizzo IP autorevole del dominio in questione in questo caso certifiedhacker.com:
nslookup
> set type=ns
> certifiedhacker.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
certifiedhacker.com nameserver = ns2.bluehost.com.
certifiedhacker.com nameserver = ns1.bluehost.com.
Authoritative answers can be found from:
ns1.bluehost.com internet address = 162.159.24.80
ns2.bluehost.com internet address = 162.159.25.175I risultati ns1.bluehost.com e ns2.bluehost.com sono effettivamente i nomi e gli indirizzi IP dei domini DNS autorevoli. Ora possiamo impostare uno di questi due server in nslookup in modo tale che faccia le richieste proprio a questi server autorevoli in modo da ottenere l’indirizzo IP effettivo del dominio certifiedhacker.com, lo possiamo fare nel seguente modo:
> server ns1.bluehost.com #Qua impostiamo il server trovato prima
Default server: ns1.bluehost.com
Address: 162.159.24.80#53
> set type=A
> certifiedhacker.com
Server: ns1.bluehost.com #Questo output conferma l'impostazione del server
Address: 162.159.24.80#53
Name: certifiedhacker.com
Address: 162.241.216.11 #Questo è l'IP effettivo del dominioQuesto l’abbiamo potuto fare perchè avevamo già a disposizione il dominio originale.
Trovare il dominio originale da un sottodominio
Se invece avessimo avuto un sottodomio avremmo dovuto prima trovare il domino originale tramite il parametro CNAME che sta per canonical name, lo possiamo fare nel seguente modo:
> set type=cname
> certifiedhacker.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
*** Can't find certifiedhacker.com: No answer
Authoritative answers can be found from:
certifiedhacker.com
origin = ns1.bluehost.com
mail addr = dnsadmin.box5331.bluehost.com
serial = 2024102200
refresh = 86400
retry = 7200
expire = 3600000
minimum = 300
Nota importante sull ouput
- _CNAME configurato per `certifiedhacker.com`_.
- **`Authoritative answers can be found from:`**: **Questa sezione in questo output è _fuorviante_ e _non c'entra con i record CNAME_.** In questo caso, `nslookup` ti sta mostrando le informazioni del record **SOA (Start of Authority)** per la zona `certifiedhacker.com`. Il record SOA è _sempre_ presente per ogni zona DNS e contiene informazioni amministrative sulla zona (server DNS primario, email dell'amministratore, numeri di seriale, refresh, retry, expire, minimum TTL). Quindi, `nslookup` sta dicendo: "Anche se non ho trovato record CNAME per `certifiedhacker.com`, posso dirti che le _informazioni autorevoli sulla zona DNS `certifiedhacker.com` (inclusi i record SOA)_ possono essere trovate dai server DNS autorevoli che sono..." (e _dovrebbe_ listare `ns1.bluehost.com` e `ns2.bluehost.com` qui, ma _non lo fa_ in questo output specifico - forse un piccolo bug o comportamento inatteso di `nslookup`).Tramite questo comando possiamo trovare la radice del domino cioè il dominio originale, infatti il parametro CNAME serve proprio a trovare la radice del dominio infatti in questo caso ci risponde Can't find certifiedhacker.com: No answer proprio perchè non trova un dominio più originale di quello perchè è già la radice del dominio (), infatti se proviamo a farlo ad un suo sottodominio come www.certifiedhacker.com ci apparirà certifiedhacker.com come dominio originale o radice del dominio:
set type=cname
www.certifiedhacker.com
Server: 10.64.0.1
Address: 10.64.0.1#53
Non-authoritative answer:
www.certifiedhacker.com canonical name = certifiedhacker.com.
Authoritative answers can be found from:Come si può notare ora ci appare www.certifiedhacker.com canonical name = certifiedhacker.com. il che ci indica che il nome del dominio è certifiedhacker.com, quindi questo parametro si può utilizzare per trovare il dominio radice a partire da un sottodominio.
> set type=a
> ns1.bluehost.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: ns1.bluehost.com
Address: 162.159.24.80Quindi l’indirizzo IP originale è 162.159.24.80.
SOA (Start of Authority)
Possiamo usare questo servizio per trovare il server DNS primario per poi cercare di capire se il server permette il DNS transfer, per fare ciò possiamo eseguire i seguenti comandi:
certifiedhacker.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
certifiedhacker.com
origin = ns1.bluehost.com
mail addr = dnsadmin.box5331.bluehost.com
serial = 2024110500
refresh = 86400
retry = 7200
expire = 3600000
minimum = 300
Authoritative answers can be found from:Per vedere cosa indicano le informazioni ricavate visita la pagina DIG, le più utili sono origin=ns1.bluehost.com che indica il nome del server DNS primario e mail addr = dnsadmin.box5331.bluehost.com che indica l’indirizzo email dell’amministratore.
DNS Transfer
Ora che abbiamo trovato il sever primario tramite il servizio soa possiamo vedere se il servizio Zone Transfer è abilitato oppure no e lo possiamo fare attraverso il seguenti comando (Attenzione su Linux questo comando non è supportato quindi per effettuare questa operazione è meglio utilizzare DIG):
Il comando è:
ls -d [Nome server]