Filtrer le trafic dans Wireshark

WiresharkBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous apprendrez à filtrer le trafic réseau avec Wireshark, un outil essentiel pour l’analyse des réseaux. Vous vous exercerez à analyser un fichier de paquets préalablement capturé, à appliquer des filtres d’affichage pour isoler un trafic précis et à exporter les résultats pour les examiner plus en détail. Ces compétences vous aideront à identifier les schémas de trafic réseau, à résoudre les problèmes de connectivité et à comprendre les communications réseau.

Découvrir Tshark

Avant d’utiliser l’interface graphique, vous allez commencer avec tshark, la version en ligne de commande de Wireshark. C’est un outil puissant pour effectuer rapidement des analyses et créer des scripts. Dans cette étape, vous vérifierez l’installation et réaliserez une première inspection d’un fichier de capture de paquets fourni.

  1. Commencez par vérifier que tshark est correctement installé en affichant sa version.

    tshark --version
    

    La sortie doit indiquer les versions de Wireshark et de tshark, comme dans l’exemple suivant :

    TShark (Wireshark) x.x.x (Git vx.x.x packaged as x.x.x-1)
    ...
    
  2. Un fichier de capture d’exemple nommé capture.pcap a été placé dans le répertoire de votre projet. Utilisez la commande ls pour vérifier sa présence.

    ls -lh capture.pcap
    

    La sortie affiche les informations du fichier, notamment sa taille et son nom.

    -rw-rw-r-- 1 labex labex 9.1M Oct 24  2015 capture.pcap
    
  3. Pour obtenir un résumé général du fichier de capture, utilisez l’outil capinfos, fourni avec Wireshark.

    capinfos capture.pcap
    

    Cette commande fournit des métadonnées sur le fichier, notamment le nombre de paquets, la durée de la capture et la taille moyenne des paquets.

    File name:           capture.pcap
    File type:           Wireshark/tcpdump/... - pcap
    File encapsulation:  Ethernet
    File timestamp precision:  microseconds (6)
    Packet size limit:   file hdr: 65535 bytes
    Number of packets:   14 k
    File size:           9444 kB
    Data size:           9216 kB
    Capture duration:    298.505344 seconds
    First packet time:   2011-01-26 02:52:22.484409
    Last packet time:    2011-01-26 02:57:20.989753
    Data byte rate:      30 kBps
    Data bit rate:       247 kbps
    Average packet size: 646.28 bytes
    Average packet rate: 47 packets/s
    SHA256:              77d06d3f33f1a95fb9f2610f20ead8ce978449077d6ba22d4945b85bd48f75d1
    RIPEMD160:           68e950b2e438c7be011a46646ddfc8105b65b339
    SHA1:                06e502dca8dbfe8e6a9cabc61f722d94756f6db9
    Strict time order:   True
    Number of interfaces in file: 1
    Interface #0 info:
                         Encapsulation = Ethernet (1 - ether)
                         Capture length = 65535
                         Time precision = microseconds (6)
                         Time ticks per second = 1000000
                         Number of stat entries = 0
                         Number of packets = 14261
    
  4. Enfin, utilisez tshark pour lire les cinq premiers paquets du fichier. L’option -r indique le fichier d’entrée et -c limite le nombre de paquets affichés.

    tshark -r capture.pcap -c 5
    

    Cette commande affiche un résumé sur une ligne pour chacun des cinq premiers paquets, ce qui vous donne un aperçu rapide du trafic.

        1   0.000000 192.168.3.131 → 72.14.213.138 HTTP 997 GET /complete/search?client=chrome&hl=en-US&q=cr HTTP/1.1
        2   0.029841 72.14.213.138 → 192.168.3.131 HTTP 440 HTTP/1.1 200 OK  (text/javascript)
        3   0.223883 192.168.3.131 → 72.14.213.102 TCP 66 55950 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1
        4   0.229423 192.168.3.131 → 72.14.213.138 TCP 54 57011 → 80 [ACK] Seq=944 Ack=387 Win=16192 Len=0
        5   0.242649 72.14.213.102 → 192.168.3.131 TCP 66 80 → 55950 [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 SACK_PERM=1 WS=64
    

Filtrage de base avec Tshark

Les captures de paquets peuvent contenir des milliers de paquets, ce qui rend difficile la recherche d’informations précises. Les filtres d’affichage permettent de limiter la vue aux seuls paquets correspondant à certains critères. Dans cette étape, vous apprendrez à appliquer des filtres de base avec tshark.

  1. Les filtres d’affichage s’appliquent avec l’option -Y (Y majuscule). Pour afficher uniquement les paquets TCP, utilisez le filtre tcp. Affichez les cinq premiers paquets TCP du fichier.

    tshark -r capture.pcap -Y "tcp" -c 5
    

    La sortie ne contient alors que les paquets dont le protocole est TCP.

  2. Vous pouvez également filtrer les paquets à partir d’adresses IP. Pour afficher tous les paquets provenant de l’adresse IP source 192.168.3.131, utilisez le filtre ip.src.

    tshark -r capture.pcap -Y "ip.src == 192.168.3.131" -c 5
    

    Remarquez l’utilisation de == pour effectuer une correspondance exacte.

  3. Vous pouvez combiner les filtres avec des opérateurs logiques tels que && (ET). Pour rechercher les paquets TCP provenant de l’adresse IP source 192.168.3.131, combinez les deux filtres précédents.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131"
    
  4. Vous pouvez enregistrer le résultat filtré dans un nouveau fichier de capture afin de l’analyser ultérieurement. L’option -w indique le fichier de sortie. Enregistrez les paquets TCP filtrés dans un fichier nommé filtered_tcp.pcap.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131" -w filtered_tcp.pcap
    
  5. Vérifiez que le nouveau fichier a été créé.

    ls -lh filtered_tcp.pcap
    

    Le nouveau fichier de capture, plus petit, doit apparaître dans le répertoire.

Explorer le trafic avec l’interface graphique de Wireshark

tshark est particulièrement adapté à l’automatisation, tandis que l’interface graphique de Wireshark fournit un environnement interactif riche pour analyser les paquets en détail. Dans cette étape, vous lancerez l’interface graphique de Wireshark et découvrirez ses principaux composants.

  1. Lancez l’application Wireshark depuis votre terminal. Important : utilisez l’interface Desktop et non une interface Terminal autonome, car Wireshark est une application graphique qui nécessite un environnement graphique pour fonctionner correctement. Le caractère & placé à la fin de la commande lance l’application en arrière-plan et libère le terminal pour d’autres commandes.

    wireshark &
    

    Laissez Wireshark ouvert pendant cette étape et lors de l’exécution de la vérification de l’étape.

    Remarque : si vous exécutez cette commande dans un terminal autonome sans environnement de bureau, Wireshark ne démarrera pas. Utilisez toujours l’interface Desktop pour les applications graphiques.

    Interface Desktop de Wireshark

  2. La fenêtre principale de Wireshark apparaît. Comme vous analysez un fichier existant, vous n’avez pas besoin de sélectionner une interface réseau. Ouvrez plutôt le fichier capture.pcap.

    • Dans la barre de menus, cliquez sur File -> Open....
    • Dans la boîte de dialogue de sélection de fichiers, accédez à /home/labex/project, puis sélectionnez capture.pcap.
    • Cliquez sur le bouton Open.
  3. La fenêtre principale affiche maintenant les paquets du fichier. Prenez un moment pour vous familiariser avec les trois panneaux principaux :

    Fenêtre principale de Wireshark

    • Panneau Packet List (en haut) : liste de tous les paquets de la capture, avec des colonnes indiquant le numéro du paquet, l’heure, la source, la destination, le protocole et d’autres informations récapitulatives.
    • Panneau Packet Details (au milieu) : vue détaillée et extensible des couches de protocole du paquet actuellement sélectionné dans le panneau Packet List. Vous pouvez développer chaque couche, par exemple Ethernet, IP ou TCP, pour afficher ses champs.
    • Panneau Packet Bytes (en bas) : données brutes du paquet sélectionné, affichées aux formats hexadécimal et ASCII.
  4. Cliquez sur différents paquets dans le panneau Packet List et observez la mise à jour des informations dans les panneaux Packet Details et Packet Bytes. Cette exploration interactive constitue l’une des fonctions les plus puissantes de Wireshark.

Appliquer des filtres d’affichage dans l’interface graphique

La syntaxe des filtres d’affichage que vous avez apprise avec tshark fonctionne de la même manière dans l’interface graphique de Wireshark. L’interface graphique fournit un retour visuel immédiat, ce qui facilite la création et le test de filtres complexes.

  1. Repérez la barre de filtre d’affichage en haut de la fenêtre Wireshark. Il s’agit d’un long champ de saisie qui affiche souvent Apply a display filter... comme texte indicatif.

  2. Filtrez le trafic HTTP. Saisissez http dans la barre de filtre, puis appuyez sur Enter ou cliquez sur le bouton Apply (la flèche située à droite de la barre).

    http
    

    Filtre HTTP de Wireshark

    Le panneau Packet List se met immédiatement à jour et affiche uniquement les paquets HTTP. La barre de filtre devient verte, ce qui indique que la syntaxe du filtre est valide. Si vous saisissez un filtre invalide, elle devient rouge.

  3. Recherchez maintenant tout le trafic DNS. Effacez le filtre précédent, saisissez dns dans la barre de filtre, puis appuyez sur Enter.

    dns
    

    Vous voyez alors toutes les requêtes et réponses du Domain Name System présentes dans la capture.

  4. Vous pouvez combiner les filtres comme avec tshark. Pour rechercher le trafic HTTP impliquant l’adresse IP 192.168.3.131, en tant que source ou destination, utilisez le filtre ip.addr combiné au filtre http.

    http && ip.addr == 192.168.3.131
    

    Filtre HTTP de Wireshark

    Cette combinaison permet de se concentrer sur des communications précises. Essayez d’autres filtres, comme tcp.port == 80 (pour le trafic utilisant le port HTTP standard) ou udp (pour le trafic UDP). Pour supprimer un filtre et afficher de nouveau tous les paquets, cliquez sur le bouton X dans la barre de filtre.

Exporter les données filtrées

Après avoir filtré le trafic pour isoler un événement intéressant, vous devez souvent exporter les résultats afin de les intégrer à un rapport, de les partager ou de les analyser dans d’autres outils. Wireshark et tshark proposent plusieurs méthodes d’exportation.

  1. Commencez par appliquer le filtre http dans l’interface graphique de Wireshark, comme à l’étape précédente.

  2. Pour enregistrer uniquement les paquets affichés (filtrés) dans un nouveau fichier de capture :

    • Dans le menu, cliquez sur File -> Export Specified Packets....
    • Dans la boîte de dialogue, vérifiez que le bouton radio Displayed est sélectionné sous All Packets.
    • Nommez le fichier http_capture.pcap et enregistrez-le dans le répertoire /home/labex/project.

    Exporter les paquets spécifiés dans Wireshark

  3. Vous pouvez également exporter le résumé des paquets dans un fichier texte ou CSV. Pour l’exporter au format CSV :

    • Dans le menu, cliquez sur File -> Export Packet Dissections -> As CSV....
    • Vérifiez que Displayed est sélectionné pour All Packets.
    • Nommez le fichier http_packets.csv et enregistrez-le dans votre répertoire de projet.
  4. Vous pouvez effectuer les mêmes opérations d’exportation avec tshark en ligne de commande. Cette méthode est utile pour l’automatisation. La commande suivante lit le fichier capture.pcap d’origine, applique le filtre http et exporte certains champs dans un fichier CSV.

    tshark -r capture.pcap -Y "http" -T fields -e frame.number -e ip.src -e ip.dst -e http.request.method -e http.host -E header=y -E separator=, > http_export_cli.csv
    
    • -T fields : indique le format de sortie.
    • -e ... : indique les champs (colonnes) à exporter.
    • -E header=y : ajoute une ligne d’en-tête.
    • -E separator=, : utilise la virgule comme séparateur.
  5. Vérifiez que les fichiers exportés ont bien été créés.

    ls -lh http_*
    

    Les fichiers http_capture.pcap, http_packets.csv et http_export_cli.csv doivent apparaître dans votre répertoire.

Résumé

Dans cet atelier, vous avez appris les principes fondamentaux du filtrage du trafic réseau avec Wireshark et son équivalent en ligne de commande, tshark. Vous avez commencé par inspecter un fichier de capture avec tshark et capinfos. Vous vous êtes ensuite exercé à appliquer des filtres d’affichage pour isoler des protocoles et des adresses IP précis, d’abord avec tshark, puis dans l’interface graphique interactive de Wireshark. Enfin, vous avez appris à exporter les résultats filtrés dans de nouveaux fichiers de capture et dans des fichiers CSV lisibles par l’utilisateur, pour les utiliser dans des rapports et des analyses. Ces compétences de base sont essentielles pour toute tâche d’analyse réseau ou de dépannage.