DNS spoofing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 5:
==Introduzione==
Gli attacchi di tipo ''[[man in the middle]]'' consistono nel deviare i pacchetti (in una comunicazione tra due host) verso un attaccante, che
La struttura è la seguente: una comunicazione a due dove l'attaccante s’interpone tra i due
[[File:Mansthemiddle.PNG|center|thumb|]]
L'attaccante
[[File:Half&full.jpg|center|thumb|nome]]
==DNS-Query==
Il protocollo DNS su Internet ha il compito di trasformare l'indirizzo 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
[[File:Dnsgerarchy.JPG|center|thumb|]]
La struttura reale di una query è molto più complessa ed articolata ma semplifichiamo il tutto ed utilizziamo solo ciò che serve ai fini dell’attacco.
Riga 47 ⟶ 22:
==DNS Spoofing==
Il DNS spoofing
*Simulazione delle risposte del DNS ▼
*Cache poisoning ▼
*Manomissione fisica del DNS ▼
I messaggi DNS viaggiano sulla rete utilizzando il protocollo UDP. La sicurezza è affidata al protocollo DNS il quale ha dei punti deboli. L’attacco sfrutta alcuni campi delle DNS query:
Riga 59 ⟶ 31:
Una DNS query la possiamo immaginare nel modo seguente:
[[File:Pachets dns.JPG|center|thumb|]]
Tale attacco può esser effettuato in varie modalità:
▲*Simulazione delle risposte del DNS
▲*Cache poisoning
▲*Manomissione fisica del DNS
L'obbiettivo dello spoofing è modificare la corrispondenza tra indirizzo ip e nome del sito contenuti nelle risposte.
===Simulazione delle risposte del DNS (in una rete locale o da locale a remoto)===
Questa tipologia d'attacco deve considerare l’ID della query. L’attaccante intercetta la richiesta di un client, memorizza l'ID contenuto all’interno 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é l'attacco riesca è necessario rispondere con l’ID atteso
#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.
La simulazione delle risposte del DNS è facilmente
===Cache poisoning (in remoto)===
Questa tipologia d'attacco 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 sull’inserimento in cache di record falsi con un TTL molto grande
*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à
[[File:Autopoison.JPG|center|thumb|]]
*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. L’attaccante, in questo caso doveva solo venire a conoscenza di questo ID per essere abbastanza sicuro che i suoi record avvelenati
*Crea una rete con un DNS Server “fasullo” di cui ha pieno controllo
*Chiede al server vittima la traduzione di www.attaccante.net
*Il server vittima è costretto ad inviare una query al DNS fasullo della rete attaccante.net, e questa query contiene anche l’Id
Riga 91 ⟶ 68:
Se il server cambia gli ID nelle DNS query quest’attacco non funziona più, ma l’attaccante 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 l’attaccante deve indovinare un intero in questo range.
Se l’attacco riesce, a questo punto qualsiasi utente che
Riga 101 ⟶ 78:
*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
*Per quanto riguarda il DNS Spoofing tramite ARP cache poisoning è possibile utilizzare una soluzione open source chiamata [http://arpon.sourceforge.net ArpON] "Arp handler inspectiON" che rileva e blocca tutti gli attacchi
*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
===Esempio di DNS spoofing===
Riga 117 ⟶ 94:
topolino vuole collegarsi al sito www.microsoft.com (utilizzeremo la configurazione di default d’ettercap) e pippo vuole eseguire una simulazione delle risposte del DNS su topolino
pippo: ettercap -T -M arp:remote /192.168.1.9/ /192.168.1.1/ -P dns_spoof <ref name="paper mint">[http://www.blackhats.it/en/papers/Paper-mitm.pdf blackhats.it]</ref>
Con questo comando <ref name="paper mint" /> 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.microsoft.com direttamente su www.linux.com
[[File:Etter.JPG|center|thumb|]]
In questo modo vengono reindirizzate tutte le connessioni di microsoft su linux.
[[File:Structs.JPG|center|thumb|none]]
Riga 133 ⟶ 110:
===Tools applicativi===
Esistono vari tools applicativi per svolgere questa tipologia d’attacchi.
#Ettercap
Riga 139 ⟶ 116:
#Zodiac
Ettercap
*SSH 1 e HTTPS password sniffing;
Riga 149 ⟶ 126:
*Supporto di plugin vari che a loro volta presentano funzioni quali DNS spoofing, PPTP sniffing
Dsniff
E’ un pacchetto di tool un po’ obsoleto ma tuttora interessante per le varie possibilità offerte per lo sniffing
Zodiac
Zodiac è un programma che analizza il protocollo DNS. Permette di osservare il traffico su rete,
#vedere come funziona il protocollo DNS
#fare dello spoofing senza dover scrivere delle routine di modifica o filtri per pacchetti
Le sue
*
*
*Interfaccia testuale con comandi interattivi e finestre multiple
*
*
*il sistema che filtra
*Possibilità di visualizzare la versione del DNS name server utilizzando richieste di tipo BIND
*DNS spoofing, rispondendo alle query DNS su rete LAN prima del Name Server remoto (race condition)
*DNS soofing con jizz, sfruttando le debolezze in vecchie versioni di BIND.
*DNS ID spoofing, sfruttando le debolezze del protocollo DNS.
| |||