Home
Il primo sniffing di dati dalla rete con Wireshark

20 Aprile 2018

Il primo sniffing di dati dalla rete con Wireshark

di

Come i pirati attentano alla sicurezza delle reti con strumenti sofisticati, così ci si può difendere usando procedure simili alle loro.

[Pubblichiamo un estratto di Wireshark e Metasploit, il libro di recente uscita che insegna al lettore le tecniche di attacco e difesa dalle intrusioni indesiderate e le procedure per analizzare e risolvere i problemi di rete.]

Sniffing è il termine colloquiale che si usa per indicare la cattura di dati dalla rete. Alla lettera significa fiutare e, come un cane che fiuta per individuare una pista, noi fiutiamo la rete per individuare pacchetti. In generale, quando diciamo che catturiamo dati dalla rete, intendiamo riferirci alla registrazione degli 1 e 0 che si propagano in qualche mezzo fisico. Le macchine sono in grado di dare un senso a quegli 1 e 0, ma noi umani abbiamo bisogno di un po’ di aiuto, ed è qui che arrivano in soccorso strumenti come Wireshark. Per analizzare un protocollo di rete, dovete prima catturare del traffico, cosa che si può fare in molti modi; qui vedremo un po’ di sniffing di base su una rete commutata.

Normalmente potete vedere solo il traffico di rete che ha origine da voi, che è destinato a voi, o che è traffico broadcast. Almeno, la vostra scheda di rete sa di non dover considerare il traffico che non riguarda il vostro sistema. Per lo sniffing e la cattura di traffico non rilevante per il vostro sistema è necessaria una modalità speciale.

Modalità promiscua

Normalmente un sistema “si interessa” solo dei pacchetti che gli sono pertinenti. Quando la scheda o il driver di rete riceve un pacchetto che non ha il suo indirizzo, il pacchetto viene lasciato andare e il sistema operativo non ne sa nulla. Nel contesto dei livelli OSI, i pacchetti vengono lasciati andare al livello più basso possibile, il livello 2. Non appena l’indirizzo MAC stabilisce che il pacchetto non ha nulla a che fare con l’host, il pacchetto viene lasciato andare. Certo non vi è alcun motivo per impegnare risorse gestendolo a livelli più alti della pila, no? Ma è solo il traffico locale quello che volete vedere?

A seconda della vostra configurazione di sniffing, potreste voler avere un modo per disabilitare questo comportamento e avere visibilità su tutti i pacchetti che raggiungono la vostra interfaccia di rete. I driver di rete supportano questo comportamento con una impostazione definita modalità promiscua. Quando è abilitata questa modalità, la scheda di rete accetta tutti i pacchetti che vede e li passa lungo la pila di rete, consentendone la cattura da parte di Wireshark.

Wireshark e la modalità promiscua

La modalità promiscua di Wireshark abilita la cattura di qualunque pacchetto.

Torniamo al livello 2. Su una rete Ethernet cablata commutata, l’host vede ben poco traffico al di là di quello pertinente al sistema locale. Ricordate che uno switch sa quali indirizzi MAC stanno dietro ogni porta e perciò non inoltra alla vostra macchina pacchetti destinati ad altri host. Solo se parecchie macchine sono collegate a un hub (nessuna discriminazione del traffico al livello 2) fra voi e lo switch più vicino, la modalità promiscua presenterà del traffico da più macchine. Se c’è una macchina per porta switch, la modalità promiscua rivelerà pochissimo di più.

Altro che sniffing passivo

Qualcuno potrebbe pensare che essere in modalità promiscua sia un semplice sniffing passivo, non rilevabile, ma sbaglierebbe. La presenza di un sistema di monitoraggio di rete in modalità promiscua è rilevabile in vari modi. Uno si basa sul fatto che la vostra interfaccia di rete fa gli straordinari, elaborando tutti i pacchetti, e non solo quelli rilevanti per l’host. Se qualcuno è “a caccia” di sniffer di rete, per esempio, manda un ping a tutti gli host e analizza con attenzione il tempo di risposta, gli sniffer possono essere esposti semplicemente perché sono i più lenti. Anche se la differenza temporale effettiva è solo di poche centinaia di millisecondi, saranno sempre i più lenti.

Esistono anche altri modi per individuare macchine che “sniffano”, al di là delle semplici prestazioni. Alcuni strumenti di cattura di rete rispondono alle risposte ARP in un modo rilevabile. Un altro modo è se il dispositivo di cattura deve risolvere un indirizzo IP al suo nome DNS (cosa che Wireshark farà, se volete). Inviando traffico con un indirizzo IP “flag falso”, solo uno sniffer di rete cercherebbe di risolverlo, perciò la squadra di rilevamento si accorgerebbe della sua esistenza. Diventa rapidamente un gioco a gatto e topo, e bisogna prendere ulteriori misure, se l’obiettivo delle vostre attività di sniffing è rimanere il più invisibili possibile. Come rimanere invisibili va al di là degli scopi di questo libro, e come evadere il rilevamento di NIC promiscui è un esercizio che lasciamo al lettore.

Modalità promiscua e modalità monitor

Forse avrete sentito già queste due espressioni, magari usate in modo intercambiabile. La modalità monitor equivale allo sniffing, ma il termine si applica solo allo sniffing wireless. Un’interfaccia che sniffa tutti i pacchetti su una rete cablata è in modalità promiscua.

Modalità monitor di Wireshark

La modalità monitor riguarda unicamente lo sniffing di dati trasmessi wireless.

Nel contesto wireless, c’è una grande differenza fra catturare traffico wireless in modalità promiscua e farlo in modalità monitor. Catturare traffico wireless in modalità promiscua significa effettuare lo sniffing del traffico mentre si è associati a un punto di accesso (AP, access point). Come nella modalità promiscua per le reti cablate, vedete tutto il traffico destinato al vostro host e anche ad altri, e tutto il traffico che si vede passa attraverso l’AP della WLAN a cui voi e quegli altri host siete in quel momento collegati.

La modalità monitor, invece, significa sniffing di tutto il traffico, da tutti i punti di accesso. In quell momento non siete connessi o associati a un AP. Vedete tutto il traffico wireless trasmesso, almeno nella misura in cui lo consente l’intensità del segnale RF e nella misura in cui lo può rilevare la vostra antenna. In effetti, questo vale per lo sniffing di traffico wireless in entrambe le modalità operative definite dallo standard 802.11: modalità infrastruttura (dispositivi connessi a un AP) e modalità ad hoc (dispositivi connessi l’uno all’altro senza un AP).

La prima cattura

Per iniziare lo sniffing, lanciate Wireshark e cercate la sezione di cattura nella schermata principale. Se appare sostanzialmente come nella prossima figura, siete a posto. Se mostra un messaggio di errore, in cui dice di non essere in grado di trovare interfacce su cui catturare, verificate le istruzioni di configurazione all’inizio del libro.

Per una cattura di base sull’interfaccia cablata, le opzioni di default vanno bene; perciò semplicemente fate clic su eth0/em1 in Linux o su Local Area Connection in Windows, in modo che sia evidenziata, poi fate clic su Start. Per default, questo imposta l’interfaccia selezionata sulla modalità promiscua (ne riparleremo più avanti) e avvia l’ascolto del traffico.

L'elenco Capture Interfaces di Wireshark

L’elenco Capture Interfaces.

Catturare come superuser (root/Administrator) non è una buona idea, per motivi di sicurezza. Poiché Wireshark esegue l’analisi sintattica di una grande quantità di dati non fidati, è esposto a vulnerabilità di corruzione della memoria, che potrebbero portare all’esecuzione di codice. Non volete ritrovarvi con la vostra macchina per l’analisi colpita da un attaccante che invia dati maligni attraverso la rete! Eseguire l’operazione come utente con meno privilegi riduce l’impatto, nel caso venga eseguito del codice remoto. Wireshark vi avverte in proposito all’avvio, fornendovi anche un collegamento alla documentazione su come eseguire una cattura come utente con meno privilegi (vedi la figura qui sotto).

Wireshark: avvertimento per il superuser

Avvertimento per il superuser.

Una volta avviato lo sniffing, quasi immediatamente comincerete a vedere del traffico sullo schermo, poiché i dispositivi di rete generano costantemente un po’ di trafico. Dovete fare clic qua e là sui pacchetti mostrati nell’elenco per prendere confidenza con i diversi pannelli dell’interfaccia e per capire che tipo specifico di traffico potete vedere sulla vostra rete.

Come si vede nella figura che segue, i pacchetti vengono catturati e visualizzati entro pochi secondi dall’inizio dello sniffing. Facendo clic sul pacchetto numero 7 nel pannello Packet List, si vede la scomposizione del pacchetto nel pannello Packet Details. Qui potete espandere qualsiasi sottoalbero facendo clic sulla freccia relativa immediatamente alla sua sinistra. Notate che la freccia punta verso destra quando il sottoalbero è collassato, verso il basso quando è espanso.

Dall’esempio si vede che nel pannello Packet List è evidenziato quale pacchetto è mostrato nel pannello Packet Details, dove si vede l’interno del pacchetto, con i sottoalberi applicabili. Se si espande un sottoalbero, per esempio Internet Protocol Version 4, si vedono gli indirizzi IP di origine e destinazione del pacchetto, oltre a vari flag e ad altre informazioni relative all’intestazione IPv4.

Nuovo traffico su Wireshark

Nuovo traffico.

Chi usa Windows noterà che il sistema attribuisce per default al nuovo dispositivo il nome Local Area Connection (2) o qualcosa di simile. Questo non semplifica la selezione dell’interfaccia nelle finestre di dialogo di Wireshark, ma è possibile cambiare il nome dell’interfaccia come per una cartella o un file in Windows. Lo si può fare nella schermata Adapter Settings, che si raggiunge attraverso il Network Center nella maggior parte dei sistemi Windows 10, facendo poi clic sulla nuova interfaccia e premendo F2. Altrimenti potete usare la GUI. Fate clic su Capture nella barra dei menu e selezionate Options. Nella finestra di dialogo Capture Interfaces che compare, fate clic sul pulsante Manage Interfaces in basso a destra per visualizzare la finestra di dialogo Manage Interfaces. Inserite un nuovo nome per l’interfaccia modificando la colonna Comment, come si vede in questa figura.

Modifica del nome di un'interfaccia di rete in Wireshark

Modifica del nome di un’interfaccia di rete.

Sniffing in Windows e in Linux

Per trovare l’interfaccia giusta in Windows, seguite questo procedimento.

  1. Aprite un prompt di comando premendo Windows + x o cercando ed eseguendo cmd nella casella di ricerca di Cortana o nella finestra di dialogo Esegui.
  2. Scrivete ipconfig /all per vedere un elenco di tutte le interfacce di rete disponibili.
  3. Controllate ogni interfaccia per la configurazione IP della vostra rete.

Il nome nell’elenco delle interfacce in Wireshark corrisponde al nome dopo “adapter” (per esempio, “Wi-Fi 4”).

Per trovare l’interfaccia giusta in Linux, il procedimento è simile.

  1. Aprite una finestra di terminale.
  2. Scrivete ifconfig /all per vedere un elenco di tutte le interfacce di rete disponibili.
  3. Verificate per ogni interfaccia la configurazione IP della rete.

Inoltre, potete selezionare in Wireshark Capture > Options per aprire la finestra Capture Interfaces. Da lì potete vedere ogni interfaccia, una piccola rappresentazione grafica del traffico, se l’interfaccia è in modalità promiscua o meno, le dimensioni del buffer e altri dettagli.

Se le prestazioni del vostro sistema sembrano rallentate senza motivo apparente, dopo aver lavorato con Wireshark, è possibile che abbiate lasciato Wireshark in esecuzione in background. Se lo lasciate in esecuzione, il file di cattura continuerà a crescere, raggiungendo rapidamente le centinaia di megabyte. Non esiste limite alle dimensioni del file di cattura, al di là di quello determinato dallo spazio di memorizzazione disponibile. Un file di cattura molto grande però può diventare scomodo, per lavorarci o per condividerlo. Per evitare che succeda, tenete conto della possibilità di suddividerlo in più file. Wireshark dà la possibilità di dividere i file di cattura in base alle dimensioni o al tempo, senza perdere nemmeno un pacchetto.

Ovviamente questo è solo l’inizio di quello che è possibile fare con Wireshark in termini di cattura dei pacchetti e rinviamo al nostro libro per la trattazione completa della materia.

Sulla rete siamo gatti o topi? Comunque, un passo avanti.

L'autore

  • Jessey Bullock
    Jessey Bullock ha maturato esperienze in aziende di vario tipo occupandosi di sicurezza informatica nell'ambito dello sviluppo applicativo, dei sistemi operativi e dei protocolli di rete. Ha conseguito le più importanti certificazioni di settore tra cui CISSP, CCNA, CWNA, GCFE, CompTIA Security+, CompTIA A+, OSCP, GPEN, CEH e GXPN.
  • Jeff Parker
    Jeff T. Parker è un veterano della sicurezza IT e durante la sua carriera di consulente ha collaborato con diverse aziende Fortune 100. Vive a Halifax, in Canada, dove cresce i suoi due figli, occupandosi di hacking mentre loro sono a scuola.

Vuoi rimanere aggiornato?
Iscriviti alla nostra newletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Libri che potrebbero interessarti

Vedi tutti

Human Hacking

Influenzare e manipolare il comportamento umano con l'ingegneria sociale

37,90

49,89€ -24%

25,42

29,90€ -15%

19,99

di Christopher Hadnagy

Imparare l'hacking

Partire dalle basi, conoscere gli attacchi e sfruttare le vulnerabilità

25,10

32,89€ -24%

16,92

19,90€ -15%

12,99

di Riccardo Meggiato