Catturare traffico di rete
Come catturare il traffico di rete su un Mac utilizzando Tshark (da riga di comando) e PyShark.
Cattura del traffico di rete su macOS usando PyShark e Tshark
La cattura del traffico di rete è essenziale per monitorare e analizzare la rete in scenari di troubleshooting o sicurezza.
In questo articolo, vedremo come catturare il traffico di rete su un Mac utilizzando Tshark (la versione da riga di comando di Wireshark) e PyShark, una libreria Python per interfacciarsi facilmente con Tshark.
Segui questi passaggi per configurare Tshark e utilizzare PyShark per catturare il traffico sulla rete esistente .
Prerequisiti
1. Tshark: Devi avere Tshark installato.Scaricalo e installalo da [Wireshark](https://www.wireshark.org/download.html). Su macOS, puoi installare Tshark anche tramite [Homebrew](https://brew.sh/):
Durante l'installazione, assicurati di concedere i permessi richiesti per eseguire Tshark senza superuser (sudo).
2. PyShark: Installa la libreria PyShark usando `pip`:
pip install pyshark
Configurazione del percorso di Tshark su macOS
Una volta installato Tshark, dobbiamo assicurarci che PyShark sappia dove si trova l'eseguibile di Tshark. Il percorso di default per macOS dopo l'installazione tramite Homebrew è `/usr/local/bin/tshark`.
Ecco come impostare il percorso di Tshark nel codice Python:
import pyshark
# Imposta il percorso dell'eseguibile di Tshark su macOS
tshark_path = '/usr/local/bin/tshark'
Impostare il tempo di cattura
Un passo cruciale è determinare per quanto tempo vuoi catturare il traffico di rete. In PyShark, possiamo specificare un tempo massimo in secondi. Ecco come impostare un tempo di cattura di 60 secondi:
# Definisci il tempo massimo di cattura in secondi
capture_duration = 60 # Ad esempio, cattura per 60 secondi
Specificare l'interfaccia di rete
Dobbiamo identificare l'interfaccia di rete su cui catturare il traffico. Su macOS, i nomi delle interfacce possono variare (ad esempio, `en0` per Ethernet o `en1` per Wi-Fi).Puoi trovare la lista delle interfacce disponibili usando il seguente comando:
tshark -D
In questo esempio, supponiamo che la rete sia associata all'interfaccia Wi-Fi del Mac, spesso denominata `en0`.
# Specifica l'interfaccia di rete (modifica con il nome corretto)
interface_name = 'en0' # Cambia in base all'interfaccia Wi-Fi del tuo Mac
## Passo 4: Cattura del traffico di rete Con il percorso di Tshark impostato, il tempo di cattura definito e l'interfaccia di rete selezionata, possiamo ora avviare la cattura del traffico di rete. Ecco un esempio completo che cattura il traffico di rete per 60 secondi sulla rete associata all'interfaccia `en0` del Mac.
import pyshark
# Imposta il percorso dell'eseguibile di Tshark su macOS
tshark_path = '/usr/local/bin/tshark'
pyshark.tshark.tshark_path = tshark_path
# Definisci la durata della cattura
capture_duration = 60 # 60 secondi di cattura
# Specifica l'interfaccia di rete
interface_name = 'en0' # Interfaccia associata alla rete
# Crea un oggetto di cattura live
capture = pyshark.LiveCapture(interface=interface_name)
# Avvia la cattura per il tempo specificato
capture.sniff(timeout=capture_duration)
# Stampa un riepilogo dei pacchetti catturati
for packet in capture.sniff_continuously(packet_count=10): # Cambia il numero di pacchetti da visualizzare
print(packet)
Descrizione del codice
1. Configurazione del percorso di Tshark: Definiamo il percorso dell'eseguibile di Tshark in modo che PyShark lo possa trovare (su macOS, è `/usr/local/bin/tshark`).2. Tempo di cattura: Impostiamo la cattura a 60 secondi.
3. Interfaccia di rete: Specificiamo l'interfaccia Wi-Fi `en0` associata alla rete .
4. Avvio della cattura: Utilizziamo il metodo `sniff()` per avviare la cattura dei pacchetti per il tempo specificato (in questo caso, 60 secondi).
5. Visualizzazione dei pacchetti: Utilizziamo un ciclo `for` per stampare un riepilogo dei pacchetti catturati.
Conclusione
Abbiamo configurato Tshark su macOS, specificato il percorso dell'eseguibile e impostato PyShark per catturare il traffico di rete su una rete.Con questa configurazione, puoi catturare facilmente il traffico di rete e visualizzare i pacchetti catturati in base ai requisiti di analisi.
Questa configurazione può essere ulteriormente personalizzata per aggiungere filtri, catturare pacchetti su altre interfacce o eseguire catture più complesse su più reti.