Analyser les conversations TCP dans 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 à analyser les conversations TCP à l'aide de l'outil en ligne de commande tshark de Wireshark. Vous allez pratiquer la capture de trafic TCP avec des filtres, la liste des conversations et l'examen de ports spécifiques comme HTTP (port 80) tout en interprétant les informations détaillées des paquets.

Grâce à des exercices pratiques, notamment la génération de trafic avec curl et l'analyse de fichiers de capture, vous maîtriserez l'isolement des flux TCP et l'identification des métriques clés des conversations. Ces compétences amélioreront vos capacités de dépannage réseau et d'analyse de trafic à l'aide de Wireshark.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/capture_filters("Capture Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/packet_capture -.-> lab-548913{{"Analyser les conversations TCP dans Tshark"}} wireshark/display_filters -.-> lab-548913{{"Analyser les conversations TCP dans Tshark"}} wireshark/capture_filters -.-> lab-548913{{"Analyser les conversations TCP dans Tshark"}} wireshark/packet_analysis -.-> lab-548913{{"Analyser les conversations TCP dans Tshark"}} wireshark/commandline_usage -.-> lab-548913{{"Analyser les conversations TCP dans Tshark"}} end

Capture du trafic TCP avec -f "tcp"

Dans cette étape, vous apprendrez à capturer le trafic réseau TCP à l'aide de l'outil en ligne de commande tshark de Wireshark. Le TCP (Transmission Control Protocol) est l'un des protocoles de base d'Internet, chargé de la transmission fiable de données entre les applications. En utilisant le filtre -f "tcp", nous pouvons nous concentrer spécifiquement sur les paquets TCP, ce qui est utile lors de l'analyse de la navigation web, des transferts de fichiers ou des communications par e-mail.

  1. Tout d'abord, ouvrez un terminal dans votre machine virtuelle LabEx en cliquant sur l'icône du terminal sur le bureau Xfce ou en utilisant le raccourci Ctrl+Alt+T. C'est dans le terminal que nous exécuterons toutes nos commandes pour cette analyse réseau.

  2. Accédez au répertoire de travail par défaut où nous stockerons nos fichiers de capture :

    cd ~/project

    Cela garantit que toutes les données capturées seront enregistrées dans un emplacement cohérent et facile à trouver plus tard.

  3. Commencez à capturer le trafic TCP avec la commande suivante :

    sudo tshark -f "tcp" -w tcp_capture.pcap

    Décortiquons ce que chaque partie de cette commande fait :

    • sudo nous donne les privilèges d'administrateur nécessaires pour la capture de paquets
    • tshark est la version en ligne de commande de Wireshark
    • -f "tcp" agit comme un filtre de capture, indiquant à tshark d'enregistrer uniquement les paquets TCP
    • -w tcp_capture.pcap enregistre les paquets capturés dans un fichier nommé "tcp_capture.pcap"
  4. Pendant que tshark est en cours d'exécution, nous devons générer un peu de trafic TCP d'exemple. Ouvrez une autre fenêtre de terminal et exécutez :

    curl https://www.example.com

    Cette commande effectue une simple requête web vers example.com, qui utilise le TCP pour sa communication. La commande curl vous montrera le contenu HTML renvoyé par le site web.

  5. Après avoir attendu quelques secondes pour capturer suffisamment de données, arrêtez la capture en appuyant sur Ctrl+C dans le premier terminal où tshark est en cours d'exécution. Cela termine en toute sécurité le processus de capture de paquets.

  6. Maintenant, vérifions ce que nous avons capturé en examinant les premières lignes de notre fichier de capture :

    tshark -r tcp_capture.pcap | head -n 5

    Cette commande lit (-r) notre fichier de capture et affiche les 5 premiers paquets. Vous devriez voir une sortie montrant le processus d'établissement de la connexion TCP, qui comprend :

    • Les paquets SYN (synchronize) qui initient la connexion
    • Les réponses SYN-ACK (synchronize-acknowledge)
    • Les adresses IP source et de destination
    • Les numéros de port utilisés pour la communication

Lister les conversations avec -z conv,tcp

Dans cette étape, vous apprendrez à analyser les conversations TCP à partir du trafic capturé en utilisant l'option -z conv,tcp de Wireshark. Une conversation TCP représente une session de communication complète entre deux points terminaux, identifiés par leurs adresses IP et leurs numéros de port. Cette fonctionnalité fournit un résumé de toutes les conversations TCP dans votre capture, affichant les adresses IP source/destination, les ports et les statistiques des paquets, ce qui est essentiel pour comprendre les modèles de communication réseau.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire où se trouve votre fichier de capture. Cela est important car Tshark doit savoir où trouver le fichier de capture de paquets :

    cd ~/project
  2. La commande de base pour lister les conversations TCP analyse les paquets capturés et affiche un tableau récapitulatif. Le drapeau -r spécifie le fichier d'entrée, tandis que -z conv,tcp active la fonctionnalité de statistiques des conversations :

    tshark -r tcp_capture.pcap -z conv,tcp
  3. La sortie affichera un tableau montrant toutes les conversations TCP, similaire à cet exemple. Chaque ligne représente une conversation entre deux points terminaux, affichant le nombre de trames (paquets) et d'octets transférés dans chaque direction :

    =========================================================================
    TCP Conversations
    Filter:<No Filter>
                                                  |       <-      | |       ->      | |     Total     |
                                                  | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |
    192.168.1.2:49152   <-> 93.184.216.34:80     |      3    180 | |      3    216 | |      6    396 |
    =========================================================================
  4. Pour obtenir une vue plus détaillée avec des horodatages absolus indiquant quand chaque conversation s'est produite, utilisez l'option -t ad. Cela aide à comprendre le moment et la séquence des événements réseau :

    tshark -r tcp_capture.pcap -z conv,tcp -t ad
  5. Vous pouvez filtrer les conversations selon des critères spécifiques en utilisant des filtres d'affichage avec l'option -Y. Cet exemple filtre les conversations impliquant le port 80 (trafic HTTP), ce qui est utile lorsque vous souhaitez seulement analyser le trafic web :

    tshark -r tcp_capture.pcap -z conv,tcp -Y "tcp.port==80"
  6. Pour enregistrer les statistiques des conversations pour une analyse ultérieure ou un rapport, redirigez la sortie vers un fichier texte. Cela crée un enregistrement permanent de votre analyse que vous pouvez consulter ou partager avec d'autres :

    tshark -r tcp_capture.pcap -z conv,tcp > tcp_conversations.txt

Filtrer un port spécifique avec -Y "tcp.port==80"

Dans cette étape, vous apprendrez à filtrer le trafic réseau pour un port TCP spécifique (port 80) en utilisant la syntaxe des filtres d'affichage de Wireshark avec l'option -Y "tcp.port==80". Le port 80 est le port standard pour le trafic web HTTP, donc ce filtre permet d'isoler les communications liées au web dans votre capture réseau.

Avant de commencer, comprenons ce que fait ce filtre : il affiche tous les paquets TCP où le port source OU le port de destination est 80. Cela diffère du filtrage spécifique des ports source ou de destination, que nous aborderons plus tard.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire où se trouve votre fichier de capture :

    cd ~/project
  2. Pour filtrer le trafic précédemment capturé pour le port 80 (HTTP), exécutez :

    tshark -r tcp_capture.pcap -Y "tcp.port==80"

    Le drapeau -r spécifie le fichier d'entrée, tandis que -Y applique le filtre d'affichage. Cette commande lit les paquets de tcp_capture.pcap mais n'affiche que ceux impliquant le port 80.

  3. La sortie affichera uniquement les paquets impliquant le port 80, que ce soit comme port source ou de destination :

     1 0.000000000    192.168.1.2 → 93.184.216.34 TCP 74 49152 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460
     2 0.028763000  93.184.216.34 → 192.168.1.2 TCP 74 80 → 49152 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
     3 0.028852000    192.168.1.2 → 93.184.216.34 TCP 66 49152 → 80 [ACK] Seq=1 Ack=1 Win=64240 Len=0

    Cette sortie montre un handshake TCP à trois voies complet (SYN, SYN-ACK, ACK) entre un client (192.168.1.2) et un serveur web (93.184.216.34).

  4. Pour filtrer spécifiquement le trafic allant vers le port 80 (port de destination), qui montre les requêtes aux serveurs web :

    tshark -r tcp_capture.pcap -Y "tcp.dstport==80"
  5. Pour filtrer le trafic provenant du port 80 (port source), qui montre généralement les réponses des serveurs web :

    tshark -r tcp_capture.pcap -Y "tcp.srcport==80"
  6. Vous pouvez combiner cela avec d'autres filtres pour une analyse plus précise. Par exemple, pour voir uniquement les requêtes HTTP GET (le type de requête web le plus courant) :

    tshark -r tcp_capture.pcap -Y "tcp.port==80 && http.request.method==GET"

    Cela combine un filtre de port avec un filtre de protocole HTTP pour montrer spécifiquement quand les navigateurs web demandent des pages aux serveurs.

Afficher les résultats avec -V

Dans cette étape, nous allons explorer comment afficher des détails complets des paquets en utilisant l'option -V (verbeux) de Wireshark. Lorsque vous résolvez des problèmes réseau, voir la décomposition complète du protocole est crucial. Le drapeau -V révèle chaque couche de la pile réseau, des trames Ethernet jusqu'aux protocoles de la couche application, vous aidant à comprendre exactement ce qui se passe dans votre trafic réseau.

  1. Tout d'abord, assurez-vous d'être dans le bon répertoire où se trouve votre fichier de capture. Cela est important car Tshark doit accéder au fichier que vous souhaitez analyser :

    cd ~/project
  2. La commande de base pour afficher tous les détails des paquets vous montre tout ce que Tshark peut décoder. Cela est utile lorsque vous avez besoin d'examiner la structure complète des communications réseau :

    tshark -r tcp_capture.pcap -V
  3. La sortie verbeuse affiche les détails techniques dans un format structuré. Voici ce que chaque partie signifie :

    • Frame : Informations de la couche physique sur la taille du paquet
    • Ethernet II : Adresses MAC de la couche de liaison de données
    • IP : Adressage de la couche réseau
    • TCP : Ports et numéros de séquence de la couche de transport
    Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
    Ethernet II, Src: 00:11:22:33:44:55, Dst: 66:77:88:99:aa:bb
    Internet Protocol Version 4, Src: 192.168.1.2, Dst: 93.184.216.34
    Transmission Control Protocol, Src Port: 49152, Dst Port: 80, Seq: 0, Ack: 0, Len: 0
  4. Lorsque vous travaillez avec de grandes captures, combiner des filtres avec une sortie verbeuse vous aide à vous concentrer sur le trafic pertinent. Cet exemple montre seulement le trafic HTTP (port 80) et limite la sortie aux 20 premières lignes :

    tshark -r tcp_capture.pcap -Y "tcp.port==80" -V | head -n 20
  5. Pour la documentation ou une analyse ultérieure, vous pouvez enregistrer la sortie détaillée dans un fichier texte. Cela crée un enregistrement permanent de votre inspection de paquets :

    tshark -r tcp_capture.pcap -V > verbose_output.txt
  6. Pour examiner des éléments de protocole spécifiques comme les en-têtes HTTP, combinez des filtres de protocole avec le mode verbeux. Cela est utile lors du débogage d'applications web ou de l'analyse de transactions HTTP :

    tshark -r tcp_capture.pcap -Y "http" -V

Résumé

Dans ce laboratoire, vous avez appris à analyser les conversations TCP en utilisant l'outil en ligne de commande tshark de Wireshark. Vous avez capturé le trafic TCP avec des filtres spécifiques, examiné les détails du handshake TCP et généré un trafic d'échantillon pour l'analyse.

De plus, vous avez exploré des techniques pour lister les conversations TCP entre les points terminaux et filtrer le trafic d'un port spécifique. Le laboratoire a offert une expérience pratique d'inspection de paquets en utilisant une sortie verbeuse et des statistiques de conversation pour une analyse réseau efficace.