Indietro

ⓘ DNS spoofing




                                     

ⓘ DNS spoofing

Gli attacchi di tipo man in the middle consistono nel deviare i pacchetti in una comunicazione tra due host verso un attaccante, che finge di essere il mittente o destinatario vero. La struttura è la seguente: una comunicazione a due dove lattaccante sinterpone tra i due host vittime A e B.

Lattaccante invia comunque i pacchetti che riceve alla giusta destinazione. In questo modo i due host attaccati non si accorgono che la comunicazione è stata alterata. In base alle abilità dellattaccante di alterare la connessione lattacco prende il nome di man in the middle half duplex in una comunicazione bidirezionale si monitorizza solo un senso della connessione o man in the middle full duplex In telecomunicazioni ed informatica il full-duplex è una modalità di invio e ricezione di informazioni digitali o analogiche, con funzione completamente bidirezionale.

Lo scopo di questi attacchi può essere quello di rubare delle informazioni personali oppure monitorare e alterare la comunicazione tra due utenti.

                                     

1. DNS-Query

Il protocollo DNS su Internet ha il compito di trasformare lindirizzo simbolico ad esempio www.prova.org in indirizzo numerico o IP ad esempio 202.159.XXX.XXX. I server DNS sono organizzati secondo una struttura ad albero gerarchica, in cui ogni nodo corrisponde ad un dominio. I server DNS scambiano record DNS mediante tre tipi di messaggi: query, response e update. Supponiamo ad esempio di voler contattare tramite un browser il sito www.prova.org. Questoperazione consiste in una serie di DNS query. Il server DNS dopo aver trovato lindirizzo ip tramite varie chiamate ad altri server DNS lo comunica alla macchina richiedente con un DNS response che deve contenere lIP giusto.

La struttura reale di una query è molto più complessa ed articolata ma semplifichiamo il tutto ed utilizziamo solo ciò che serve ai fini dellattacco.

                                     

2. DNS Spoofing

Il DNS spoofing si svolge nel modo seguente: la vittima fa una DNS query, lattaccante la cattura e manda alla vittima una risposta fasulla, diversa da quella che sarebbe stata fornita dal DNS.

I messaggi DNS viaggiano sulla rete utilizzando il protocollo UDP. La sicurezza è affidata al protocollo DNS il quale ha dei punti deboli. Lattacco sfrutta alcuni campi delle DNS query:

  • lID evidenziato in grigio nella figura è un campo di 16 bit che individua la transazione. Viene generato dallhost che ha originato una DNS query; le risposte devono avere il medesimo id altrimenti lhost non le accetterà.
  • Il campo QUESTION sempre in grigio contiene il nome di dominio richiesto e il tipo di record che devono essere inviati come risposta.

Una DNS query la possiamo immaginare nel modo seguente:

Tale attacco può esser effettuato in varie modalità:

  • Cache poisoning
  • Manomissione fisica del DNS
  • Simulazione delle risposte del DNS

Lobiettivo dello spoofing è modificare la corrispondenza tra indirizzo ip e nome del sito contenuti nelle risposte.

                                     

2.1. DNS Spoofing Simulazione delle risposte del DNS in una rete locale o da locale a remoto

Questa tipologia dattacco deve considerare lID della query. Lattaccante intercetta la richiesta di un client, memorizza lID contenuto allinterno del messaggio, e crea una falsa risposta con il giusto ID copiato precedentemente. Alla fine rispedisce il tutto al client che ha fatto la query. Affinché lattacco riesca è necessario rispondere con lID atteso dal client prima del vero server. In questo modo il client crede che lhost attaccante sia il server. Questo perché il client accetta la prima risposta che gli viene inviata con id atteso race condition. Infine è necessario anche intercettare le eventuali reverse query quelle che traducono indirizzo ip a nome simbolico, perché se parte una nuova richiesta e non la sintercetta, la vittima può accorgersi che al nome simbolico non corrisponde lIP ricevuto dal falso DNS.

A questo punto il client invierà tutti i pacchetti destinati a quel nome simbolico allattaccante, il quale può:

  • svolgere la funzione di proxy e creare una connessione con il client e una con il server e rimandare ogni richiesta di servizio proveniente dal client al server e ogni risposta dal server al client
  • non contattare il server reale e simulare i servizi offerti dal server.

Nel caso in cui non si possa intercettare una DNS query si può provare un attacco di tipo blind, ovvero un attacco alla cieca.

La simulazione delle risposte del DNS è facilmente individuabile. Infatti, utilizzando un server DNS diverso si può notare la differenza delle risposte. Inoltre lIP dellattaccante è presente nellintestazione dei pacchetti IP che contengono i pacchetti UDP con le risposte DNS contraffatte.



                                     

2.2. DNS Spoofing Cache poisoning in remoto

Questa tipologia dattacco consiste nel creare record DNS fasulli ed inserirli nella cache del name server. Un name server non può contenere tutte le corrispondenze ip/nome simbolico, pertanto utilizza una cache con parti di tali corrispondenze con TTL Time to live, ovvero un periodo di vita dei dati nella cache. La tecnica del cache poisoning si basa sullinserimento in cache di record falsi con un TTL molto grande. Ci sono vari modi per eseguire un cache poisoning e sono i seguenti:

  • Il DNS server si" avvelena” da solo

Un host fa una richiesta di un nome di dominio ad esempio www.prova.org al suo server DNS, se tale indirizzo non è in memoria, parte una query al DNS del dominio corrispondente. Se questo server è stato avvelenato risponderà con una mappatura sbagliata e di conseguenza si avvelenerà anche il primo server DNS avvelenamento temporaneo poiché i dati nella cache hanno un time to live.

  • DNS Id spoofing

Il DNS server inserisce solo i record che provengono da risposte a query con ID atteso. I vecchi DNS Server usavano un unico ID che veniva incrementato per le richieste successive. Lattaccante, in questo caso doveva solo venire a conoscenza di questo ID per essere abbastanza sicuro che i suoi record avvelenati venissero inseriti. Un modo di procedere per lattaccante è il seguente:

  • Lattaccante chiede la traduzione di un record che vuole avvelenare e spera di poter inviare lui stesso la risposta con lId corretto prima del DNS autoritario race condition.
  • Crea una rete con un DNS Server" fasullo” di cui ha pieno controllo denominiamolo ad esempio attaccante.net
  • Il server vittima è costretto ad inviare una query al DNS fasullo della rete attaccante.net, e questa query contiene anche lId
  • Chiede al server vittima la traduzione di www.attaccante.net

Se il server cambia gli ID nelle DNS query questattacco non funziona più, ma lattaccante può fare tutte le prove che riesce ad eseguire prima che arrivi la risposta dal DNS autorevole. I possibili diversi identificativi sono 65636 2^16, ovvero lattaccante deve indovinare un intero in questo range.

Se lattacco riesce, a questo punto qualsiasi utente che usufruisce di quel determinato server DNS ed esegue query per siti attendibili riceve come risposte corrispondenze ip/nome simbolico sbagliate dovute allavvelenamento della cache. Questa tipologia dattacco non è facilmente intercettabile. Si può essere sotto attacco per un lungo periodo senza che ci si accorga facilmente desserlo, tuttavia è quasi impossibile trovare name server vulnerabili a questattacco ormai considerato obsoleto.

                                     

2.3. DNS Spoofing Manomissione fisica del DNS

Questa tipologia dattacco è molto semplice, ma solo se si ha accesso a un name server e possibilità di modificare direttamente i record cambiando manualmente gli indirizzi ip di interesse per lattaccante.

                                     

2.4. DNS Spoofing Contromisure

  • Per quanto riguarda il DNS Spoofing tramite ARP cache poisoning è possibile utilizzare una soluzione open source chiamata ArpON "ARP handler inspection". ArpON è un demone portabile che rende il protocollo ARP sicuro contro attacchi Man in The Middle MITM attraverso tecniche ARP Spoofing, ARP Cache Poisoning, ARP Poison Routing APR.
  • Per quanto riguarda la simulazione delle risposte del DNS la prima contromisura è sicuramente accorgersi di essere sotto attacco e ciò è possibile individuando eventuali risposte multiple IDS.
  • Una seconda opzione è il DNSSEC ovvero Domain Name System Security Extensions, un protocollo che controlla e valida le richieste.
  • Altra soluzione è utilizzare un server che genera il campo id dei pacchetti in maniera casuale e allo stesso modo sceglie un numero di porta di comunicazione.
  • In merito al poison cache, è ormai impossibile trovare server vulnerabili a questo tipo dattacco considerato obsoleto.


                                     

2.5. DNS Spoofing Esempio di DNS spoofing

Lesempio utilizza la tecnica di simulazione del DNS su una rete locale con il programma ettercap, usando come configurazione quella desempio contenuta nel file etter.dns per vedere tale configurazione basta aprire il file etter.dns del programma stesso. Per eseguire lesempio è necessario un personal computer con sistema operativo linux ed ettercap installato.

Sia:

host1 = pippo con ip 192.168.1.9 lattaccante

host2 = topolino con ip 192.168.1.5 la vittima

topolino vuole collegarsi al sito www.icann.org utilizzeremo la configurazione di default dettercap e pippo vuole eseguire una simulazione delle risposte del DNS su topolino; per far ciò esegue il seguente comando:

pippo: ettercap -T -M arp:remote /192.168.1.9/ /192.168.1.1/ -P dns_spoof

Con questo comando digitato da console, pippo computer host 1 192.168.1.9 si è finto gateway 192.168.1.1 e ha reindirizzato le richieste di topolino host 2 192.168.1.5 indirizzate a www.icann.org direttamente su www.example.com; ovviamente per far funzionare il tutto deve configurare il reindirizzamento nel seguente modo cosa già fatta come esempio allinterno del file pippo: nano /usr/share/ettercap/etter.dns

In questo modo vengono reindirizzate tutte le connessioni di icann su example.com. si vuole reindirizzare un generico sito su un altro indirizzo basta aprire il file etter.dns con nano o con qualsiasi altro editor di testo, ed analizzare la prima parte del file che si presenta nel seguente modo:

In questa prima parte del file spiega come devono essere strutturate le query, perciò se si vogliono reindirizzare più siti basta aggiungere al file più strutture identiche a quelle dellesempio, dove al posto di icann inseriamo il sito che si vuole reindirizzare e al posto dellindirizzo ip di example.com utilizziamo lindirizzo ip di dove si vuol reindirizzare la query. Va ricordato che bisogna anche cambiare la reverse query PTR.

                                     

2.6. DNS Spoofing Tools applicativi

Esistono vari tools applicativi per svolgere questa tipologia dattacchi. Tra i più conosciuti vi sono:

  • Ettercap
  • Zodiac
  • Dsniff

Ettercap

È uno sniffer evoluto, sviluppato da due programmatori italiani, che permette di sniffare tutto il traffico presente in rete anche in presenza di switch. Inoltre offre una serie di funzioni che lo rendono un software molto valido. Tra queste funzioni abbiamo:

  • Supporto di plugin vari che a loro volta presentano funzioni quali DNS spoofing, PPTP sniffing
  • Possibilità di chiudere una connessione o inserire caratteri estranei;
  • SSH 1 e HTTPS password sniffing;
  • Password collection per una moltitudine di protocolli;
  • OS fingerprinting per il riconoscimento dei sistemi operativi sugli Host trovati in rete;

Dsniff

È un pacchetto di tool un po obsoleto ma tuttora interessante per le varie possibilità offerte per lo sniffing. Nel pacchetto sono inclusi: dsniff uno sniffer di password, arpspoof un tool per ARP poisoning, dnsspoof un tool per il DNS spoofing, msgsnarf tool che cattura e visualizza i messaggi tra clients IM, mailsnarf tool dedito a violare la privacy altrui, infatti cattura e visualizza i messaggi email, tcpkill tool che termina le connessioni tcp nella rete locale, tcpnice applicazione che obbliga le altre connessioni a ridurre il consumo di banda, per favorire le proprie connessioni ed infine webspy software che cattura e visualizza in real time la navigazione web della vittima.

Zodiac

Zodiac è un programma che analizza il protocollo DNS. Permette di osservare il traffico su rete, analizzando il modo in cui sono assemblati e disassemblati i pacchetti. Il software offre, a chi non è esperto del settore strumenti per:

  • fare dello spoofing senza dover scrivere delle routine di modifica o filtri per pacchetti
  • vedere come funziona il protocollo DNS

Le sue caratteristiche sono le seguenti:

  • DNS spoofing con jizz, sfruttando le debolezze in vecchie versioni di BIND.
  • Interfaccia testuale con comandi interattivi e finestre multiple
  • Possibilità di catturare e decodificare quasi tutti i tipi di pacchetti DNS, inclusi i pacchetti decompressi
  • Possibilità di sniffare qualsiasi tipo di dispositivo configurato
  • La struttura threaded permette più flessibilità quando si aggiungono nuove funzionalità
  • Il codice è pulito, commentato e testato benissimo, ciò ne semplifica lestensione
  • il sistema che filtra i pacchetti DNS permette linstallazione di pseudo filtri DNS selezionabili da una vasta gamma di primitive di costruzione di pacchetti DNS
  • DNS spoofing, rispondendo alle query DNS su rete LAN prima del Name Server remoto race condition
  • DNS ID spoofing, sfruttando le debolezze del protocollo DNS.
  • Possibilità di visualizzare la versione del DNS name server utilizzando richieste di tipo BIND