Sniffare la rete, cosa significa?

Tempo di lettura: 10 minuti

Lo sniffing di pacchetti è il processo di monitoraggio e cattura di tutti i pacchetti che passano tramite la rete utilizzando un software o un dispositivo hardware. Uno sniffer è quindi un programma che monitora il passaggio di dati su di una rete; esso può essere utilizzato per attività legittime, come la risoluzione di problemi di rete, ma anche per attività illegali, come l’intercettazione di dati sensibili, di conversazioni o di trasmissioni segrete.

Le informazioni più sensibili che si potrebbero trovare su una rete sono:

  • traffico email;
  • password di servizi, come ftp;
  • configurazione del router;
  • traffico internet, composto di servizi utilizzati e siti visitati.
sniffing
sniffing

Tipologie di attacchi sniffing

Gli sniffer sono quindi utilizzati per catturare i dati trasmessi sopra una rete, legittimamente o illegalmente. Le tipologie principali degli attacchi sniffing sono:

  1. MAC Flooding: è un tipo di attacco che inonda il switch di rete con dati, il che solitamente interrompe il passaggio di pacchetti e l’attaccante può monitorare i dati.
  2. DNS Poisoning: è il processo nel quale l’utente viene re-direzionato verso un finto sito. Questo succede perchè l’attaccante ha inviato falsi dati al DNS, e il sito verso cui l’utente è diretto sarà simile all’originale ma controllato in tutto e per tutto dall’attaccante (pensiamo ad esempio ad un sito di una banca);
  3. ARP Poisoning: l’attaccante cerca di associare il suo indirizzo MAC con l’indirizzo IP della vittima, in modo che il traffico sia inviato all’attaccante;
  4. Attacco DHCP: si divide a sua volta in due attacchi diversi:
    1. DHCP starvation, ossia il processo di attacco ad un server dhcp invandogli molte richieste;
    2. Rogue DHCP server: l’attaccante imposta un server rogue dhcp in modo da impersonare il server legittimo sulla lan;
    3. Password sniffing: attacco tramite il quale vengono rubate le password monitorando la rete. Questo accade quando i dati sono inviati in chiaro, quindi senza essere crittografati (ad esempio, quando un sito ha http e non https).

Tipi di sniffing

In base al tipo di rete, lo sniffing può essere di due tipi:

  1. Sniffing Passivo;
  2. Sniffing Attivo.

Con lo sniffing passivo non si invia nessun pacchetta, vengono solamente monitorati I dati inviati sulla rete; è utilizzato solitamente sulle reti che utilizzano hub. Ovviamente è decisamente meno visibile rispetto all’attivo,

Nello sniffing attivo viene iniettato traffico nella rete per identificare e intercettare gli access points ed include il MAC Flooding, ARP spoofing e DHCP Starvation.

Protocolli vulnerabili allo sniffing

I protocolli più vulnerabili allo sniffing sono:

  • HTTP: ormai ben poco utilizzato e sostituito dall’HTTPS, invia dati e informazioni in chiaro;
  • FTP: invia password e dati in chiaro;
  • Telnet: sniffando la connessione si può catturare username e password, eventualmente insieme al testo passante per il protocollo;
  • IMAP.

Attacchi

Attacco MAC

Un indirizzo MAC è un indirizzo hardware che identifica univocamente ogni nodo di una rete. Ogni dispositivo connesso ad una rete possiede un indirizzo MAC associato ad una porta fisica.

Il MAC Flooding “bombarda” il switch di rete fino a quando la tabella CAM è piena. Una volta riempita, il switch inizia a inondare tutto il traffico in entrata a tutte le porte. Tipicamente il MAC Flooding invia numerose richieste utilizzando diversi indirizzi mac fasulli. Una volta che la tabella è piena, qualsiasi altra richiesta sarà forzata dal switch ad entrare in modalità failopen, che lo fa comportare come un hub, inviando così gli stessi dati a tutti gli apparati ad esso collegati, compreso quello di un eventuale aggressore che può dunque sniffare tutto il traffico in transito nella rete.

Uno dei principali software per questa tecnica è macof. Esso inonda la rete locale con indirizzi mac casuali, fino a riempirla.

sniffingmacof
sniffingmacof

Un altro è yersinia, un framework programmato per analizzare e testare reti e sistemi connessi ad esse. A questo indirizzo potrete trovare un approfondimento al tool (che probabilmente approfondirò in un prossimo articolo).

Per difendersi da questo attacco, è possibile assegnare un indirizzo mac sicuro ad ogni porta, in modo che le richieste provenienti da indirizzi mac fasulli non siano accettate.

Attacco DHCP

DHCP (Dynamic Host Configuration Protocol) è un protocollo di rete di livello applicativo che permette ai dispositivi o terminali di una rete locale di ricevere automaticamente a ogni richiesta di accesso a una rete IP la configurazione dell’indirizzo IP necessaria per stabilire una connessione e operare su una rete più ampia.

Attacco DCHP Starvation

In questo attacco, l’attaccante inonda il server DHCP inviando molteplici richieste utilizzando gli indirizzi IP disponibili facendo in modo che un host della rete interna simuli di essere il server DHCP e invii delle risposte ad-hoc alle DHCP-REQUEST che gli arrivano, specificando l’indirizzo IP dell’attaccante come default gateway. In tal modo tutto il traffico, prima di arrivare all’esterno, passerà per la macchina controllata dall’attaccante.

Un software scritto appositamente è dhcpstarv, altrimenti anche yersinia da la possibilità di compiere questo attacco.

sniffingyersinia
sniffingyersinia

Arp poisoning

ARP (Address Resolution Protocol) è un protocollo TPC/IP che mappa gli indirizzi IP con gli indirizzi hardware utilizzati dal protoccolo data link. Utilizzando questo protocollo, si possono ricevere gli indirizzi MAC di ogni dispositivo connesso alla rete.

Un computer salva e mantiene una cache ARP locale quando riceve un pacchetto ARP di richiesta o risposta. Un attaccante può creare una risposta ARP malevola contenente un indirizzo IP associato ad un indirizzo MAC., forzando il computer della vittima ad accettare la richiesta.

L’ARP Poisoning consiste nell’inviare in modo forzato risposte ARP contenenti dati fasulli, in modo da riempire la tabella ARP con dati alterati.

Questa tecnica consente di:

  • effettuare un attacco DoS;
  • rubare ID delle sessioni tramite hijacking;
  • compiere un attacco Man-in-the-Middle.
sniffingmitm
sniffingmitm

Essendo l’attacco MITM abbastanza complesso (sia teoricamente che tecnicamente) lo affronterò in seguito. Per chi volesse già approfondire, consiglio IronGeek, Ettercap e un paper della Cisco.

DNS poisoning

DNS (Domain Name Server) è un protocollo che traduce i nomi di dominio in indirizzi IP. Per mantenere i DNS, vengono usate delle tabelle che contengono i nomi di dominio e l’equivalente indirizzo IP, salvati in grandi database. Il DNS poising  (chiamato anche DNS Spoofing) consiste nel provare a re-direzionare la vittima su server maligni invece che su server legittimi, manipolando appunto la tabella dei DNS a loro insaputa. Per lanciare un attacco DNS poisoning bisogna:

  1. creare un falso sito sul proprio dispositivo;
  2. installare e configurare un software che permette di impersonare un server DNS (ad esempio treewalk);
  3. cammuffare il file e inviarlo all’utente vittima;
  4. Quando la vittima clicca sul file inviato, esso rimpiazzerà I DNS;
  5. L’attaccante è ora il server DNS della vittima, e tutte le richieste passeranno dal nostro dispositivo;
  6. Quando la vittima proverà ad andare sul sito prescelto (per esempio, una banca) invierà le credenziali al nostro dispositivo e sarà re-direzionata al vero sito internet. In questo modo non se ne accorgerà, e noi avremo le credenziali.

N.B. Ho descritto passi molto generici; per chi vuole approfondire, OWASP.

Ci sono quattro tipi di attacco DNS poisoning:

  1. Intranet DNS spoofing;
  2. Internet DNS spoofing;
  3. Proxy server DNS poisoning;
  4. DNS cache poisoning.

Sniffing Tool

Oltre ai software citati in precedenza, lo sniffer più utilizzato al mondo è Wireshark. Esso può catturare, salvare, importare ed esportare i pacchetti di rete; include un sistema di filtraggio completo e colori diversificati in base al tipo di pacchetto intercettato.

Un programma simile, ma a linea di comando e decisamente più ostico è Tcpdump.

sniffingtcpdump
sniffingtcpdump

Per analizzare pacchetti dhcp da file analizzati con tcpdump consiglio dhcpdump.

P0f è invece un tool utilizzato per lo sniffing passivo, il quale cerca di identificare i dispositivi connessi alla rete senza interferire in nessun modo con la comunicazione TCP/IP.

sniffingp0f
sniffingp0f

Conclusioni

Quando si effettua un pentest o simulazioni di un attacco (ricordo che non è legale intercettare le connessioni altrui) è bene provare tutte le tipologie di attacco, in modo da riuscire ad individuare punti deboli. Come contromisure consiglio di:

  1. Autenticarsi sempre con connessioni cifrate, utilizzando ssl o siti con https;
  2. Non connettersi mai a Wi-Fi liberi, molte volte possono essere configurati in modo da registrare il traffico passante;
  3. Controllare che i siti visitati siano quelli veri e non indirizzi fasulli;
  4. Per connessioni da remoto, utilizzare sempre ssh.