Capturer des paquets avec Tshark

WiresharkWiresharkBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à utiliser Tshark, la version en ligne de commande de Wireshark, pour capturer et analyser des paquets réseau. Vous allez pratiquer des compétences essentielles telles que la sélection d'interface, le lancement de la capture de paquets, le filtrage des protocoles et les techniques de sauvegarde de la sortie.

Cet exercice pratique couvre l'installation de Tshark, la configuration des autorisations et les opérations de base des commandes pour une surveillance réseau efficace. Ces compétences fondamentales d'analyse de paquets sont précieuses pour la résolution de problèmes réseau et les enquêtes de sécurité.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") subgraph Lab Skills wireshark/installation -.-> lab-549928{{"Capturer des paquets avec Tshark"}} wireshark/interface -.-> lab-549928{{"Capturer des paquets avec Tshark"}} wireshark/packet_capture -.-> lab-549928{{"Capturer des paquets avec Tshark"}} wireshark/display_filters -.-> lab-549928{{"Capturer des paquets avec Tshark"}} wireshark/export_packets -.-> lab-549928{{"Capturer des paquets avec Tshark"}} end

Installer Tshark

Dans cette étape, vous allez installer Tshark, un puissant analyseur de protocoles réseau en ligne de commande inclus avec Wireshark. Tshark est la version terminale de Wireshark et vous permet de capturer et d'analyser le trafic réseau directement depuis la ligne de commande sans interface graphique. Cela est particulièrement utile lorsque vous travaillez sur des serveurs distants ou lorsque vous préférez des flux de travail basés sur le clavier.

  1. Tout d'abord, mettez à jour la liste des paquets pour vous assurer d'obtenir la dernière version de Tshark. C'est une bonne pratique avant d'installer tout nouveau logiciel sur les systèmes Linux :

    sudo apt update
  2. Installez Tshark en utilisant la commande suivante. Le drapeau -y confirme automatiquement toutes les invitations pendant l'installation :

    sudo apt install -y tshark

    Pendant l'installation, vous pouvez voir une invitation concernant l'autorisation des non-superutilisateurs à capturer des paquets. C'est une considération de sécurité importante - en sélectionnant "Oui", vous autoriserez les utilisateurs normaux à exécuter des captures de paquets, ce qui est ce que nous voulons pour ce laboratoire.

  3. Une fois l'installation terminée, vérifiez que Tshark est correctement installé en vérifiant sa version. Cette commande confirme également que le chemin d'installation est correctement configuré dans votre système :

    tshark --version

    Vous devriez voir une sortie similaire à :

    TShark (Wireshark) 3.6.12 (Git v3.6.12 packaged as 3.6.12-1~ubuntu20.04.0)
  4. Pour vous assurer que Tshark peut capturer des paquets sans avoir besoin de privilèges root (ce qui serait inconvénient et moins sécurisé), nous devons ajouter votre utilisateur au groupe wireshark. Ce groupe a les autorisations nécessaires pour la capture de paquets :

    sudo usermod -aG wireshark $USER

    Note : Normalement, vous devriez vous déconnecter et vous reconnecter pour que ce changement de groupe prenne effet, mais dans cet environnement de laboratoire, le changement devrait être immédiat. Dans un système réel, vous devriez redémarrer votre session.

Sélectionner une interface

Dans cette étape, vous allez identifier et sélectionner une interface réseau pour la capture de paquets à l'aide de Tshark. Les interfaces réseau sont les points de connexion entre votre ordinateur et un réseau, et vous devez choisir la bonne pour surveiller le trafic réseau. Imaginez-les comme des portes vers votre ordinateur - vous devez choisir la bonne porte par laquelle le trafic réseau passe.

  1. Tout d'abord, liste toutes les interfaces réseau disponibles sur votre système :

    tshark -D

    Cette commande affichera toutes les interfaces réseau que votre ordinateur peut utiliser pour capturer des paquets. La sortie ressemble généralement à ceci :

    1. eth0
    2. any (Pseudo-appareil qui capture sur toutes les interfaces)
    3. lo (Bouclage)

    Chaque interface a un but différent. eth0 est généralement votre connexion Ethernet filaire, tandis que wlan0 serait votre connexion sans fil si elle est disponible.

  2. Examinez attentivement la sortie pour identifier votre interface réseau active. Pour la plupart des cas pratiques, vous voudrez utiliser :

    • eth0 pour une connexion Ethernet (courant dans les laboratoires et les machines virtuelles)
    • wlan0 pour une connexion sans fil (si votre ordinateur a le WiFi)
    • any pour capturer sur toutes les interfaces simultanément (utile mais peut être bruyant)
  3. Pour ce laboratoire, nous utiliserons l'interface eth0 car elle est couramment disponible dans les environnements virtuels. Avant de continuer, vérifions que cette interface existe et est active en exécutant :

    ip link show eth0

    Cette commande affiche des informations détaillées sur l'interface eth0. Vous devriez voir une sortie indiquant que l'interface existe et son état actuel (UP/DOWN). Si la commande renvoie une erreur, l'interface peut ne pas être disponible sur votre système.

  4. Maintenant, testons notre sélection d'interface avec une capture rapide de paquets. Exécutez cette commande pour capturer exactement 5 paquets depuis l'interface eth0 :

    tshark -i eth0 -c 5

    Le drapeau -i spécifie quelle interface utiliser, et -c 5 indique à Tshark de s'arrêter après avoir capturé 5 paquets. C'est un bon moyen de vérifier que votre sélection d'interface fonctionne avant de faire des captures plus longues. Les paquets apparaîtront dans votre terminal au fur et à mesure qu'ils sont capturés.

Démarrer la capture de paquets

Dans cette étape, vous allez commencer à capturer le trafic réseau en direct à l'aide de Tshark sur l'interface que vous avez sélectionnée à l'étape précédente. La capture de paquets est essentielle pour l'analyse réseau car elle vous permet de surveiller et d'examiner toutes les communications réseau passant par votre interface sélectionnée. Imaginez cela comme la mise en place d'un microphone pour enregistrer toutes les conversations se déroulant sur un canal réseau spécifique.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire où nous allons travailler :

    cd ~/project

    Cela garantit que tous vos fichiers de paquets capturés seront enregistrés au bon endroit et maintient votre espace de travail organisé.

  2. Démarrez une capture de paquets de base sur votre interface sélectionnée (eth0) avec la commande suivante :

    tshark -i eth0

    Le drapeau -i indique à Tshark sur quelle interface écouter (dans ce cas, eth0). Cette commande commence à capturer tous les paquets sur l'interface eth0 et les affiche en temps réel dans votre terminal. Chaque ligne représente un seul paquet réseau avec des détails sur sa source, sa destination, le protocole et d'autres caractéristiques.

  3. Laissez la capture s'exécuter pendant environ 30 secondes pour collecter un peu de trafic. Vous verrez une sortie similaire à :

    1 0.000000000 192.168.1.2 → 192.168.1.1 TCP 74 55922 → 80 [SYN] Seq=0 Win=64240 Len=0
    2 0.000123456 192.168.1.1 → 192.168.1.2 TCP 74 80 → 55922 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0

    Cet exemple montre un échange de trois paquets (TCP handshake) entre deux appareils. La première ligne montre un paquet SYN initiant une connexion, tandis que la deuxième ligne montre la réponse (SYN-ACK).

  4. Pour arrêter la capture, appuyez sur Ctrl+C dans votre terminal. Ce raccourci clavier envoie un signal d'interruption à Tshark. L'outil affichera ensuite des statistiques de capture telles que :

    ^C123 packets captured

    Ce résumé vous indique combien de paquets ont été capturés pendant votre session.

  5. Pour une capture plus contrôlée, vous pouvez spécifier le nombre exact de paquets à capturer (par exemple, 50 paquets) :

    tshark -i eth0 -c 50

    Le drapeau -c signifie "compte" et fait arrêter automatiquement Tshark après avoir capturé le nombre spécifié de paquets. Cela est utile lorsque vous avez seulement besoin d'un échantillon de trafic réseau plutôt qu'une capture continue.

Filtrer par protocole

Dans cette étape, vous allez apprendre à filtrer le trafic réseau par des protocoles spécifiques en utilisant Tshark. Le filtrage par protocole est essentiel car les réseaux transportent de nombreux types de trafic simultanément. En filtrant, vous pouvez vous concentrer sur des protocoles particuliers qui vous intéressent tout en ignorant les paquets non pertinents, rendant votre analyse plus efficace.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire où nous allons travailler. Cela aide à organiser vos fichiers de projet :

    cd ~/project
  2. Commençons par le trafic TCP, qui est utilisé par de nombreux services courants tels que la navigation web (HTTP/HTTPS) et le shell sécurisé (SSH). La commande suivante capture 20 paquets TCP :

    tshark -i eth0 -f "tcp" -c 20

    Le drapeau -f spécifie le filtre de capture, tandis que -c limite le nombre de paquets capturés.

  3. Essayons maintenant de capturer le trafic UDP, qui est utilisé pour les communications légères telles que les requêtes DNS et les services VoIP. Cette commande capture 10 paquets UDP :

    tshark -i eth0 -f "udp" -c 10
  4. Pour les paquets ICMP (utilisés par les outils de diagnostic réseau tels que ping), utilisez cette commande pour capturer 5 paquets :

    tshark -i eth0 -f "icmp" -c 5
  5. Vous pouvez combiner des filtres pour capturer plusieurs protocoles simultanément. Cet exemple capture à la fois le trafic DNS (port UDP 53) et le trafic HTTP (port TCP 80), pour un total de 15 paquets :

    tshark -i eth0 -f "port 53 or port 80" -c 15
  6. Pour un filtrage plus précis après la capture, utilisez des filtres d'affichage avec l'option -Y. Cette commande capture 30 paquets mais n'affiche que le trafic HTTP ou DNS dans la sortie :

    tshark -i eth0 -c 30 -Y "http or dns"

    Les filtres d'affichage sont traités après la capture, permettant un filtrage plus complexe sans affecter ce qui est enregistré.

Sauvegarder la sortie de capture

Dans cette étape, vous allez apprendre à sauvegarder le trafic réseau capturé dans des fichiers pour une analyse ultérieure. Sauvegarder les captures de paquets est crucial car cela vous permet de revoir l'activité réseau plus tard, de partager vos résultats avec les membres de votre équipe ou d'effectuer une analyse détaillée sans avoir besoin de capturer à nouveau le trafic en direct. Le format PCAP (Packet CAPture) est le format de fichier standard utilisé par la plupart des outils d'analyse réseau.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire où vous souhaitez sauvegarder vos fichiers de capture. Le répertoire de projet est un bon endroit pour organiser votre travail :

    cd ~/project
  2. La commande de base pour sauvegarder les paquets capturés utilise le drapeau -w pour spécifier le fichier de sortie. Cet exemple capture 50 paquets depuis l'interface eth0 et les sauvegarde au format PCAP :

    tshark -i eth0 -c 50 -w capture.pcap

    L'extension .pcap est importante car elle indique qu'il s'agit d'un fichier de capture de paquets standard qui peut être ouvert par la plupart des outils d'analyse réseau.

  3. Pour une meilleure organisation, vous pouvez créer un répertoire dédié à vos captures. Cette commande crée d'abord un répertoire 'captures' s'il n'existe pas, puis capture uniquement le trafic HTTP (port 80) et le sauvegarde avec un nom de fichier descriptif :

    mkdir -p captures && tshark -i eth0 -c 30 -w captures/http_traffic.pcap -f "port 80"
  4. Pour revoir un fichier de capture sauvegardé, utilisez l'option -r (read). Cela affiche les paquets dans le terminal comme lors d'une capture en direct :

    tshark -r capture.pcap
  5. Pour des workflows plus avancés, vous pouvez d'abord capturer tout le trafic, puis extraire des protocoles spécifiques plus tard. Cet exemple capture 100 paquets, puis filtre uniquement le trafic DNS dans un nouveau fichier :

    tshark -i eth0 -c 100 -w full_capture.pcap \
      && tshark -r full_capture.pcap -Y "dns" -w dns_only.pcap
  6. Enfin, vérifiez vos captures sauvegardées en les listant avec leurs tailles. Cela vous permet de confirmer que les fichiers ont été créés et vous donne une idée de la quantité de données capturées :

    ls -lh *.pcap

    Les options -lh rendent la sortie plus lisible en affichant les tailles de fichiers dans un format compréhensible pour l'homme (KB, MB) plutôt qu'en octets.

Résumé

Dans ce laboratoire, vous avez appris à installer et configurer Tshark pour l'analyse de paquets réseau. Le processus comprenait l'installation de Tshark via apt, la mise à jour des listes de paquets et la vérification de l'installation avec tshark --version.

Vous avez également pratiqué l'identification des interfaces réseau en utilisant tshark -D et la sélection d'une interface appropriée pour la capture de trafic. Ces compétences de base vous préparent à des analyses de protocoles réseau plus avancées dans les exercices futurs.