Arp poisoning e SSL sniffing per la cattura delle password
Alessandro Scoscia • 06 marzo 2009 12:16
Non vorrei passare per quello che fa del terrorismo psicologico ma più leggo articoli sulla "network security" più... mi guardo bene attorno? :D
Sì perchè è molto più probabile che a volere le nostre password non sia un noto pirata ma proprio un nostro vicino di scrivania. E guarda caso il vicino è proprio quello a cui è più facile portare un attacco alla nostra privacy.
Non ci dovremmo neppure fidare del fatto che siano richieste altissime conoscenze professionali o strumenti costosi e per esperti. Tutto quello che serve è una postazione linux!
Tecnicamente questo attacco si basa su una tecnica definita "Arp Spoofing/Poisoning".
Attacco
Per eseguire un attacco dimostrativo, ho giocato in casa. La mia vecchia postazione ubuntu per l'attaccante e la nuova, Windows, per l'attaccata.
Il software necesario sulla macchina linux è dsniff (insieme di strumenti software per il monitoraggio della rete) ed un analizzatore di protocollo: ssldump
Installiamo il software necessario sulla macchina attaccante:
sudo apt-get install dsniff ssldump
Quello che stiamo cercando di fare, da attaccanti, è di deviare tutto il traffico tra la macchina che cerchiamo di monitorare e il router che ci manda in internet in modo che passi per noi e possa essere così analizzabile. La nostra postazione deve essere inoltre trasparente e inoltrare il traffico dell'attaccato verso il gateway. Esattamente come nella figura sotto fa Eve per monitorare il traffico di Alice verso internet.
La prima cosa da fare è abilitare il forwarding:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
In secondo luogo dobbiamo aggiungere ad iptables delle regole che consentano di gestire opportunamente il traffico che non è diretto a noi:
- sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT
- sudo iptables -A FORWARD -j ACCEPT
A questo punto "convinciamo" la macchina dell'attaccato ad inviare a noi il traffico che vuole far uscire su internet:
sudo arpspoof -t "ip_della_macchina_attaccata" "ip_del_gateway"
In questo caso ignoriamo del tutto il traffico di ritorno che non ci interessa.
A questo punto facciamo partire webmitm in modalità "debugging". Webmitm è un proxy "trasparente" per il traffico SSL utilizzato di norma per operazioni di monitoraggio.
Ora non resta che eseguire ssldump per analizzare il contenuto del traffico che stiamo catturando (che comparirà sul monitor) e salvarlo in un file per consentirci una lettura più comoda:
ssldump -n -d -k webmitm.crt | tee ssldump.log
Non rimane che aspettare che la macchina sotto attacco faccia login in qualche servizio tipo google, gmail, yahoo, msn o altro e la password comparirà sul nostro schermo.
Difesa
Vediamo adesso la parte più interessante del tutorial e cioè come difendersi da questo tipo di attacco. Un amministratore di sistema dovrebbe configurare le macchine in modo che un proprio utente non possa eseguire questo tipo di attacco decisamente "ILLECITO".
Diciamo subito che non esiste un modo "perfetto" di proteggersi da questo tipo di attacco in quanto questa tecnica si basa sui meccanismi di base dell'indirizzamento delle reti ethernet. Il meccanismo che viene "forzato" è quello dell'associazione tra indirizzo ip ed indirizzo mac (fisico) delle interfacce di rete.
Accenno soltanto ad una soluzione in cui manualmente l'amministratore associ ad ogni indirizzo mac di interfaccia un indirizzo ip perchè la soluzione, al crescere delle postazioni, diviene impraticabile e la configurazione va riscritta anche ad ogni cambio di scheda di rete o apparato.
Per chi proprio volesse seguire questa strada è possibile utilizzare il comando arp con l'opzione -s che associa mac ed ip in modo permanente, sino allo spegnimento della postazione. Il comando va quindi eseguito ad ogni riavvio. Su ogni macchina va ripetuto un comando per ogni altra postazione della rete da bloccare.
La soluzione suggerita è invece quella di installare su un server un software in grado di monitorare il traffico arp della rete.
Per i server linux il software in questione è arpwatch che è in grado di iniviare alert quando si verificano condizioni "anomale".
Per i server windows non ho trovato una soluzione free, ma ci sono molte appplicazioni commerciali che eseguono queto tipo di monitoraggio. Cito XArp perchè è piuttosto semplice da utilizzare ed è distribuita in versione trial per 30 giorni.
Per un elenco più esteso di difese da un attacco di questo tipo è possibile leggere le contromisure nella voce ARP-Poisoning in wikipedia.




![[Valid RSS]](/img/valid-rss.png)

Commenti
Non ci sono commenti