Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/kiminewt/pyshark
Sniffing e Analisi dei PacchettiAuditing Wi-FiStrumenti di Crittografia/DecrittografiaNetwork ForensicsInformatica ForenseSicurezza di ReteSicurezza WirelessDigital Forensics
GitHubkiminewt/pyshark

pyshark

Python wrapper per tshark, che consente il parsing di pacchetti in Python utilizzando i dissectors di Wireshark.

Vedi Repository
2.5k45285 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

pyshark

Wrapper Python per tshark, che permette il parsing di pacchetti Python utilizzando i dissector di Wireshark.

Documentazione estesa: http://kiminewt.github.io/pyshark

Cerchiamo contributori - per vari motivi, al momento faccio fatica a trovare tempo per mantenere e migliorare il pacchetto. Tutte le pull request saranno esaminate e, se qualcuno è interessato e adatto, sarò felice di includerlo nel progetto. Sentiti libero di scrivermi a dorgreen1 at gmail.

Esistono diversi moduli Python per il parsing di pacchetti, ma questo è diverso perché non analizza effettivamente alcun pacchetto: si limita a utilizzare la capacità di tshark (utility da riga di comando di Wireshark) di esportare XML per sfruttare il suo parsing.

Questo pacchetto consente il parsing da un file di cattura o da una cattura live, utilizzando tutti i dissector di Wireshark che hai installato. Testato su Windows/Linux.

Installazione

Supporto versioni

Python 3.7+ è supportato. Esiste una versione Python 2 non supportata come pyshark-legacy.

Supporta tutte le versioni moderne di tshark / wireshark, ma alcune funzionalità potrebbero non essere disponibili su versioni precedenti.

Tutte le piattaforme

Esegui semplicemente il seguente comando per installare l'ultima versione da pypi

root@kitploit:~
pip install pyshark

Oppure installa dal repository git:

root@kitploit:~
git clone https://github.com/KimiNewt/pyshark.git
cd pyshark/src
python setup.py install

Mac OS X

Potrebbe essere necessario installare libxml, cosa che può essere inaspettata. Se ricevi un errore da clang o un messaggio di errore relativo a libxml, esegui quanto segue:

root@kitploit:~
xcode-select --install
pip install libxml

Probabilmente dovrai accettare un EULA per XCode, quindi preparati a fare clic su una finestra di dialogo "Accetta" nell'interfaccia grafica.

Utilizzo

Lettura da un file di cattura:

root@kitploit:~
>>> import pyshark
>>> cap = pyshark.FileCapture('/tmp/mycapture.cap')
>>> cap
<FileCapture /tmp/mycapture.cap (589 pacchetti)>
>>> print cap[0]
Packet (Length: 698)
Layer ETH:
        Destination: OSCURATO
        Source: OSCURATO
        Type: IP (0x0800)
Layer IP:
        Version: 4
        Header Length: 20 bytes
        Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
        Total Length: 684
        Identification: 0x254f (9551)
        Flags: 0x00
        Fragment offset: 0
        Time to live: 1
        Protocol: UDP (17)
        Header checksum: 0xe148 [corretto]
        Source: OSCURATO
        Destination: OSCURATO
  ...

Altre opzioni

  • param keep_packets: Se mantenere i pacchetti dopo averli letti tramite next(). Utile per risparmiare memoria durante la lettura di grandi file di cattura.
  • param input_file: Un percorso o un oggetto simile a file contenente un file di cattura di pacchetti (PCAP, PCAP-NG..) o un xml di TShark.
  • param display_filter: Un filtro di visualizzazione (wireshark) da applicare alla cattura prima di leggerla.
  • param only_summaries: Produce solo sommari dei pacchetti, molto più veloce ma include pochissime informazioni.
  • param disable_protocol: Disabilita il rilevamento di un protocollo (tshark > versione 2)
  • param decryption_key: Chiave utilizzata per crittografare e decrittografare il traffico catturato.
  • param encryption_type: Standard di crittografia utilizzato nel traffico catturato (deve essere 'WEP', 'WPA-PWD' o 'WPA-PWK'. Il valore predefinito è WPA-PWK.
  • param tshark_path: Percorso del binario tshark

Lettura da un'interfaccia live:

root@kitploit:~
>>> capture = pyshark.LiveCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 pacchetti)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print('Appena arrivato:', packet)

Altre opzioni

  • param interface: Nome dell'interfaccia su cui sniffare. Se non specificato, prende la prima disponibile.
  • param bpf_filter: Filtro BPF da utilizzare sui pacchetti.
  • param display_filter: Filtro di visualizzazione (wireshark) da utilizzare.
  • param only_summaries: Produce solo sommari dei pacchetti, molto più veloce ma include pochissime informazioni.
  • param disable_protocol: Disabilita il rilevamento di un protocollo (tshark > versione 2)
  • param decryption_key: Chiave utilizzata per crittografare e decrittografare il traffico catturato.
  • param encryption_type: Standard di crittografia utilizzato nel traffico catturato (deve essere 'WEP', 'WPA-PWD' o 'WPA-PWK'. Il valore predefinito è WPA-PWK).
  • param tshark_path: Percorso del binario tshark
  • param output_file: Salva inoltre i pacchetti catturati in questo file.

Lettura da un'interfaccia live tramite ring buffer

root@kitploit:~
>>> capture = pyshark.LiveRingCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 pacchetti)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print('Appena arrivato:', packet)

Altre opzioni

  • param ring_file_size: Dimensione del file ring in kB, il valore predefinito è 1024
  • param num_ring_files: Numero di file ring da conservare, il valore predefinito è 1
  • param ring_file_name: Nome del file ring, il valore predefinito è /tmp/pyshark.pcap
  • param interface: Nome dell'interfaccia su cui sniffare. Se non specificato, prende la prima disponibile.
  • param bpf_filter: Filtro BPF da utilizzare sui pacchetti.
  • param display_filter: Filtro di visualizzazione (wireshark) da utilizzare.
  • param only_summaries: Produce solo sommari dei pacchetti, molto più veloce ma include pochissime informazioni.
  • param disable_protocol: Disabilita il rilevamento di un protocollo (tshark > versione 2)
  • param decryption_key: Chiave utilizzata per crittografare e decrittografare il traffico catturato.
  • param encryption_type: Standard di crittografia utilizzato nel traffico catturato (deve essere 'WEP', 'WPA-PWD' o 'WPA-PWK'. Il valore predefinito è WPA-PWK).
  • param tshark_path: Percorso del binario tshark
  • param output_file: Salva inoltre i pacchetti catturati in questo file.

Lettura da un'interfaccia remota live:

root@kitploit:~
>>> capture = pyshark.RemoteCapture('192.168.1.101', 'eth0')
>>> capture.sniff(timeout=50)
>>> capture

Altre opzioni

  • param remote_host: Host remoto su cui catturare (IP o nome host). Dovrebbe eseguire rpcapd.
  • param remote_interface: Interfaccia remota sulla macchina remota su cui catturare. Nota che su Windows non è il nome visualizzato del dispositivo ma il vero nome dell'interfaccia (cioè \Device\NPF_..).
  • param remote_port: Porta remota su cui il servizio rpcapd è in ascolto
  • param bpf_filter: Un filtro BPF (tcpdump) da applicare alla cattura prima di leggerla.
  • param only_summaries: Produce solo sommari dei pacchetti, molto più veloce ma include pochissime informazioni.
  • param disable_protocol: Disabilita il rilevamento di un protocollo (tshark > versione 2)
  • param decryption_key: Chiave utilizzata per crittografare e decrittografare il traffico catturato.
  • param encryption_type: Standard di crittografia utilizzato nel traffico catturato (deve essere 'WEP', 'WPA-PWD' o 'WPA-PWK'. Il valore predefinito è WPA-PWK).
  • param tshark_path: Percorso del binario tshark

Accesso ai dati dei pacchetti:

I dati possono essere accessibili in più modi. I pacchetti sono divisi in layer; prima devi raggiungere il layer appropriato e poi puoi selezionare il tuo campo.

Tutti i seguenti funzionano:

root@kitploit:~
>>> packet['ip'].dst
192.168.0.1
>>> packet.ip.src
192.168.0.100
>>> packet[2].src
192.168.0.100

Per verificare se un layer è presente in un pacchetto, puoi usare il suo nome:

root@kitploit:~
>>> 'IP' in packet
True

Per vedere tutti i possibili nomi di campo, usa l'attributo packet.layer.field_names (es. packet.ip.field_names) o la funzione di autocompletamento del tuo interprete.

Puoi anche ottenere i dati binari originali di un campo, o una descrizione chiara:

root@kitploit:~
>>> p.ip.addr.showname
Source or Destination Address: 10.0.0.10 (10.0.0.10)
# E anche alcuni nuovi attributi:
>>> p.ip.addr.int_value
167772170
>>> p.ip.addr.binary_value
b'\n\x00\x00\n'

Decrittografia delle catture di pacchetti

Pyshark supporta la decrittografia automatica delle tracce utilizzando gli standard WEP, WPA-PWD e WPA-PSK (WPA-PWD è il valore predefinito).

root@kitploit:~
>>> cap1 = pyshark.FileCapture('/tmp/capture1.cap', decryption_key='password')
>>> cap2 = pyshark.LiveCapture(interface='wi0', decryption_key='password', encryption_type='wpa-psk')

Una tupla degli standard di crittografia supportati, SUPPORTED_ENCRYPTION_STANDARDS, esiste in ogni classe di cattura.

root@kitploit:~
>>> pyshark.FileCapture.SUPPORTED_ENCRYPTION_STANDARDS
('wep', 'wpa-pwd', 'wpa-psk')
>>> pyshark.LiveCapture.SUPPORTED_ENCRYPTION_STANDARDS
('wep', 'wpa-pwd', 'wpa-psk')

Lettura da un file utilizzando un filtro di visualizzazione

I filtri di visualizzazione di Pyshark possono essere utili nell'analisi del traffico focalizzato sull'applicazione. I filtri BPF non offrono la stessa flessibilità dei filtri di visualizzazione di Wireshark.

root@kitploit:~
>>> cap1 = pyshark.FileCapture('/tmp/capture1.cap', display_filter="dns")
>>> cap2 = pyshark.LiveCapture(interface='en0', display_filter="tcp.analysis.retransmission")

Licenza

Questo progetto è concesso in licenza MIT. I contributi a questo progetto sono accettati sotto la stessa licenza.

Scarica lo strumento