Filtrer le trafic dans Wireshark

WiresharkBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez apprendre à filtrer le trafic réseau à l'aide de Wireshark, un outil indispensable pour l'analyse réseau. Vous vous exercerez à analyser un fichier de capture de paquets existant, à appliquer des filtres d'affichage pour isoler des flux spécifiques et à exporter les résultats filtrés pour un examen approfondi. Ces compétences vous permettront d'identifier des schémas réseau, de dépanner des problèmes de connectivité et de mieux comprendre les communications au sein d'un réseau.

Premiers pas avec Tshark

Avant d'explorer l'interface graphique, vous allez commencer par tshark, la version en ligne de commande de Wireshark. C'est un outil puissant pour l'analyse rapide et l'automatisation via des scripts. Dans cette étape, vous allez vérifier l'installation et effectuer une inspection de base d'un fichier de capture de paquets fourni.

  1. Tout d'abord, vérifiez que tshark est correctement installé en contrôlant sa version.

    tshark --version

    Vous devriez voir une sortie indiquant la version de Wireshark et de tshark, semblable à ceci :

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

    ls -lh capture.pcap

    La sortie affichera les détails 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é global du fichier de capture, utilisez l'utilitaire capinfos, qui est fourni avec Wireshark.

    capinfos capture.pcap

    Cette commande fournit des métadonnées sur le fichier, telles que 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 spécifie le fichier d'entrée, et -c limite le nombre de paquets affichés.

    tshark -r capture.pcap -c 5

    Cela affichera un résumé d'une ligne pour chacun des cinq premiers paquets, vous donnant 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 lignes, ce qui rend difficile la recherche d'informations spécifiques. Les filtres d'affichage sont utilisés pour restreindre la vue aux seuls paquets répondant à certains critères. Dans cette étape, vous apprendrez à appliquer des filtres de base avec tshark.

  1. Les filtres d'affichage s'appliquent à l'aide de l'option -Y (Y majuscule). Pour visualiser uniquement les paquets TCP, utilisez le filtre tcp. Affichons les cinq premiers paquets TCP du fichier.

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

    La sortie ne montrera désormais que les paquets dont le protocole est TCP.

  2. Vous pouvez également filtrer en fonction des adresses IP. Pour voir 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

    Notez l'utilisation de == pour une correspondance exacte.

  3. Les filtres peuvent être combinés à l'aide d'opérateurs logiques comme && (ET). Pour trouver les paquets TCP provenant de l'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 pour une analyse ultérieure. L'option -w spécifie le fichier de sortie. Enregistrons 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 bien été créé.

    ls -lh filtered_tcp.pcap

    Vous verrez votre nouveau fichier de capture, plus petit, listé dans le répertoire.

Exploration du trafic avec l'interface graphique Wireshark

Bien que tshark soit excellent pour l'automatisation, l'interface graphique (GUI) de Wireshark offre un environnement riche et interactif pour l'analyse approfondie des paquets. Dans cette étape, vous allez lancer l'interface Wireshark et explorer ses principaux composants.

  1. Lancez l'application Wireshark depuis votre terminal. Important : assurez-vous d'utiliser l'interface de bureau (Desktop Interface) et non une interface terminal classique, car Wireshark est une application graphique qui nécessite un environnement visuel pour fonctionner correctement. L'esperluette & à la fin permet d'exécuter l'application en arrière-plan, libérant ainsi votre terminal pour d'autres commandes.

    wireshark &

    Note : Si vous essayez d'exécuter cette commande dans un terminal sans environnement de bureau, Wireshark ne pourra pas démarrer. Utilisez toujours l'interface Desktop pour les applications GUI.

    Interface de bureau Wireshark
  2. La fenêtre principale de Wireshark s'affiche. Comme nous analysons un fichier existant, vous n'avez pas besoin de sélectionner une interface réseau. Ouvrez plutôt le fichier capture.pcap.

    • Allez dans la barre de menu et cliquez sur File -> Open....
    • Dans la boîte de dialogue, naviguez vers /home/labex/project et sélectionnez capture.pcap.
    • Cliquez sur le bouton Open.
  3. La fenêtre principale est maintenant remplie avec les paquets du fichier. Prenez un moment pour vous familiariser avec les trois panneaux principaux :

    Fenêtre principale de Wireshark
    • Panneau de la liste des paquets (Haut) : Une liste de tous les paquets de la capture, avec des colonnes pour le numéro du paquet, l'heure, la source, la destination, le protocole et d'autres informations récapitulatives.
    • Panneau des détails du paquet (Milieu) : Une vue détaillée et extensible des couches de protocole pour le paquet actuellement sélectionné. Vous pouvez développer chaque couche (ex: Ethernet, IP, TCP) pour voir ses champs.
    • Panneau des octets du paquet (Bas) : Les données brutes du paquet sélectionné, affichées aux formats hexadécimal et ASCII.
  4. Cliquez sur différents paquets dans le panneau supérieur et observez comment les informations dans les panneaux de détails et d'octets se mettent à jour. Cette exploration interactive est l'une des fonctionnalités les plus puissantes de Wireshark.

Application de filtres d'affichage dans l'interface graphique

La syntaxe des filtres d'affichage que vous avez apprise avec tshark fonctionne de manière identique dans l'interface graphique de Wireshark. L'interface offre un retour visuel immédiat, facilitant la construction et le test de filtres complexes.

  1. Localisez la barre de filtre d'affichage en haut de la fenêtre Wireshark. Il s'agit d'un long champ de saisie de texte, contenant souvent le texte indicatif "Apply a display filter...".

  2. Filtrons le trafic HTTP. Tapez http dans la barre de filtre et appuyez sur Entrée ou cliquez sur le bouton d'application (une flèche à droite de la barre).

    http
    Filtre HTTP Wireshark

    Le panneau de la liste des paquets se mettra instantanément à jour pour n'afficher que les paquets HTTP. Notez que la barre de filtre devient verte, indiquant une syntaxe valide. Si vous tapez un filtre invalide, elle deviendra rouge.

  3. Maintenant, cherchons tout le trafic DNS. Effacez le filtre précédent, tapez dns dans la barre de filtre et appuyez sur Entrée.

    dns

    Vous verrez alors toutes les requêtes et réponses du système de noms de domaine (DNS) présentes dans la capture.

  4. Vous pouvez combiner les filtres tout comme vous l'avez fait avec tshark. Pour trouver le trafic HTTP impliquant l'adresse IP 192.168.3.131 (qu'elle soit source ou destination), utilisez le filtre ip.addr combiné au filtre http.

    http && ip.addr == 192.168.3.131
    Filtre combiné Wireshark

    Cette combinaison puissante vous permet de cibler des conversations spécifiques. Expérimentez avec d'autres filtres, tels que tcp.port == 80 (pour le trafic sur le port HTTP standard) ou udp (pour le trafic UDP). Pour effacer un filtre et revoir tous les paquets, cliquez sur le bouton X dans la barre de filtre.

Exportation des données filtrées

Après avoir filtré le trafic pour isoler un événement d'intérêt, il est souvent nécessaire d'exporter les résultats pour un rapport, un partage ou une analyse plus poussée dans d'autres outils. Wireshark et tshark offrent plusieurs méthodes pour exporter des données.

  1. Tout d'abord, dans l'interface graphique de Wireshark, appliquez le filtre http comme à l'étape précédente.

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

    • Allez dans File -> Export Specified Packets....
    • Dans la boîte de dialogue, assurez-vous que le bouton radio Displayed est sélectionné sous "All Packets".
    • Nommez le fichier http_capture.pcap et enregistrez-le dans votre répertoire /home/labex/project.
    Exportation de paquets spécifiés
  3. Vous pouvez également exporter le résumé des paquets sous forme de fichier texte ou CSV. Pour exporter en CSV :

    • Allez dans File -> Export Packet Dissections -> As CSV....
    • Assurez-vous 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 en utilisant tshark en ligne de commande. C'est très utile pour l'automatisation. La commande suivante lit le fichier capture.pcap d'origine, filtre pour http et exporte des champs spécifiques vers 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 : Spécifie le format de sortie.
    • -e ... : Spécifie les champs (colonnes) à exporter.
    • -E header=y : Ajoute une ligne d'en-tête.
    • -E separator=, : Utilise une virgule comme séparateur.
  5. Vérifiez que vos fichiers exportés ont bien été créés.

    ls -lh http_*

    Vous devriez voir les fichiers http_capture.pcap, http_packets.csv et http_export_cli.csv dans votre répertoire.

Résumé

Dans cet atelier, vous avez appris les bases 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 spécifiques, d'abord avec tshark, puis dans l'interface graphique interactive de Wireshark. Enfin, vous avez appris à exporter vos résultats filtrés vers de nouveaux fichiers de capture et des fichiers CSV lisibles par l'homme pour le reporting et l'analyse. Ces compétences fondamentales constituent la base de toute tâche d'analyse réseau ou de dépannage.