[Docente] Ora, in questa lezione e nelle prossime
lezioni, voglio iniziare a parlare di Man In the Middle Attacks.
Questi sono attacchi che possiamo
lanciare solo se siamo in grado
di intercettare la comunicazione tra due dispositivi.
Da qui il nome, Man In The Middle Attacks.
Quindi una normale comunicazione sarebbe simile a
questa, in cui il dispositivo sta comunicando direttamente con
l'entità con cui desidera comunicare.
In A Man In The
Middle Attack, l'hacker sarebbe in grado di posizionarsi
nel mezzo della
connessione, consentendo loro di intercettare e vedere
tutto ciò che viene trasferito tra i due dispositivi.
Ora, ci sono molti modi per raggiungere questo obiettivo.
Il primo metodo che tratteremo in questo
corso è usare un attacco di spoofing ARP.
Lo spoofing ARP ci consente di reindirizzare il flusso
di pacchetti in modo che, invece di fluire come mostrato
in questo diagramma, scorresse attraverso il mio computer.
Quindi qualsiasi richiesta inviata e qualsiasi risposta ricevuta dal
computer di destinazione,
dovrà fluire attraverso il computer hacker.
Ciò significa che tutti i messaggi, i siti Web, le immagini,
i nomi utente e le password immessi dal target dovranno
fluire attraverso il mio computer.
Questo mi permette di leggere queste
informazioni, modificarle o rilasciarle.
Come puoi
vedere, questo è un attacco molto serio e molto potente.
E il motivo per cui
è possibile è perché ARP non è molto sicuro.
Ora per noi per capire come
funziona, è necessario avere una conoscenza di base di cosa sia l'ARP.
ARP sta per Address Resolution Protocol, ed è
un protocollo molto semplice
che ci consente di collegare gli indirizzi IP agli indirizzi MAC.
Ad esempio, supponiamo di avere una rete qui, abbiamo i
dispositivi A, B, C e D.
Sono tutti collegati alla stessa rete.
E abbiamo il router qui per questa rete.
Possiamo vedere che ogni dispositivo ha un indirizzo IP e un indirizzo MAC.
Supponiamo che il dispositivo A debba
comunicare con il dispositivo C.
Ora supponiamo
anche che il dispositivo A conosca l'IP del dispositivo C.
Ma come sappiamo finora,
affinché questi dispositivi possano comunicare all'interno
della stessa rete,
il dispositivo A deve conoscere l'indirizzo MAC del dispositivo C.
Perché come abbiamo
detto prima, la comunicazione all'interno
della rete viene effettuata utilizzando
l'indirizzo MAC e non utilizzando l'indirizzo IP.
Quindi questa è una situazione perfettamente normale in cui un client
deve conoscere l'indirizzo MAC di un altro
client in modo che possa comunicare con questo client.
Quindi, ciò che fa questo client, usa il protocollo ARP.
Cosa intendo con questo?
Fondamentalmente, invia un messaggio broadcast.
Quindi invia una richiesta ARP a tutti i client sulla rete dicendo chi
ha 10. 0. 2. 6?
Ora tutti questi dispositivi ignoreranno questo pacchetto tranne quello
che ha questo indirizzo IP, che
è 10. 0. 2. 6, che è il dispositivo C.
Quindi tutti i dispositivi non faranno nulla
e l'unico dispositivo che risponderà è il dispositivo
C che invia una risposta ARP.
In questa risposta, il dispositivo C dirà che ne ho 10. 0. 2. 6, il
mio indirizzo MAC è questo indirizzo MAC.
In questo modo il dispositivo A disporrà dell'indirizzo MAC del dispositivo C
e ora sarà in grado di comunicare con
il dispositivo C e fare qualsiasi attività che inizialmente voleva fare.
Quindi tutta questa
comunicazione è facilitata dall'uso del protocollo ARP.
Come ho detto, il protocollo
ARP è un protocollo molto semplice come puoi vedere.
Tutto ciò che ha sono richieste e risposte
e il punto è
che possiamo collegare gli indirizzi IP agli indirizzi MAC
o tradurre gli indirizzi IP in indirizzi MAC.
Quindi un dispositivo può inviare una richiesta chiedendo un indirizzo MAC
e quindi il dispositivo che ha
l'indirizzo MAC risponderebbe con il suo indirizzo MAC.
Quindi ogni computer ha una tabella ARP, che
collega gli indirizzi IP sulla stessa rete ai
loro indirizzi MAC.
Quindi, se vado sulla macchina Kali e faccio ARP-a, puoi vedere
la mia tabella ARP qui e come puoi
vedere sta collegando l'IP del router all'indirizzo MAC del router.
Ora lo stesso se vado
sul computer Windows ed eseguo il mio CMD e faccio ARP-a, vedrai
di nuovo, sta collegando l'IP del router al suo indirizzo MAC.
Quindi questa
macchina, ogni volta che deve inviare qualsiasi richiesta a
Internet, indirizzerà tale richiesta a questo indirizzo MAC, all'indirizzo
MAC associato all'IP del router, che è
10. 0. 2. 1.
Ora questo valore qui, può essere facilmente
modificato sfruttando il protocollo ARP.
Quindi fammi tornare ai miei
diagrammi e proprio qui abbiamo un diagramma di una rete tipica
e puoi vedere che normalmente qualsiasi
dispositivo collegato alla rete, se vuole inviare
una richiesta, li invierà
al router, il il router andrà e
invierà tale richiesta a Internet, attenderà la risposta e
quindi inoltrerà la
risposta al dispositivo che l'ha richiesta.
Pertanto, se l'hacker o
la vittima o qualsiasi altro
computer in rete
desidera inviare una richiesta, invierà tale richiesta direttamente al router.
Ora quello che possiamo fare è sfruttare il protocollo
ARP e inviare due risposte ARP,
una al gateway e una alla vittima.
Diremo al gateway che
sono nell'IP della vittima, quindi il punto
di accesso aggiornerà la sua tabella ARP
e assocerà l'IP della destinazione al mio
indirizzo MAC.
Faremo lo stesso con la
vittima, quindi le invieremo una risposta ARP.
Diremo che sono alle 10. 0. 2. 1 quindi
aggiornerà la sua tabella ARP e assocerà
l'IP di 10. 0. 2. 1 con il mio indirizzo MAC.
Quindi il risultato è che la vittima penserà che io
sia il router e che il router penserà che io
sia la vittima.
Quindi ogni volta che la vittima vuole inviare qualsiasi richiesta,
le richieste dovranno fluire attraverso il mio
computer e le inoltrerò al router.
E poi ogni volta che il punto
di accesso o il router vuole inviare risposte, andranno alla mia
macchina perché pensa che io
sia la vittima e poi lo inoltrerò alla vittima.
Quindi, come puoi
vedere, questo mi mette al centro della connessione
e mi dà così tanto potere e
vedremo tutte le cose che possiamo fare
una volta diventato l'uomo nel mezzo.
Ora il motivo principale per cui
possiamo fare tutto questo è perché ARP non è sicuro.
Perché prima di tutto, i clienti possono accettare le risposte anche
se non hanno inviato una richiesta.
Quindi, come ho detto prima,
invieremo una risposta al punto di accesso
e una risposta alla
vittima dicendo loro che sono ad un IP specifico
senza che loro chiedano chi sono
io o senza che loro chiedano questo IP.
Manderò la risposta
e accetteranno comunque quella risposta.
Non
solo, beh, non verificheranno anche chi sono.
Quindi quando dico che sono un 10. 0. 2. 7
Non sono chiaramente a quell'IP
perché questo computer è a questo IP.
Ma il punto di accesso si fiderà di
questo e aggiornerà effettivamente la sua tabella ARP in
base alle informazioni che ho inviato.
Lo stesso vale per la vittima.
Dirò che sono alle 10. 0. 2. 1 si
fiderà e ci crederà, anche se
chiaramente non sono a questo IP perché il
punto di accesso è a questo IP.
Quindi questi sono i due principali punti deboli con il protocollo ARP
che ci consentono di eseguire attacchi di spoofing ARP.