Installer, configurer et analyser le trafic réseau avec Wireshark

WiresharkBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à installer et à configurer Wireshark, un puissant analyseur de protocoles réseau. Il permet d’examiner le trafic réseau en temps réel, ce qui est essentiel pour le dépannage réseau et les investigations de sécurité.

À la fin de ce laboratoire, vous serez capable de capturer et d’analyser les paquets réseau de votre système, tout en ayant acquis une expérience pratique de cet outil indispensable.

Installer Wireshark

Dans cette étape, nous allons installer Wireshark sur notre système Ubuntu. Wireshark est un puissant analyseur de protocoles réseau qui permet de capturer et d’analyser le trafic réseau. C’est un outil incontournable pour toute personne qui s’intéresse à la sécurité réseau et à l’analyse du trafic. Bonne nouvelle : Wireshark est disponible dans les dépôts Ubuntu, ce qui permet de l’installer facilement à l’aide du gestionnaire de paquets fourni par Ubuntu.

Commençons par mettre à jour les informations des dépôts de paquets. Un dépôt de paquets ressemble à un catalogue de tous les logiciels disponibles pour votre système Ubuntu. En le mettant à jour, nous nous assurons d’avoir accès aux versions les plus récentes des logiciels. Pour cela, nous devons ouvrir un terminal. Vous pouvez le faire en cliquant sur l’icône du terminal dans la barre des tâches ou en appuyant sur Ctrl+Alt+T. Une fois le terminal ouvert, saisissez la commande suivante :

sudo apt update

La commande sudo permet d’exécuter des commandes avec les privilèges administrateur. apt est l’outil de gestion des paquets d’Ubuntu et update est la commande qui actualise les informations des dépôts. Lorsque vous exécutez cette commande, vous devriez voir une sortie similaire à celle-ci :

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,234 kB]
...
Reading package lists... Done

Cette sortie indique que le système récupère auprès des dépôts les dernières informations concernant les paquets disponibles.

Maintenant que les dépôts sont à jour, nous pouvons installer Wireshark à l’aide du gestionnaire de paquets apt. Exécutez la commande suivante dans le terminal :

sudo apt install wireshark -y

La commande install demande à apt d’installer le paquet indiqué, ici wireshark. L’option -y répond automatiquement « yes » à toutes les demandes de confirmation affichées pendant l’installation.

Au cours de l’installation, une boîte de dialogue vous demandera si vous souhaitez autoriser les utilisateurs qui ne sont pas des superutilisateurs à capturer des paquets. Cette autorisation peut être utile si vous voulez utiliser Wireshark sans recourir systématiquement aux privilèges administrateur. Utilisez les touches fléchées pour sélectionner « Yes » (ou appuyez sur y), puis appuyez sur Entrée pour confirmer.

Wireshark Configuration Dialog

Remarque : Si vous avez ignoré cette invite ou si vous souhaitez modifier ce paramètre ultérieurement, vous pouvez reconfigurer Wireshark à l’aide de la commande suivante :

sudo dpkg-reconfigure wireshark-common

La commande dpkg-reconfigure permet de reconfigurer un paquet déjà installé.

Une fois l’installation terminée, la sortie du terminal devrait indiquer qu’elle s’est déroulée correctement. Pour vérifier que Wireshark a bien été installé, nous pouvons contrôler sa version. Exécutez la commande suivante dans le terminal :

wireshark --version

Cette commande demande à Wireshark d’afficher les informations relatives à sa version. Vous devriez obtenir une sortie similaire à celle-ci :

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.15.3, with libpcap, with GLib 2.72.0, with zlib 1.2.11,
with SMI 0.4.8, with c-ares 1.18.1, with Lua 5.2.4, with GnuTLS 3.7.3 and PKCS #11
support, with Gcrypt 1.9.4, with MIT Kerberos, with MaxMind DB resolver,
with nghttp2 1.43.0, with brotli, with LZ4, with Zstandard, with Snappy,
with libxml2 2.9.13, with libssh 0.9.6, with NGHTTP3 0.7.0, with NGTCP2 0.8.0.

Parfait ! Wireshark est maintenant installé sur votre système.

Configurer les autorisations de capture de Wireshark

Dans cette étape, nous allons configurer les autorisations nécessaires pour que Wireshark puisse capturer des paquets réseau. Si vous débutez, vous vous demandez peut-être pourquoi cette configuration est nécessaire. Par défaut, la capture de paquets exige les privilèges du superutilisateur. Il s’agit d’une mesure de sécurité, car les paquets réseau peuvent potentiellement contenir des informations sensibles. Toutefois, exécuter Wireshark en tant que superutilisateur n’est pas recommandé du point de vue de la sécurité. Si Wireshark présente une vulnérabilité, un attaquant pourrait obtenir un accès complet au système. Nous allons donc configurer Wireshark afin que votre compte utilisateur habituel puisse capturer des paquets en toute sécurité.

Commençons par vérifier si le groupe wireshark existe sur le système. Ce groupe spécial nous servira à gérer les autorisations liées à la capture de paquets. Pour vérifier son existence, nous utiliserons la commande getent. getent est un utilitaire qui récupère des entrées dans différentes bases de données système, ici la base des groupes. Exécutez la commande suivante dans votre terminal :

getent group wireshark

Si aucune sortie ne s’affiche, cela signifie que le groupe n’existe pas encore et que nous devons le créer. Nous utiliserons la commande groupadd pour créer le groupe wireshark. La commande groupadd sert à créer un nouveau groupe sur le système. Exécutez la commande suivante :

sudo groupadd wireshark

La commande sudo permet d’exécuter groupadd avec les privilèges administrateur. Si vous n’avez pas utilisé sudo récemment, votre mot de passe vous sera demandé.

Nous devons ensuite attribuer les autorisations appropriées au binaire de capture de paquets (dumpcap). dumpcap est le composant qui capture réellement les paquets pour Wireshark. Nous allons modifier le groupe propriétaire du binaire dumpcap pour lui attribuer le groupe wireshark. Le binaire sera ainsi associé à ce groupe, ce qui permettra de gérer ses autorisations par l’intermédiaire de celui-ci. Exécutez la commande suivante :

sudo chgrp wireshark /usr/bin/dumpcap

La commande chgrp permet de modifier le groupe propriétaire d’un fichier ou d’un répertoire. Ici, nous attribuons le groupe wireshark au binaire /usr/bin/dumpcap.

Après avoir changé le groupe propriétaire, limitons l’exécution au propriétaire et aux membres du groupe wireshark. Exécutez la commande suivante :

sudo chmod 750 /usr/bin/dumpcap

Les permissions 750 accordent un accès complet au propriétaire root, un accès en lecture et en exécution au groupe wireshark, et aucun accès aux autres utilisateurs. Elles garantissent également que le bit setuid n’est pas activé.

Accordons ensuite à dumpcap uniquement les capacités Linux nécessaires à la capture des paquets :

sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

Ces capacités permettent à dumpcap d’ouvrir des sockets de paquets bruts et d’administrer les interfaces de capture sans exécuter l’ensemble du programme en tant que root. Associées aux permissions du fichier, elles garantissent que seuls root et les membres du groupe wireshark peuvent l’exécuter.

Enfin, nous devons ajouter l’utilisateur actuel au groupe wireshark. Il disposera ainsi des autorisations nécessaires pour utiliser le binaire dumpcap. Nous utiliserons la commande gpasswd pour ajouter l’utilisateur au groupe. La commande gpasswd sert à administrer les fichiers /etc/group et /etc/gshadow. Exécutez la commande suivante :

sudo gpasswd -a $USER wireshark

La variable $USER est une variable d’environnement du shell qui contient le nom d’utilisateur actuel. Vous devriez voir une sortie indiquant que l’utilisateur a été ajouté au groupe :

Adding user labex to group wireshark

Pour que ces modifications prennent effet, vous devez vous déconnecter puis vous reconnecter, ou redémarrer le système. Toutefois, dans le cadre de ce laboratoire, nous pouvons utiliser une méthode plus simple en démarrant un nouveau shell avec l’appartenance au groupe mise à jour. Nous utiliserons la commande newgrp pour démarrer un nouveau shell dans lequel le groupe wireshark est actif. La commande newgrp permet de modifier l’identifiant du groupe actuel. Exécutez la commande suivante :

newgrp wireshark

Cette commande démarre un nouveau shell avec le groupe wireshark actif, sans nécessiter une déconnexion complète.

Vérifions maintenant que notre utilisateur fait bien partie du groupe wireshark. Nous utiliserons la commande groups pour afficher tous les groupes auxquels appartient l’utilisateur. Exécutez la commande suivante :

groups

wireshark devrait apparaître dans la liste des groupes :

wireshark sudo ssl-cert labex public

Enfin, vérifions les permissions restreintes et les capacités de capture :

stat -c '%A %U %G' /usr/bin/dumpcap
-rwxr-x--- root wireshark
getcap /usr/bin/dumpcap
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip

Désormais, votre utilisateur appartient au groupe wireshark et dumpcap ne dispose que des capacités requises. Wireshark peut donc capturer des paquets sans être exécuté en tant que root et sans accorder l’accès à la capture à tous les utilisateurs locaux.

Lancer Wireshark

Dans cette étape, nous allons lancer Wireshark et découvrir son interface initiale. Wireshark est un outil puissant d’analyse du trafic réseau doté d’une interface graphique. C’est cette interface qui nous permettra d’interagir avec le logiciel et d’analyser le trafic réseau.

Commencez par vérifier que vous vous trouvez dans l’environnement de bureau de la machine virtuelle LabEx. Vous devriez voir un bureau avec des icônes et une barre des tâches située en haut ou en bas de l’écran. C’est à partir de cet environnement que nous allons commencer à travailler avec Wireshark.

Deux méthodes permettent de lancer Wireshark. Choisissez celle qui vous convient le mieux :

  • Cliquez sur le menu Applications, généralement situé dans l’angle supérieur gauche de l’écran. Parcourez ensuite le menu jusqu’aux catégories « Internet » ou « Réseau ». Dans la catégorie appropriée, recherchez puis sélectionnez « Wireshark ». Il s’agit de la méthode la plus directe pour démarrer le programme depuis l’interface graphique.

    Wireshark in Applications Menu

  • Vous pouvez également utiliser le terminal. Ouvrez une fenêtre de terminal, puis saisissez la commande suivante :

    wireshark
    

    Wireshark in Terminal

Cette commande demande au système de démarrer l’application Wireshark. Après son exécution, Wireshark se lance et sa fenêtre principale apparaît à l’écran. La première chose que vous verrez est l’écran « Welcome to Wireshark ». Il présente la liste des interfaces réseau disponibles que vous pouvez utiliser pour capturer du trafic. Il affiche également les fichiers de capture récemment ouverts, si vous avez déjà utilisé Wireshark et enregistré des fichiers.

Wireshark Start Screen

L’écran d’accueil propose plusieurs options importantes :

  • Vous pouvez sélectionner une interface réseau dans la liste. Dès que vous choisissez une interface, Wireshark commence immédiatement à capturer les paquets qui y transitent. C’est ainsi que vous commencez à recueillir des données sur le trafic réseau.
  • Si vous disposez d’un fichier de capture enregistré précédemment, vous pouvez l’ouvrir depuis cet écran. Cette fonction est utile pour analyser des données collectées antérieurement.
  • Divers outils et paramètres sont également accessibles depuis cet écran. Ils vous aideront à personnaliser votre utilisation de Wireshark et à effectuer des analyses plus avancées.

Prenez quelques instants pour explorer cet écran initial. Vous remarquerez que chaque interface réseau affiche des statistiques sur les paquets détectés. Ces statistiques donnent rapidement une idée des interfaces qui acheminent activement du trafic réseau.

Examinons maintenant les principaux éléments de l’interface Wireshark :

  • Barre de menus : située en haut de la fenêtre, elle donne accès à toutes les fonctionnalités de Wireshark. Vous pouvez notamment enregistrer des fichiers de capture, modifier les paramètres et accéder à l’aide.
  • Barre d’outils : elle permet d’accéder rapidement aux fonctions courantes. Vous pouvez par exemple démarrer ou arrêter une capture, appliquer des filtres et enregistrer des fichiers en un seul clic.
  • Liste des interfaces : cette liste affiche toutes les interfaces réseau disponibles sur votre système. Vous l’utiliserez pour sélectionner l’interface à partir de laquelle vous souhaitez capturer des paquets.
  • Barre de filtre d’affichage : elle permet de filtrer les paquets affichés dans la fenêtre principale. Vous pouvez utiliser différents critères, comme les adresses IP, les protocoles ou les numéros de port, afin de limiter l’affichage aux paquets qui vous intéressent. Nous verrons comment utiliser ce filtre à l’étape suivante.

Pour le moment, laissez Wireshark ouvert. À l’étape suivante, nous l’utiliserons pour capturer et analyser le trafic réseau.

Capturer et analyser le trafic réseau

Dans cette étape, nous allons capturer du trafic réseau et explorer l’interface de Wireshark. Savoir analyser des paquets réseau est essentiel pour toute personne qui s’intéresse à la sécurité réseau ou au dépannage. À la fin de cette section, vous saurez démarrer une capture, comprendre l’interface de Wireshark, générer du trafic, filtrer les paquets, examiner leurs détails et arrêter la capture.

Démarrer une capture

Lorsque vous ouvrez Wireshark, vous voyez un écran d’accueil. Votre objectif est d’y trouver l’interface réseau à partir de laquelle vous souhaitez capturer le trafic. Dans la plupart des cas, nous utiliserons l’interface eth0. Si eth0 n’est pas disponible, vous pouvez choisir une autre interface active, comme eth1 ou wlan0.

Pour commencer à capturer des paquets, double-cliquez simplement sur l’interface eth0. La capture démarre immédiatement sur cette interface et Wireshark vous redirige vers sa fenêtre principale de capture.

Vous pouvez également sélectionner d’abord l’interface, puis cliquer sur le bouton « Start capturing packets », représenté par une nageoire de requin bleue dans la barre d’outils. Le démarrage de la capture constitue la première étape de l’analyse du trafic réseau, car il permet à Wireshark de recueillir les données qui transitent par l’interface sélectionnée.

Comprendre l’interface de Wireshark

Une fois la capture lancée, l’interface principale de Wireshark s’affiche. Elle est divisée en trois volets principaux, chacun ayant une fonction différente.

Wireshark Main Interface

  • Volet de liste des paquets (haut) : ce volet affiche la liste de tous les paquets capturés par Wireshark. Chaque entrée fournit des informations de base sur un paquet, notamment :

    • Numéro du paquet : identifiant unique du paquet dans la capture.
    • Heure : moment où le paquet a été capturé.
    • Adresse IP source : adresse IP de l’appareil qui a envoyé le paquet.
    • Adresse IP de destination : adresse IP de l’appareil auquel le paquet est destiné.
    • Protocole : protocole réseau utilisé par le paquet, comme TCP, UDP ou ICMP.
    • Longueur : taille du paquet en octets.
    • Informations : brève description de la fonction du paquet, utile pour comprendre rapidement son rôle.
  • Volet des détails du paquet (milieu) : lorsque vous sélectionnez un paquet dans le volet supérieur, cette zone affiche les informations détaillées du paquet sous forme hiérarchique. Vous pouvez développer chaque section en cliquant sur la flèche située à côté afin d’examiner plus précisément la structure et le contenu du paquet.

  • Volet des octets du paquet (bas) : ce volet affiche les données brutes du paquet au format hexadécimal et ASCII. Lorsque vous sélectionnez différents champs dans le volet des détails, les octets correspondants sont mis en évidence. Vous pouvez ainsi voir les données réellement transmises dans le paquet.

Générer du trafic réseau

Pour disposer de données intéressantes à analyser, nous devons générer du trafic réseau. Pendant que Wireshark fonctionne, ouvrez une nouvelle fenêtre de terminal. Nous utiliserons la commande ping pour envoyer des paquets de requête d’écho ICMP aux serveurs de Google.

Exécutez la commande suivante :

ping -c 5 google.com

Remarque : Les utilisateurs gratuits ne peuvent pas se connecter à Internet. Passez à l’offre Pro pour profiter de l’expérience complète.

L’option -c 5 indique à la commande ping d’envoyer 5 paquets de requête d’écho ICMP. Après l’exécution de la commande, vous devriez voir une sortie similaire à celle-ci :

PING google.com (142.250.180.238) 56(84) bytes of data.
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=1 ttl=118 time=15.6 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=2 ttl=118 time=16.5 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=3 ttl=118 time=15.9 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=4 ttl=118 time=16.2 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=5 ttl=118 time=15.7 ms

--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 15.629/15.986/16.520/0.324 ms

Retournez maintenant dans Wireshark. Vous devriez voir les paquets ICMP capturés pendant l’exécution de la commande ping. Ce sont ces paquets que nous allons analyser.

Arrêter la capture

Lorsque vous avez terminé l’analyse des paquets capturés, vous devez arrêter la capture. Pour cela, cliquez sur le bouton « Stop capturing packets », représenté par un carré rouge dans la barre d’outils. Vous pouvez également ouvrir le menu « Capture » et sélectionner « Stop ».

Vous avez maintenant capturé et analysé avec succès du trafic réseau élémentaire à l’aide de Wireshark ! Il s’agit d’une compétence fondamentale en analyse et en sécurité réseau, sur laquelle vous pourrez vous appuyer pour étudier des scénarios plus complexes.

Filtrer les paquets

Wireshark capture tout le trafic de l’interface sélectionnée. Le volume de données peut donc rapidement devenir important et difficile à gérer. Les filtres sont un outil puissant qui permet de se concentrer sur des catégories précises de trafic.

Wireshark Filter Bar

Pour filtrer les paquets ICMP générés précédemment, regardez en haut de la fenêtre Wireshark. Vous y trouverez une barre dans laquelle saisir une expression de filtre. Saisissez l’expression suivante :

icmp

Après avoir saisi l’expression, appuyez sur Entrée ou cliquez sur le bouton Apply, représenté par une icône en forme de flèche vers la droite, à côté du champ de filtre. La liste des paquets sera actualisée et n’affichera plus que les paquets ICMP. Vous devriez voir des paires de messages « Echo (ping) request » et « Echo (ping) reply » correspondant à la commande ping exécutée précédemment. Le filtrage permet d’isoler le trafic qui vous intéresse et rend l’analyse beaucoup plus facile à gérer.

Examiner les détails d’un paquet

Maintenant que nous avons filtré les paquets ICMP, examinons de plus près l’un des paquets de requête ICMP. Cliquez sur l’un de ces paquets dans la liste. Dans le volet des détails, vous pouvez développer les différentes couches protocolaires en cliquant sur la flèche située à côté de chaque section.

Wireshark Packet Details

  • Frame : cette section fournit des informations sur la trame ou le paquet dans son ensemble, comme sa longueur et sa séquence de contrôle.
  • Ethernet : elle contient les informations de la couche 2 (liaison de données), notamment les adresses MAC source et de destination.
  • Internet Protocol Version 4 : il s’agit des informations de la couche 3 (réseau). Développez cette section pour afficher des détails tels que :
    • Adresse IP source : adresse IP de l’appareil qui a envoyé le paquet.
    • Adresse IP de destination : adresse IP de l’appareil auquel le paquet est destiné.
    • Time to Live (TTL) : valeur qui limite la durée de vie du paquet sur le réseau.
    • Protocole : protocole utilisé dans le paquet IP, ici ICMP.
  • Internet Control Message Protocol : cette section affiche les informations relatives au protocole ICMP. Développez-la pour consulter les détails propres au message ICMP, notamment :
    • Type (8 pour une requête, 0 pour une réponse) : indique si le paquet est une requête ou une réponse.
    • Code : fournit des informations supplémentaires sur le message ICMP.
    • Somme de contrôle : permet de vérifier l’intégrité du message ICMP.
    • Identifiant : aide à associer les requêtes à leurs réponses.
    • Numéro de séquence : numéro séquentiel des paquets ICMP.

Résumé

Dans ce laboratoire, vous avez appris à installer et à configurer Wireshark, un puissant outil d’analyse réseau. Vous avez configuré les autorisations permettant aux utilisateurs qui ne sont pas root de capturer des paquets en toute sécurité, lancé l’application et capturé du trafic réseau réel. Vous avez également exploré l’interface, appliqué des filtres à des types de trafic précis et examiné les détails des paquets à travers différentes couches protocolaires.

Ces compétences constituent une base solide pour l’analyse et le dépannage réseau. Avec Wireshark, vous pouvez désormais examiner les communications réseau, diagnostiquer les problèmes de connectivité, analyser le comportement des protocoles et détecter les problèmes de sécurité dans le trafic de votre réseau.