Imparare ad usare lo strumento della linea di comando di Wireshark: TShark
Wireshark è l’analizzatore di protocollo di rete più usato al mondo. Permette di immergersi nel traffico catturato e analizzare cosa sta succedendo all’interno di una rete. Oggi, parliamo di come puoi usare l’interfaccia a riga di comando di Wireshark, Tshark, per ottenere risultati simili.
Andremo attraverso alcuni comandi di esempio, quindi sentiti libero di usare un file PCAP per seguirci! Puoi trovare alcuni esempi di file di cattura qui.
Senza un file di input, Tshark si comporta semplicemente come Tcpdump. Catturerà il traffico dalla prima rete disponibile e mostrerà i suoi pacchetti allo standard output. In alternativa, è possibile utilizzare il flag “-r” per specificare il file di cattura della rete.
tshark -r network.pcap
In questo modo, Tshark visualizzerà i pacchetti del file di cattura nello standard output. Diamo un’occhiata a una riga dell’output!
35 29.947879 192.168.0.55 → 192.168.0.91 HTTP 423 HTTP/1.1 200 OK
Questo può sembrare complicato, ma ricorda che l’output della riga di comando di Tshark rispecchia l’interfaccia di Wireshark. I campi da sinistra a destra nell’output della linea di comando sono:
Packet number, Time, Source, Destination, Protocol, Length, Info
35, 29.947879, 192.168.0.55, 192.168.0.91, HTTP, 423, HTTP/1.1 200 OK
Il campo “Time” mostra quando il pacchetto è stato catturato. I campi “Source” e “Destination” mostrano l’IP di origine e l’IP di destinazione di quel pacchetto. Il campo “Protocollo” mostra il protocollo utilizzato. Il campo “Lunghezza” mostra la lunghezza del pacchetto. E infine, il campo “Info” mostra qualsiasi informazione aggiuntiva sul pacchetto.
Puoi filtrare questi riassunti di pacchetti inserendo l’output di Tshark in grep. Per esempio, questo comando mostrerà i pacchetti con un codice di stato HTTP “200 OK”.
tshark -r network.pcap | grep "200 OK"
Esportazione di pacchetti interessanti
Puoi esaminare il contenuto del pacchetto esportando i suoi oggetti. L’esportazione di oggetti in Tshark ti permette di estrarre diversi tipi di dati di pacchetti, come gli oggetti HTTP e SMB. La sintassi per esportare gli oggetti è la seguente.
tshark -r network.pcap --export-objects PROTOCOL,DESTINATION_DIR
Il PROTOCOLLO specifica il tipo di oggetto di esportazione, mentre il DESTINATION_DIR è la directory che Tshark utilizzerà per memorizzare i file esportati. Per esempio, questo comando esporterà i file che sono stati trasportati attraverso la rete e li memorizzerà nella directory “exported_files_dir”.
tshark -r network.pcap --export-objects http,exported_files_dir
Usare i filtri di pacchetto
Proprio come in Wireshark, puoi anche filtrare i pacchetti in base a certi criteri. Puoi semplicemente mettere i tuoi filtri tra virgolette alla fine del comando.
tshark -r network.pcap "http.request.method == POST and http.file_data contains password"
Il formato dei filtri che possono essere applicati è identico a quello di Wireshark. Puoi trovare una lista di filtri disponibili qui.
Puoi anche specificare il formato di output per i dati dei pacchetti decodificati usando il flag “-T”. Per esempio, questo comando visualizzerà tutte le richieste HTTP GET nel formato JSON.
tshark -r network.pcap -T json "http.request.method==GET"
Infine, puoi elaborare l’output di Tshark convogliandolo in altri strumenti a riga di comando come grep.
Conclusione
Questo post introduce solo una piccola parte di ciò che Wireshark e Tshark possono fare. Sono strumenti versatili che sono in grado di eseguire molti tipi diversi di analisi.
Se sei interessato a saperne di più su questi strumenti, visita la loro documentazione qui.