sabato 15 settembre 2007

Un semplice utilizzo di NSLOOKUP

Abbiamo visto in precedenza come e' strutturata una rete botnet fast-flux con tipologia single-flux e double-flux.
La risoluzione dell'indirizzo IP del sito da visualizzare avviene attraverso una serie di interrogazioni dei server DNS.
DNS (domain name system) è un servizio utilizzato per la risoluzione di nomi di host in indirizzi IP e viceversa. Il servizio è realizzato tramite un database distribuito, costituito dai server DNS che vengono interrogati in successione per trovare ad esempio la corrispondenza tra il nome che digitiamo sul browser e l'IP (indirizzo numerico) del sito.
Attraverso un semplice comando, presente in tutti i sistemi operativi (Linux, Unix, MAC OS X, Windows) chiamato Nslookup, possiamo interrogare i server DNS e visualizzare tutti i vari passaggi descritti precedentemente nello schema single flux, compresa la rotazione degli IP.
Per fare questo proviamo ad interrogare un sito di quelli presenti nella rete botnet fast-flux responsabile della diffusione del worm storm.

ATTENZIONE: se digitate questa url in un browser si apre una pagina che contiene malware ed anche javascripts pericolosi che possono scaricare sul vostro pc malware; evitate quindi di farlo a meno di non avere preso le dovute precauzioni.

Digitiamo della finestra command prompt di XP il seguente testo.(in rosso il testo digitato, in blu la risposta ricevuta da nslookup)


D:\>nslookup

Default Server: resolver1.opendns.com
Address: 208.67.222.222

il default server e' il server dns che stiamo usando in questo momento e varia ad esempio a seconda di come abbiamo impostato il setup della connessione di rete. In questo caso vediamo che l'interrogazione di default e' fatta su un server OPENDNS.
Dato che vogliamo vedere il percorso completo come appare nelle immagini del post su single-flux impostiamo di default il ROOT server.

> root

Default Server: A.ROOT-SERVERS.NET
Address: 198.41.0.4


adesso il server di default che stiamo usando e' l' A.ROOT SERVER (vedi wikipedia per ulteriori dettagli ).
A.ROOT SERVER e' uno 13 root nameserver, i cui nomi hanno tutti la forma lettera.root-servers e che sono le basi della risoluzione dei nomi attraverso DNS.

A questo punto possiamo interrogare questo server per vedere cosa ci restitusce come risposta al nome del sito che vogliamo risolvere.

> bnably.com
Server: A.ROOT-SERVERS.NET
Address: 198.41.0.4
Name: bnably.com

Served by:
- E.GTLD-SERVERS.NET
192.12.94.30
com
- F.GTLD-SERVERS.NET
192.35.51.30
com
- G.GTLD-SERVERS.NET
192.42.93.30
com
- H.GTLD-SERVERS.NET
192.54.112.30
com
- I.GTLD-SERVERS.NET
192.43.172.30
com
- J.GTLD-SERVERS.NET
192.48.79.30
com
- K.GTLD-SERVERS.NET
192.52.178.30
com
- L.GTLD-SERVERS.NET
192.41.162.30
com
- M.GTLD-SERVERS.NET
com
- A.GTLD-SERVERS.NET
192.5.6.30
com

A ROOT SERVER ci ha restituito una lunga lista di nomi di servers che a loro volta conoscono gli indirizzi di altri server che sanno come risolvere bnably.com
Questi server, come si vede, si occupano di domini .com e allora impostiamo uno di questi come default con il seguente comando server seguito da un IP di quelli in elenco (es. 192.41.162.30 )

> server 192.41.162.30
192.in-addr.arpa nameserver = figwort.ARIN.NET
192.in-addr.arpa nameserver = chia.ARIN.NET
192.in-addr.arpa nameserver = dill.ARIN.NET
192.in-addr.arpa nameserver = BASIL.ARIN.NET
192.in-addr.arpa nameserver = henna.ARIN.NET
192.in-addr.arpa nameserver = indigo.ARIN.NET
192.in-addr.arpa nameserver = epazote.ARIN.NET
Default Server: [192.41.162.30]
Address: 192.41.162.30

adesso il server che usiamo e' quello all ip 192.41.162.30 e possiamo procede ad interrogarlo con il nome de sito.
Vediamo cosa conosce al riguardo del sito bnably.com.
Digitiamolo nuovamente.

> bnably.com
Server: [192.41.162.30]
Address: 192.41.162.30

Name: bnably.com
Served by:
- ns10.bnably.com
77.197.44.76
bnably.com
- ns11.bnably.com
209.30.158.167
bnably.com
- ns12.bnably.com
72.40.18.87
bnably.com
- ns13.bnably.com
74.71.79.115
bnably.com
- ns2.bnably.com
75.39.129.64
bnably.com
- ns3.bnably.com
121.247.204.148
bnably.com
- ns4.bnably.com
87.206.196.165
bnably.com
- ns5.bnably.com
97.81.53.248
bnably.com
- ns6.bnably.com
74.73.209.16
bnably.com
- ns7.bnably.com
68.47.243.53
bnably.com

La riposta e' un lungo elenco di name servers che ci permetteranno finalmente di risalire all'IP del sito che vogliamo visualizzare.
Impostiamone uno di default per poterlo interrogare

> server 72.40.18.87

Default Server: [72.40.18.87]
Address: 72.40.18.87


e nuovamente digitiamo il nome del sito

> bnably.com
Server: [72.40.18.87]
Address: 72.40.18.87

Name: bnably.com
Address: 76.223.90.20

abbiamo risolto il nome del sito che corrisponde all'IP Address: 76.223.90.20 interrogando uno dei name server della lista.

Ma ora succede una cosa particolare
Proviamo ad interrogarlo ancora un po di volte

> bnably.com
Server: [72.40.18.87]
Address: 72.40.18.87

Name: bnably.com
Address: 75.47.201.158

> bnably.com
Server: [72.40.18.87]
Address: 72.40.18.87

Name: bnably.com
Address: 69.148.48.29

Come vediamo gli IP cambiano in continuazione, ci troviamo di fronte ad una tipologia fast flux
Con quale velocita' cambiano ?
Nslookup ci aiuta a capirlo poiche' puo' visualizzare piu' informazioni
Settiamolo in madalita' DEBUG.

> set debug
ed ora ripetiamo l'interrogazione

> bnably.com
Server: [72.40.18.87]
Address: 72.40.18.87

------------
Got answer:
HEADER:
opcode = QUERY, id = 12, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 1, authority records = 0, additional = 0

QUESTIONS:
bnably.com, type = A, class = IN
ANSWERS:
-> bnably.com
internet address = 204.210.227.247
ttl = 0 (0 secs)

Notate la voce ttl (time to live) che e' posta uguale a zero.
Questo significa che il tempo di vita dello specifico IP associato al nome nella cache DNS e' zero secondi e quindi cambia subito ad ogni nuova interrogazione.

Se fossimo in presenza di una tipologia di rete double fast flux anche gli IP dei server NS 1 ...NS 2 ecc cambierebbero , non cosi velocemente ma comunque dopo qualche ora,

Digitiamo exit per uscire da NSLOOKUP

Abbiamo visto come e' possibile semplicemente seguire il percorso di una ricerca dns, utilizzando un comando presente di default in XP.
Fortunatamente quando usiamo il browser per conneterci ad un sito tutti questi passaggi sono automatici ed eseguiti in maniera trasparente dal notro pc senza che noi ce ne accorgiamo.

Edgar

1 commento:

febigene ha detto...

stiamo studiando eh?