Introduction
Dans ce laboratoire, vous allez explorer tshark, le puissant équivalent en ligne de commande de Wireshark. Alors que Wireshark fournit une interface graphique pour l'analyse réseau, tshark vous permet d'effectuer exactement les mêmes captures et analyses de paquets directement depuis le terminal.
C'est un aspect crucial, car l'analyse de paquets s'effectue généralement à deux niveaux distincts. Des outils comme tcpdump excellent pour afficher des résumés de paquets bruts et appliquer des filtres de capture de bas niveau avant que les paquets ne soient stockés. tshark va plus loin en décodant la structure des protocoles après la capture. Cela signifie qu'il comprend des champs tels que les méthodes HTTP, les noms de requêtes DNS et bien d'autres détails spécifiques aux protocoles. En pratique, les analystes utilisent souvent les deux approches : une capture de bas niveau pour collecter des preuves efficacement, et une analyse orientée protocole pour poser des questions plus précises par la suite.
Vous apprendrez à capturer du trafic réseau en direct, à l'enregistrer dans un fichier et à appliquer des filtres d'affichage qui comprennent nativement les structures de protocoles (comme HTTP et DNS). Ces filtres d'affichage sont bien plus performants que les filtres de paquets Berkeley (BPF) classiques, car ils peuvent disséquer le contenu même des paquets. Enfin, vous apprendrez à générer des statistiques de hiérarchie des protocoles pour obtenir une vue d'ensemble de votre trafic réseau.
Effectuer une capture de base
Dans cette étape, vous apprendrez à capturer du trafic réseau en direct à l'aide de tshark et à l'enregistrer dans un fichier pour une analyse ultérieure.
Avant de commencer la capture, nous devons nous assurer qu'un certain trafic réseau circule sur votre système. Un script d'arrière-plan est déjà en cours d'exécution dans votre environnement, générant continuellement du trafic DNS et HTTP.
À ce stade, il est utile de séparer la capture de l'analyse. La capture consiste à préserver les paquets exactement tels qu'ils traversent une interface. L'analyse intervient ensuite, lorsque vous décodez et interprétez ces paquets. Les enquêtes de sécurité commencent souvent par une capture large, car vous ne savez peut-être pas encore ce qui est pertinent. Une fois les paquets préservés dans un fichier PCAP, vous pouvez les relire autant de fois que nécessaire et poser différentes questions sans avoir besoin que le trafic original se reproduise.
Maintenant, capturons le trafic réseau. Nous utiliserons tshark pour écouter sur toutes les interfaces réseau disponibles (any) et enregistrer les paquets capturés dans un fichier nommé traffic.pcap. Nous demanderons également à tshark d'arrêter automatiquement la capture après 5 secondes.
Exécutez les commandes suivantes pour démarrer la capture et enregistrer le fichier correctement :
sudo tshark -i any -w /tmp/traffic.pcap -a duration:5
sudo mv /tmp/traffic.pcap ~/project/traffic.pcap
sudo chown labex:labex ~/project/traffic.pcap
Analysons les options utilisées dans la commande tshark :
sudo: Exécute la commande avec des privilèges administratifs, ce qui est nécessaire pour capturer le trafic réseau.-i any: Spécifie quetsharkdoit capturer le trafic sur toutes les interfaces réseau disponibles.-w /tmp/traffic.pcap: Indique àtsharkd'écrire temporairement les données brutes des paquets capturés dans un fichier du répertoire/tmp. C'est une bonne pratique pour éviter les problèmes de permissions lors de l'exécution detsharken tant que root.-a duration:5: Définit une condition d'arrêt automatique (-a) pour stopper la capture après une durée de 5 secondes.
Vous verrez une sortie similaire à celle-ci, indiquant que les paquets sont en cours de capture :
Capturing on 'eth0'
24
Une fois les 5 secondes écoulées, tshark se fermera automatiquement et votre fichier traffic.pcap sera prêt pour l'analyse.
Appliquer des filtres d'affichage
Dans cette étape, vous apprendrez à lire le fichier de capture que vous venez de créer et à appliquer des filtres d'affichage pour isoler des types de trafic spécifiques.
Les filtres d'affichage dans tshark (et Wireshark) sont extrêmement puissants car ils comprennent la structure des protocoles réseau. Au lieu de simplement regarder les adresses IP ou les numéros de port, vous pouvez filtrer le trafic en fonction de noms de protocoles comme http ou dns.
Cette distinction mérite d'être soulignée. Un filtre de capture classique pose des questions de bas niveau, comme « ce paquet utilise-t-il le port 53 ? ». Un filtre d'affichage peut poser des questions de plus haut niveau, comme « ce paquet est-il une réponse DNS ? » ou « cette requête HTTP contient-elle un champ spécifique ? ». En d'autres termes, les filtres d'affichage fonctionnent après la dissection du protocole, ce qui les rend plus expressifs et plus faciles à lire.
Pour lire un fichier de capture au lieu de capturer du trafic en direct, vous utilisez l'option -r. Pour appliquer un filtre d'affichage, vous utilisez l'option -Y suivie de la chaîne de filtrage.
Tout d'abord, filtrons le fichier de capture pour afficher uniquement le trafic HTTP. Exécutez la commande suivante :
tshark -r ~/project/traffic.pcap -Y "http"
Vous devriez voir une sortie similaire à celle-ci, affichant uniquement la requête HTTP GET et la réponse HTTP OK correspondante :
4 0.012345678 10.0.2.15 → 93.184.216.34 HTTP 143 GET / HTTP/1.1
8 0.045678901 93.184.216.34 → 10.0.2.15 HTTP 403 HTTP/1.1 200 OK (text/html)
Ensuite, filtrons le fichier de capture pour afficher uniquement le trafic DNS. Le DNS (Domain Name System) est le protocole utilisé pour traduire des noms de domaine comme example.com en adresses IP.
Exécutez la commande suivante pour appliquer le filtre d'affichage DNS :
tshark -r ~/project/traffic.pcap -Y "dns"
La sortie affichera les requêtes et réponses DNS qui ont eu lieu pendant votre fenêtre de capture :
1 0.000000000 10.0.2.15 → 10.0.2.3 DNS 73 Standard query 0x1a2b A example.com
2 0.001234567 10.0.2.3 → 10.0.2.15 DNS 89 Standard query response 0x1a2b A example.com A 93.184.216.34
En utilisant l'option -Y, vous pouvez facilement parcourir des milliers de paquets pour trouver exactement ce que vous cherchez.
Afficher les statistiques de hiérarchie des protocoles
Dans cette étape, vous apprendrez à générer un aperçu statistique des protocoles présents dans votre fichier de capture.
Lors de l'analyse d'un fichier de capture volumineux, il est souvent utile d'obtenir un résumé de haut niveau du type de trafic contenu avant de plonger dans les paquets individuels. tshark propose une fonctionnalité appelée « Statistiques de hiérarchie des protocoles » (Protocol Hierarchy Statistics), qui calcule le pourcentage et le nombre de paquets pour chaque protocole.
Cette vue descendante est une technique d'investigation courante. Avant de consacrer du temps à des paquets individuels, les analystes posent souvent des questions générales : quels protocoles dominent cette capture ? Le trafic est-il principalement composé de navigation web, de résolution de noms ou de quelque chose d'inhabituel ? Les proportions correspondent-elles au rôle attendu du système ? Ce contexte de haut niveau vous aide à décider où une inspection plus approfondie en vaut la peine.
Pour générer des statistiques, vous utilisez l'option -z suivie de la statistique spécifique que vous souhaitez calculer. Pour les statistiques de hiérarchie des protocoles, le mot-clé est io,phs.
De plus, comme nous voulons uniquement voir le rapport statistique et non les détails individuels des paquets, nous utiliserons l'option -q (quiet).
Exécutez la commande suivante pour afficher la hiérarchie des protocoles de votre fichier de capture :
tshark -r ~/project/traffic.pcap -q -z io,phs
Vous verrez une sortie arborescente résumant le trafic :
===================================================================
Protocol Hierarchy Statistics
Filter:
eth frames:24 bytes:2340
ipv4 frames:24 bytes:2340
udp frames:2 bytes:162
dns frames:2 bytes:162
tcp frames:12 bytes:1338
http frames:2 bytes:546
icmp frames:10 bytes:840
===================================================================
Cette sortie vous indique exactement combien de trames (paquets) et d'octets appartiennent à chaque protocole. Par exemple, vous pouvez voir que la couche Ethernet (eth) contient du trafic IPv4, qui est ensuite décomposé en UDP (contenant le DNS), TCP (contenant le HTTP) et ICMP (le trafic ping que nous avons généré).
Cette vue statistique est un excellent point de départ pour toute tâche de dépannage réseau ou d'analyse de sécurité.
Résumé
Félicitations ! Vous avez terminé avec succès le laboratoire d'introduction à Tshark.
Dans ce laboratoire, vous avez appris à :
- Capturer du trafic réseau en direct et l'enregistrer dans un fichier
.pcapà l'aide detshark. - Lire un fichier de capture et appliquer des filtres d'affichage orientés protocole pour isoler le trafic HTTP et DNS.
- Générer et analyser les statistiques de hiérarchie des protocoles pour obtenir une vue d'ensemble de l'activité réseau.
Ces compétences fondamentales constituent la base de l'analyse réseau en ligne de commande et du dépannage dans les environnements Linux.

