GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Catturare i pacchetti con Tcpdump e analizzarli con Wireshark su Ubuntu

In questa guida ti mostrerò come analizzare i pacchetti di rete su Linux. Userò gli strumenti Tcpdump e Wireshark. Questo tutorial utilizza Ubuntu come sistema operativo, ma è applicabile anche ad altre distribuzioni Linux.

Perché hai bisogno di Tcpdump?

Una domanda ovvia che potrebbe venire in mente è perché ti interessa Tcpdump quando puoi fare quasi tutto con Wireshark. Bene, ecco la risposta per questo:a volte è più conveniente usare Tcpdump per l'acquisizione di pacchetti rispetto a Wireshark. Ad esempio, se la macchina di destinazione su cui stai acquisendo il pacchetto è una remota senza Wireshark installato su di essa o è solo una macchina remota senza testa, in entrambi i casi, Tcpdump è molto utile. Per esaminare le varie opzioni che possono essere utilizzate con Tcpdump, cerca le pagine man.

Cos'è Tcpdump?

Tcpdump è un'alternativa a riga di comando a Wireshark. Ha lo stesso scopo di Wireshark, che sta catturando e analizzando il traffico. Tcpdump è un'applicazione separata e non dovrebbe essere considerata un'interfaccia a riga di comando di Wireshark. Poiché si basa sull'interfaccia della riga di comando, non è così semplice da gestire come Wireshark. I nuovi utenti potrebbero trovarlo scoraggiante all'inizio quando iniziano a usarlo e possono trovare molti comandi e sintassi difficili da ricordare.

Schema di questo tutorial

Passiamo ora allo scopo principale di questa guida. In questa guida vedremo come possiamo interagire Tcpdump con Wireshark. Qui vi segnaliamo il lavoro che faremo in questa guida:

  1. Connessione con la macchina remota (Host 2) con SSH.
  2. Cattura del traffico con Tcpdump e salvataggio dell'acquisizione.
  3. Invio del file Capture al computer in loco (Host 1) su cui è installato Wireshark.
  4. Utilizzo di Wireshark per analizzare la sessione Tcpdump acquisita.

Controllo pre-volo

Per questo tutorial, stiamo usando due macchine Ubuntu 20.04. Devi configurarli da solo. La nostra configurazione IP è la seguente:

Host 1 (macchina in loco):192.168.186.150

Host 2 (macchina remota):192.168.186.201

I passaggi menzionati in questa guida dovrebbero funzionare su qualsiasi sistema Linux con i seguenti requisiti soddisfatti:

  1. Host in loco (Host 1) con Wireshark installato e SSH configurato.
  2. Accesso SSH dall'host in loco (Host 1) all'host remoto (Host 2).
  3. Tcpdump e SSH configurati sull'host remoto (Host 2).
  4. Account utente "sudo" su Host 2 per eseguire Tcpdump e anche su Host 1 (dipende da come è configurato Wireshark).

Iniziamo...

Per procedere ulteriormente, connettiti dal tuo computer in loco (Host 1) al computer remoto (Host 2) con protocollo di accesso SSH. Abbiamo già impostato la connessione SSH tra le due macchine. Quindi useremo il comando seguente dal terminale Host 1 per connetterci a Host 2:

$ ssh 'nome_utente'@'IP_of_Host2'

Qui sostituisci 'user_name' con il nome utente dell'Host 2 a cui ci stiamo connettendo e 'IP_of_Host2' è l'indirizzo IP dell'Host 2. Vedi l'immagine qui sotto per riferimento:


Ora controlla le interfacce disponibili sul computer remoto su cui Tcpdump può acquisire. Per questo usa il comando:

$ tcpdump --list-interfaces

Risultato di esempio:

1.enp0s3 [Attivo, In esecuzione]
2.lo [Attivo, In esecuzione, Loopback]
3.any (Pseudo-dispositivo che acquisisce su tutte le interfacce) [Attivo, In esecuzione]
4. eno1 [Up]
5.bluetooth-monitor (Bluetooth Linux Monitor) [none]
6.nflog (interfaccia Linux netfilter log (NFLOG)) [none]
7.nfqueue (Linux netfilter interfaccia coda (NFQUEUE)) [nessuno]
8.bluetooth0 (adattatore Bluetooth numero 0) [nessuno]


Come puoi vedere, l'interfaccia 'enpos3' è attiva e funzionante. Quindi impostiamolo come interfaccia di destinazione ed eseguiamo il comando tcpdump qui. Quando ritieni di aver catturato abbastanza pacchetti, premi semplicemente "Ctrl+c" per terminare l'acquisizione dei pacchetti. Il comando è:

$ sudo tcpdump -s 65535 -i enp0s3 -w my_remote_capture.pcap


Nel comando precedente, abbiamo utilizzato le seguenti opzioni con Tcpdump:

  1. -s:versioni precedenti di pacchetti cut-off di Tcpdump a 68 o 96 byte. L'opzione '-s' viene utilizzata per acquisire pacchetti a lunghezza intera.
  2. -i:Seleziona l'interfaccia su cui ascoltare.
  3. -w:salva i pacchetti grezzi acquisiti in un file invece di visualizzarli sul terminale.

Il traffico catturato viene archiviato nel file denominato 'my_remote_capture.pcap'. Ora trasferiremo questo file all'Host 1 per l'analisi con Wireshark. Per trasferire il file, utilizziamo il comando 'scp'. Ancora una volta, abbiamo già configurato 'scp' per funzionare tra le due macchine. La sintassi del comando è la seguente:

$ scp my_remote_capture.pcap 'username'@'IP_of_remote_machine':

Qui 'username' è il nome dell'utente sull'Host 1 e 'IP_of_remote_machine' è anche l'IP dell'Host 1.


Sul computer in loco (Host 1) verifica di aver ricevuto il file. Nel nostro caso, abbiamo ricevuto correttamente il file e lo apriremo utilizzando Wireshark come mostrato di seguito:


Ecco lo screenshot del file Capture dall'Host 1:

Analisi del file di acquisizione

Applichiamo un filtro di visualizzazione al file sopra. Dal momento che siamo stati collegati a Host 2 tramite SSH, dovrebbero esserci alcune tracce del protocollo SSH. Nel campo di testo corrispondente al filtro di visualizzazione inserisci 'ssh':


Nell'immagine sopra, possiamo vedere solo i pacchetti con protocollo 'SSH'.

Conclusione... 

Congratulazioni, abbiamo finalmente dimostrato come possiamo eseguire un'acquisizione remota su una macchina. Abbiamo visto come possiamo combinare Tcpdump con Wireshark.


Ubuntu
  1. Installa e inizia con MySQL Workbench su Ubuntu

  2. Installazione WordPress su Ubuntu Linux con Apache e MySQL

  3. Errori con Vagrant e Ubuntu 12.10 con Rvm?

  4. Problemi con Nvidia Gpu e Ubuntu 16.04?

  5. Cattura i pacchetti con tcpdump

Installazione di Lighttpd con PHP5 e supporto MySQL su Ubuntu 10.04

Hosting virtuale con vsftpd e MySQL su Ubuntu 12.04

Hosting virtuale con vsftpd e MySQL su Ubuntu 12.10

Installazione di Nginx con supporto PHP5 e MySQL su Ubuntu 8.10

Installa e usa Wireshark su Ubuntu Linux

Come installare e utilizzare Wireshark su Ubuntu 21.04