Wireshark è un analizzatore di protocollo. Un software capace di catturare, analizzare e modificare, in tempo reale o da file precedentemente salvati, i frame che passano attraverso una rete. Dispone di un’interfaccia grafica ricca di opzioni di analisi e filtraggio dei pacchetti ed è disponibile per l’installazione su tutti i principali sistemi operativi Unix-like, Windows e Mac OS X.
In questa guida, vi illustrerò come ottenere le credenziali d’accesso passate attraverso un form html da un pc sotto la stessa rete. Per ricreare lo scenario, ho costruito in locale un file index.php contenente un semplice form in html che passa i dati username e password tramite il metodo post (senza includere i valori nell’url della pagina) ad un secondo file post.php. Per ovvi motivi, non ho eseguito il tutorial analizzando i pacchetti dall’intrfaccia di rete ethernet; l’ho fatto tramite l’interfaccia di Loopback, ma posso assicurarvi che utilizzando la vostra scheda di rete otterrete il medesimo risultato. Leggermente diverso sarà per l’interfaccia di rete 802.11, ovvero per la scheda WiFi, che introduce delle difficoltà che non spiegherò qui.
Impostare il filtro in Wireshark
Avviamo Wireshark e selezioniamo l’interfaccia di rete che utilizzeremo per la cattura dei pacchetti (packet sniffing). Nella schermata che otteniamo, localizziamo il campo Filter e lo compiliamo con la seguente stringa: http.request.method == “POST”. Clicchiamo sul pulsante Apply per rendere attivo il filtro.
Il filtro impostato farà in modo che l’analizzatore ci mostri solo i pacchetti di dati provenienti in seguito ad una richiesta in post dalle pagine web.
Compilazione di un form
Non ci resta che attendere che qualcuno sulla nostra rete compili un form su una pagina web.
Nel momento in cui verranno inviati i dati vedremo comparire una riga nella schermata di Wireshark.
Come ho scritto sopra, al fine di ricreare lo scenario, ho utilizzato delle pagine internet installate in locale, per questo sotto le colonne Source e Destination vediamo l’indirizzo IP del Web Server locale. Nel caso in cui la cattura dei pacchetti venga effettuata tramite l’interfaccia ethernet, vedremo come sorgente e destinazione del pacchetto, l’indirizzo IP locale del PC sul quale è stato compilato il form e l’indirizzo del server che ospita il form stesso.
Segui il flusso TCP
Catturato il pacchetto che ci interessa, non dobbiamo fare altro che seguire il suo flusso TCP per ricostruire tutte le informazioni passate attraverso il form. Facciamo click con il tasto destro sulla riga del pacchetto per ottenere un menù contestuale, dal quale selezioneremo la voce Follow TCP stream.
Successo: username e password sniffate!
La schermata che si apre mostra chiaramente le credenziali inserite dalla nostra vittima nel form di qualsiasi sito internet.