[GUIDA] DNS Tunnel con Iodine PARTE I

By j0lly, gio 05 gennaio 2012, in category Hacking

dns, hacking, iodine

Per chi non lo sapesse, un tunnel DNS è una maniera per trasportare dati derivanti da altri protocolli attraverso  la porta 53 UDP, cioè poter far passare qualsiasi connessione (ad esempio ssh od http)  attraverso una porta non convenzionale cioè..... un bel proxy tunnel che bypassa qualsiasi restrizione sulla porta 80/433 (un hotspot per intenderci).

Per le note legali, ricordo di leggere il disclamer del blog

Alt, un passo indietro: cosa è un DNS?

Il Domain Name System è il sistema mondiale, attivo dal 1987, per identificare gli IP delle macchine tramite nomi a dominio, molto più leggibili e memorizzabili dalla mente umana.

Ammetto che l'argomento non è nuovo; in realtà già nel 2000 se ne parlava in alcuni ambienti e nel 2005  Dan Kaminsky aveva già realizzato un programma in perl per l'implementazione del protocollo utilizzato per questo tipo di tunnel, il "NSTX" (Name Server Transfer Protocol) chiamato OzymanDNS.

Il programma che utilizzo e del quale parlerò è Iodine, già inserito in molte distro di pentest come BackTrack e soprattutto nella maggioranza dei repository di qualsiasi distro con una community minimamente attiva. Il programma è utilizzabile su praticamente qualsiasi piattaforma (io l'ho provato su Linux, OSX e Windows) e, dai post letti qua e là per il web è ad oggi l'implementazione del protocollo NSTX che riesce a garantire più stabilità e prestazioni rispetto ad altre alternative.

Ma come funziona Il DNS è perché dovremmo parlarne in questo ambito?

Allora, il Domain Name System è il più grande database distribuito del pianeta che serve; la sua funzione è principalmente di associare a ciascun ip fisico un nome di dominio che serva ad identificarlo e memorizzarlo più facilmente per l'essere umano. queste richieste possono essere fatte da programmi o da altri server DNS; questo perché, come detto prima, il sistema è formato in maniera distribuita e gerarchica dove esistono 13 Root server che si occupano dei domini di 1° livello (.org, .com, *.net etc.) e demandano ad altri server la risoluzione dei domini di 2°, 3° livello e così via.

dns

La domanda sorge spontanea: e cosa ce ne facciamo di sta roba?

Semplice, con un pò di settaggi potremo avere il nostro tunnel personale, poco controllato e perfettamente criptato, per navigare in tutta sicurezza in giro per il globo.

Forse sono stato un po ottimista, ma ad oggi (più di 11 anni dalla scoperta) sono poche le compagnie che controllano questo tipo di cose.

La parte più difficile da settare per questo tipo di tunnel è proprio il nameserver e i records del dominio, quindi cominceremo proprio da qua!

Nel mio caso ho acquistato un dominio su Godaddy per 6$ l'anno (assicuratevi che il vostro registrar vi dia il controllo sui record DNS del vostro dominio o andate qua per farveli hostare) ed ho semplicemente aggiunto un subdominio (ns.miodominio.com) con un A record, ed l'ho assegnato come nameserver per un subdominio fittizio (x.miodominio.com); in questo modo, in qualsiasi parte del mondo io sia, se faccio una quary per il subdominio fittizio (x.miodominio.com), i vari server DNS finiranno per chiedere al mio subdominio (ns.miodominio.com) dove esso sia!

screen

screen

ovviamente al posto di yourip ci sarà il vostro ip statico (magari comprato tramite un vps economico).

Ora che avete settato questi parametri non vi resta che attendere, perché per delegare ns.miodominio.com come nameserver per x.miodominio.com esso deve essere "propagato" verso i DNS server superiori e ci potrebbe volere fino ad 1 giorno o 2, anche se in genere il processo viene eseguito in meno di un'ora.

Bene, questa era la parte più complicata e che mi è costata un poco intendere al principio, ma ora che siamo pronti potremo utilizzare vari metodi per sfruttare questo tunnel.

PS

Se state cercando di hostare il vostro fake DNS server su un router o su qualsiasi sistema con IP dinamico, potete saltare la parte del record A e settare come NS record il vostro dominio no-ip o dyndns che punta al benedetto server.

screen

Della parte tecnica rispetto a Iodine ne parlerò nel prossimo articolo perché questo mi sembra già abbastanza denso e lunghetto...

fonti:

hir.net

dnstunnel

slideshare

bottiger

Qualcosa di simile