Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pyshark — Wrapper Python pour tshark, permettant l'analyse de paquets en Python à l'aide des dissecteurs de Wireshark. | Kitploit
Outils/GitHubGitHub/kiminewt/pyshark
Sniffing et Analyse de PaquetsAudit Wi-FiOutils de Chiffrement/DéchiffrementCriminalistique RéseauAnalyse ForensiqueSécurité RéseauSécurité Sans FilCriminalistique Numérique
GitHubkiminewt/pyshark

pyshark

Wrapper Python pour tshark, permettant l'analyse de paquets en Python à l'aide des dissecteurs de Wireshark.

Voir le dépôt
2.5k452il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

pyshark

Wrapper Python pour tshark, permettant l'analyse de paquets Python à l'aide des dissecteurs de Wireshark.

Documentation détaillée : http://kiminewt.github.io/pyshark

À la recherche de contributeurs – pour diverses raisons, j'ai du mal à trouver du temps pour maintenir et améliorer le package en ce moment. Toute pull-request sera examinée et si quelqu'un est intéressé et convient, je serai ravi de l'inclure dans le projet. N'hésitez pas à m'écrire à dorgreen1 at gmail.

Il existe plusieurs modules d'analyse de paquets Python, celui-ci est différent car il n'analyse en réalité aucun paquet, il utilise simplement la capacité de tshark (l'utilitaire en ligne de commande de Wireshark) à exporter des XML pour utiliser son analyse.

Ce package permet l'analyse à partir d'un fichier de capture ou d'une capture en direct, en utilisant tous les dissecteurs Wireshark que vous avez installés. Testé sur Windows/Linux.

Installation

Versions supportées

Python 3.7+ est supporté. Une version Python 2 non supportée existe sous pyshark-legacy.

Supporte toutes les versions modernes de tshark / Wireshark, mais certaines fonctionnalités peuvent être indisponibles sur les versions plus anciennes.

Toutes les plateformes

Exécutez simplement la commande suivante pour installer la dernière version depuis pypi

root@kitploit:~
pip install pyshark

Ou installez depuis le dépôt git :

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

Mac OS X

Vous devrez peut-être installer libxml, ce qui peut être inattendu. Si vous recevez une erreur de clang ou un message d'erreur à propos de libxml, exécutez ceci :

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

Vous devrez probablement accepter un CLUF pour XCode, soyez prêt à cliquer sur une boîte de dialogue "Accepter" dans l'interface graphique.

Utilisation

Lire depuis un fichier de capture :

root@kitploit:~
>>> import pyshark
>>> cap = pyshark.FileCapture('/tmp/mycapture.cap')
>>> cap
<FileCapture /tmp/mycapture.cap (589 packets)>
>>> print cap[0]
Packet (Length: 698)
Layer ETH:
        Destination: BLANKED
        Source: BLANKED
        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 [correct]
        Source: BLANKED
        Destination: BLANKED
  ...

Autres options

  • param keep_packets: Indique s'il faut conserver les paquets après les avoir lus via next(). Utilisé pour économiser la mémoire lors de la lecture de grandes captures.
  • param input_file: Soit un chemin, soit un objet de type fichier contenant soit un fichier de capture de paquets (PCAP, PCAP-NG...), soit un XML TShark.
  • param display_filter: Un filtre d'affichage (Wireshark) à appliquer sur la capture avant de la lire.
  • param only_summaries: Ne produire que des résumés de paquets, beaucoup plus rapide mais contient très peu d'informations.
  • param disable_protocol: Désactiver la détection d'un protocole (tshark > version 2)
  • param decryption_key: Clé utilisée pour chiffrer et déchiffrer le trafic capturé.
  • param encryption_type: Standard de chiffrement utilisé dans le trafic capturé (doit être soit 'WEP', 'WPA-PWD', soit 'WPA-PWK'. Par défaut : WPA-PWK).
  • param tshark_path: Chemin du binaire tshark

Lire depuis une interface en direct :

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

for packet in capture.sniff_continuously(packet_count=5):
    print('Just arrived:', packet)

Autres options

  • param interface: Nom de l'interface à écouter. Si non fourni, prend la première disponible.
  • param bpf_filter: Filtre BPF à utiliser sur les paquets.
  • param display_filter: Filtre d'affichage (Wireshark) à utiliser.
  • param only_summaries: Ne produire que des résumés de paquets, beaucoup plus rapide mais contient très peu d'informations.
  • param disable_protocol: Désactiver la détection d'un protocole (tshark > version 2)
  • param decryption_key: Clé utilisée pour chiffrer et déchiffrer le trafic capturé.
  • param encryption_type: Standard de chiffrement utilisé dans le trafic capturé (doit être soit 'WEP', 'WPA-PWD', soit 'WPA-PWK'. Par défaut : WPA-PWK).
  • param tshark_path: Chemin du binaire tshark
  • param output_file: Enregistrer en plus les paquets capturés dans ce fichier.

Lire depuis une interface en direct en utilisant un tampon tournant (ring buffer)

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

for packet in capture.sniff_continuously(packet_count=5):
    print('Just arrived:', packet)

Autres options

  • param ring_file_size: Taille du fichier tournant en ko, défaut 1024
  • param num_ring_files: Nombre de fichiers tournants à conserver, défaut 1
  • param ring_file_name: Nom du fichier tournant, défaut /tmp/pyshark.pcap
  • param interface: Nom de l'interface à écouter. Si non fourni, prend la première disponible.
  • param bpf_filter: Filtre BPF à utiliser sur les paquets.
  • param display_filter: Filtre d'affichage (Wireshark) à utiliser.
  • param only_summaries: Ne produire que des résumés de paquets, beaucoup plus rapide mais contient très peu d'informations
  • param disable_protocol: Désactiver la détection d'un protocole (tshark > version 2)
  • param decryption_key: Clé utilisée pour chiffrer et déchiffrer le trafic capturé.
  • param encryption_type: Standard de chiffrement utilisé dans le trafic capturé (doit être soit 'WEP', 'WPA-PWD', soit 'WPA-PWK'. Par défaut : WPA-PWK).
  • param tshark_path: Chemin du binaire tshark
  • param output_file: Enregistrer en plus les paquets capturés dans ce fichier.

Lire depuis une interface distante en direct :

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

Autres options

  • param remote_host: L'hôte distant sur lequel capturer (IP ou nom d'hôte). Doit exécuter rpcapd.
  • param remote_interface: L'interface distante sur la machine distante à utiliser pour la capture. Notez que sous Windows, ce n'est pas le nom d'affichage du périphérique mais le vrai nom de l'interface (i.e. \Device\NPF_..).
  • param remote_port: Le port distant sur lequel le service rpcapd écoute.
  • param bpf_filter: Un filtre BPF (tcpdump) à appliquer sur la capture avant la lecture.
  • param only_summaries: Ne produire que des résumés de paquets, beaucoup plus rapide mais contient très peu d'informations
  • param disable_protocol: Désactiver la détection d'un protocole (tshark > version 2)
  • param decryption_key: Clé utilisée pour chiffrer et déchiffrer le trafic capturé.
  • param encryption_type: Standard de chiffrement utilisé dans le trafic capturé (doit être soit 'WEP', 'WPA-PWD', soit 'WPA-PWK'. Par défaut : WPA-PWK).
  • param tshark_path: Chemin du binaire tshark

Accéder aux données des paquets :

Les données peuvent être consultées de plusieurs façons. Les paquets sont divisés en couches, vous devez d'abord atteindre la couche appropriée, puis sélectionner votre champ.

Tous les éléments suivants fonctionnent :

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

Pour tester si une couche est présente dans un paquet, vous pouvez utiliser son nom :

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

Pour voir tous les noms de champs possibles, utilisez l'attribut packet.layer.field_names (par exemple packet.ip.field_names) ou la fonction d'autocomplétion de votre interpréteur.

Vous pouvez également obtenir les données binaires originales d'un champ, ou une description agréable :

root@kitploit:~
>>> p.ip.addr.showname
Source or Destination Address: 10.0.0.10 (10.0.0.10)
# Et aussi quelques nouveaux attributs :
>>> p.ip.addr.int_value
167772170
>>> p.ip.addr.binary_value
b'\n\x00\x00\n'

Déchiffrer des captures de paquets

Pyshark prend en charge le déchiffrement automatique des traces en utilisant les normes WEP, WPA-PWD et WPA-PSK (WPA-PWD est la valeur par défaut).

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

Un tuple des normes de chiffrement supportées, SUPPORTED_ENCRYPTION_STANDARDS, existe dans chaque classe de capture.

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

Lire depuis un fichier en utilisant un filtre d'affichage

Les filtres d'affichage de Pyshark peuvent être utiles pour analyser le trafic axé sur les applications. Les filtres BPF n'offrent pas autant de flexibilité que les filtres d'affichage de Wireshark.

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

Licence

Ce projet est sous licence MIT. Les contributions à ce projet sont acceptées sous la même licence.

Télécharger l’outil