Packet "sniffing" con Wireshark.
(C) 2013 - Francesco Settembrini - f.settembrini@poliba.it
Proviamo a fare qualche esperimento di "sniffing" su reti di computer utilizzando il notissimo analizzatore di pacchetti Wireshark .
Per l'occasione ho realizzato una coppia di applicazioni (lato client e lato server ) con le quali inviare le richieste che intercetteremo
col Wireshark : potremo cosi` vedere ed analizzare la gran quantita` di messaggi generata dietro le quinte .
Grazie alle possiblita` di filtraggio dei pacchetti del Wireshark concentreremo la nostra attenzione sui tre seguenti protocolli di rete :
- ICMP , utilizzato da IP al livello rete per la diagnostica (layer 3 ovvero di rete dello stack ISO/OSI )
- TCP , il protocollo di base per le comunicazioni con connessione ed affidabili (layer 4 ovvero di trasporto dello stack ISO/OSI )
- HTTP, il protocollo utilizzato dai web-browser per la navigazione sulle pagine web (layer 7 ovvero applicativo dello stack ISO/OSI )
L'applicazione server NetWorkingServer.exe ed il Wireshark sono eseguiti all'interno di una macchina virtuale VMWare
in cui e` installato il Windows XP mentre l'applicazione client NetWorkingClient.exe viene eseguita sotto sotto Windows 7 .
Iniziamo col protocollo ICMP (Internet Control Message Protocol) usato a livello rete per i messaggi di controllo e/o diagnostica.
Avviamo Wireshark dalla macchina VMWare con l'indirizzo IP impostato a 192.168.1.100 mentre dal Windows 7
(il sistema operativo principale del computer) apriamo una shell da cui eseguire il classico ping ; inoltre in Wireshark impostiamo
il filtro dei pacchetti sul valore ICMP .
Nella figura seguente sono evidenziati il filtro ICMP ed inoltre gli indirizzi IP utilizzati dagli host mittente e destinatario :
Nel seguente screenshot si puo` vedere qualche dettaglio in piu` sui pacchetti ICMP ricevuti :
Adesso avviamo le applicazioni NetWorkingServer.exe nella macchina virtuale VMWare e NetWorkingClient.exe nell'ambiente host con Windows 7
non dimenticando di impostare il filtro di Wireshark su TCP e, in NetWorkingClient.exe, l'indirizzo IP su 192.168.1.100 .
Dall'applicazione client premiamo il pulsante send e, dopo qualche istante, vedremo la client-area del Wireshark popolarsi di dati ; la stringa
"Hello TCP !" inviata dall'applicazione client all'applicazione server utilizzando il protocollo di trasporto TCP la ritroviamo nel datagramma
evidenziato denominato [PSH, ACK] :
Facciamo ora un ultimo esperimento col protocollo HTTP :
Ancora una volta ho evidenziato la stringa di dati scambiata tra le applicazioni client e server, prontamente catturata dal Wireshark ( col filtro impostato su http ) .
Wireshark e` liberamente scaricabile dall'omonimo sito mentre il file di cattura wireshark.pcapng e gli eseguibili
NetWorkingClient.exe e NetWorkingServer.exe sono disponibili qui .
^ ^ ^ ^ ^ ^ ^