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

CybersecurityCybersecurityBeginner
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 à installer et à configurer Wireshark, un analyseur de protocole réseau robuste. Il permet un examen en temps réel du trafic réseau, ce qui est crucial pour le dépannage du réseau et les enquêtes de sécurité.

À la fin de ce laboratoire, vous serez capable de capturer et d'analyser les paquets réseau sur votre système, acquérant ainsi une expérience pratique avec cet outil essentiel.

Installation de Wireshark

Dans cette étape, nous allons installer Wireshark sur notre système Ubuntu. Wireshark est un puissant analyseur de protocole réseau qui vous permet de capturer et d'analyser le trafic réseau. C'est un outil crucial pour quiconque s'intéresse à la sécurité du réseau et à l'analyse du trafic. La bonne nouvelle est que Wireshark est disponible dans les dépôts Ubuntu, ce qui signifie que nous pouvons facilement l'installer à l'aide du système de gestion de paquets fourni par Ubuntu.

Tout d'abord, mettons à jour les informations du dépôt de paquets. Le dépôt de paquets est comme un catalogue de tous les logiciels disponibles pour votre système Ubuntu. En le mettant à jour, nous nous assurons d'avoir accès aux dernières versions des logiciels. Pour ce faire, nous devons ouvrir un terminal. Vous pouvez ouvrir un terminal 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, entrez la commande suivante :

sudo apt update

La commande sudo est utilisée pour exécuter des commandes avec des privilèges administratifs. apt est l'outil de gestion de paquets dans Ubuntu, et update est la commande pour actualiser les informations du dépôt de paquets. 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 montre que le système récupère les dernières informations sur les paquets disponibles à partir des dépôts.

Maintenant que notre dépôt de paquets est mis à 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 indique à apt d'installer le paquet spécifié, qui est wireshark dans ce cas. L'option -y est utilisée pour répondre automatiquement "yes" à toutes les invites pendant le processus d'installation.

Pendant le processus d'installation, une boîte de dialogue de configuration vous demandera si vous souhaitez autoriser les utilisateurs non-superutilisateurs à capturer des paquets. Autoriser les utilisateurs non-superutilisateurs à capturer des paquets peut être utile si vous souhaitez exécuter Wireshark sans toujours utiliser les privilèges administratifs. Utilisez les touches fléchées pour sélectionner "Yes" (ou appuyez sur y) et appuyez sur Entrée pour confirmer votre sélection.

Wireshark Configuration Dialog

Note : Si vous avez manqué cette invite ou si vous devez 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 est utilisée pour reconfigurer un paquet déjà installé.

Une fois l'installation terminée, vous devriez voir une sortie indiquant que l'installation a réussi. Pour vérifier que Wireshark a été installé correctement, nous pouvons vérifier sa version. Exécutez la commande suivante dans le terminal :

wireshark --version

Cette commande indique à Wireshark d'afficher ses informations de version. Vous devriez voir une sortie similaire à celle-ci :

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

Copyright 1998-2022 Gerald Combs <[email protected]> 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.

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

Configuration des permissions de capture de Wireshark

Dans cette étape, nous allons configurer les permissions nécessaires pour que Wireshark puisse capturer les paquets réseau. En tant que débutant, vous vous demandez peut-être pourquoi nous devons faire cela. Eh bien, par défaut, la capture de paquets nécessite les privilèges root (administrateur). Il s'agit d'une mesure de sécurité, car la capture de paquets réseau peut potentiellement exposer des informations sensibles. Cependant, exécuter Wireshark en tant que root n'est pas une bonne idée du point de vue de la sécurité. S'il existe une vulnérabilité dans Wireshark, un attaquant pourrait obtenir un accès complet au système s'il est exécuté en tant que root. Nous allons donc configurer Wireshark pour permettre à votre compte d'utilisateur normal de capturer des paquets en toute sécurité.

Tout d'abord, nous devons vérifier si le groupe wireshark existe sur le système. Le groupe wireshark est un groupe spécial que nous utiliserons pour gérer les permissions de capture de paquets. Pour vérifier si ce groupe existe, nous utiliserons la commande getent. getent est un utilitaire qui récupère les entrées de diverses bases de données système, comme la base de données des groupes dans ce cas. Exécutez la commande suivante dans votre terminal :

getent group wireshark

Si aucune sortie n'apparaît, 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 est utilisée pour créer un nouveau groupe sur le système. Exécutez la commande suivante :

sudo groupadd wireshark

La commande sudo est utilisée pour exécuter la commande groupadd avec des privilèges administratifs. Vous serez invité à entrer votre mot de passe si vous n'avez pas utilisé sudo récemment.

Ensuite, nous devons accorder les permissions correctes à l'exécutable de capture de paquets (dumpcap). dumpcap est le composant qui capture réellement les paquets pour Wireshark. Nous allons modifier le propriétaire du groupe de l'exécutable dumpcap au groupe wireshark. De cette façon, l'exécutable dumpcap sera associé au groupe wireshark, et nous pourrons gérer ses permissions via ce groupe. Exécutez la commande suivante :

sudo chgrp wireshark /usr/bin/dumpcap

La commande chgrp est utilisée pour modifier le propriétaire du groupe d'un fichier ou d'un répertoire. Dans ce cas, nous modifions le propriétaire du groupe de l'exécutable /usr/bin/dumpcap au groupe wireshark.

Après avoir modifié le propriétaire du groupe, nous allons définir les permissions nécessaires sur l'exécutable dumpcap. Nous utiliserons la commande chmod pour définir les permissions. La commande chmod est utilisée pour modifier les permissions d'un fichier ou d'un répertoire. Exécutez la commande suivante :

sudo chmod 4755 /usr/bin/dumpcap

Cette commande définit le bit setuid sur l'exécutable. Le bit setuid permet à l'exécutable de s'exécuter avec les permissions du propriétaire (root) quel que soit l'utilisateur qui l'exécute. La permission 4755 peut être décomposée comme suit :

  • 4 - Définit le bit setuid. Cela signifie que lorsque l'exécutable est exécuté, il s'exécutera avec les permissions du propriétaire (root).
  • 7 - Le propriétaire (root) a les permissions de lecture, d'écriture et d'exécution. Cela permet au propriétaire de lire, de modifier et d'exécuter l'exécutable.
  • 5 - Le groupe a les permissions de lecture et d'exécution. Cela permet aux membres du groupe wireshark de lire et d'exécuter l'exécutable.
  • 5 - Les autres ont les permissions de lecture et d'exécution. Cela permet aux autres utilisateurs du système de lire et d'exécuter l'exécutable.

Enfin, nous devons ajouter notre utilisateur actuel au groupe wireshark. En ajoutant notre utilisateur au groupe wireshark, notre utilisateur aura les permissions nécessaires pour utiliser l'exécutable dumpcap. Nous utiliserons la commande gpasswd pour ajouter notre utilisateur au groupe. La commande gpasswd est utilisée pour administrer les fichiers /etc/group et /etc/gshadow. Exécutez la commande suivante :

sudo gpasswd -a $USER wireshark

La variable $USER est une variable shell qui contient le nom d'utilisateur de l'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 et vous reconnecter, ou redémarrer le système. Cependant, pour ce laboratoire, nous pouvons utiliser une approche 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 avec le groupe wireshark actif. La commande newgrp est utilisée pour modifier l'ID de 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 que notre utilisateur fait maintenant partie du groupe wireshark. Nous utiliserons la commande groups pour lister tous les groupes auxquels notre utilisateur appartient. Exécutez la commande suivante :

groups

Vous devriez voir wireshark listé parmi les groupes :

wireshark sudo ssl-cert labex public

Maintenant que notre utilisateur fait partie du groupe wireshark et que l'exécutable dumpcap a les permissions correctes, Wireshark devrait être en mesure de capturer des paquets sans nécessiter les privilèges root.

Lancement de Wireshark

Dans cette étape, nous allons lancer Wireshark et nous familiariser avec son interface initiale. Wireshark est un outil puissant pour l'analyse du trafic réseau, et il est livré avec une interface utilisateur graphique (GUI). Cette GUI est ce que nous utiliserons pour interagir avec le logiciel et analyser le trafic réseau.

Tout d'abord, vous devez vous assurer que vous êtes dans l'environnement de bureau de la VM LabEx. Lorsque vous êtes au bon endroit, vous verrez un bureau avec des icônes et une barre des tâches en haut ou en bas de l'écran. C'est le point de départ où nous commencerons notre travail avec Wireshark.

Il existe deux façons de lancer Wireshark. Vous pouvez choisir la méthode qui vous convient le mieux :

  1. Cliquez sur le menu Applications, qui se trouve généralement dans le coin supérieur gauche de l'écran. Ensuite, naviguez dans le menu pour trouver les catégories "Internet" ou "Réseau" (Network). Une fois que vous êtes dans la catégorie appropriée, recherchez et sélectionnez "Wireshark". C'est un moyen simple de démarrer le programme en utilisant l'interface graphique.

    Wireshark in Applications Menu
  2. Alternativement, vous pouvez utiliser le terminal. Ouvrez une fenêtre de terminal, puis entrez la commande suivante :

    wireshark
    Wireshark in Terminal

Cette commande indique au système de démarrer l'application Wireshark. Après avoir exécuté cette commande, Wireshark démarrera et sa fenêtre principale apparaîtra à l'écran. La première chose que vous verrez est l'écran "Bienvenue dans Wireshark" (Welcome to Wireshark). Cet écran affiche une liste des interfaces réseau disponibles que vous pouvez utiliser pour capturer le trafic réseau. Il affiche également certains fichiers de capture récemment ouverts, si vous avez déjà utilisé Wireshark et que vous avez des fichiers enregistrés.

Wireshark Start Screen

L'écran de bienvenue offre plusieurs options importantes :

  1. Vous pouvez sélectionner une interface réseau dans la liste. Une fois que vous avez choisi une interface, Wireshark commencera immédiatement à capturer les paquets de ce réseau. C'est ainsi que vous commencerez à collecter des données sur le trafic réseau.
  2. Si vous avez un fichier de capture enregistré précédemment, vous pouvez l'ouvrir à partir de cet écran. Ceci est utile si vous souhaitez analyser des données que vous avez collectées dans le passé.
  3. Il existe également divers outils et paramètres auxquels vous pouvez accéder à partir de cet écran. Ces outils et paramètres vous aideront à personnaliser votre expérience avec Wireshark et à effectuer des analyses plus avancées.

Prenez un peu de temps pour explorer cet écran initial. Vous remarquerez que chaque interface réseau a des statistiques sur les paquets qui ont été détectés. Ces statistiques vous donnent une idée rapide des interfaces qui transmettent activement le trafic réseau.

Maintenant, examinons les principaux éléments de l'interface de Wireshark :

  • Barre de menu (Menu bar) : Cette barre en haut de la fenêtre vous donne accès à toutes les fonctionnalités offertes par Wireshark. Vous pouvez l'utiliser pour effectuer diverses tâches, telles que l'enregistrement de fichiers de capture, la modification des paramètres et l'accès à l'aide.
  • Barre d'outils (Toolbar) : La barre d'outils offre un accès rapide aux fonctions couramment utilisées. Par exemple, vous pouvez démarrer et arrêter la capture de paquets, appliquer des filtres et enregistrer des fichiers en un seul clic.
  • Liste des interfaces (Interface list) : Cette liste affiche toutes les interfaces réseau disponibles sur votre système. Vous utiliserez cette liste pour sélectionner l'interface à partir de laquelle vous souhaitez capturer des paquets.
  • Barre de filtre d'affichage (Display filter bar) : Cette barre vous permet de filtrer les paquets qui sont affichés dans la fenêtre principale. Vous pouvez utiliser divers critères, tels que les adresses IP, les protocoles ou les numéros de port, pour affiner les paquets qui vous intéressent. Nous explorerons comment utiliser ce filtre dans l'étape suivante.

Pour l'instant, laissez Wireshark en cours d'exécution. Dans l'étape suivante, nous l'utiliserons pour capturer et analyser le trafic réseau.

Capture et analyse du trafic réseau

Dans cette étape, nous allons capturer du trafic réseau et explorer l'interface de Wireshark. Comprendre comment analyser les paquets réseau est essentiel pour toute personne intéressée par la sécurité du réseau ou le dépannage. À la fin de cette section, vous saurez comment démarrer une capture, comprendre l'interface de Wireshark, générer du trafic, filtrer les paquets, inspecter les détails des paquets et arrêter la capture.

Démarrage d'une capture

Lorsque vous ouvrez Wireshark, vous voyez un écran de bienvenue. Sur cet écran, votre objectif est de 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 (par exemple, eth1 ou wlan0).

Pour démarrer la capture de paquets, double-cliquez simplement sur l'interface eth0. Cette action démarrera immédiatement la capture de paquets sur cette interface et vous amènera à la fenêtre principale de capture de Wireshark.

Alternativement, vous pouvez d'abord sélectionner l'interface, puis cliquer sur le bouton "Démarrer la capture de paquets" (Start capturing packets), qui est représenté par une icône d'aileron de requin bleu dans la barre d'outils. Le démarrage de la capture est la première étape de l'analyse du trafic réseau, car il permet à Wireshark de collecter les données circulant via l'interface sélectionnée.

Comprendre l'interface de Wireshark

Une fois la capture de paquets démarrée, vous serez présenté avec l'interface principale de Wireshark. Cette interface est divisée en trois volets principaux, chacun servant un objectif différent.

Wireshark Main Interface
  1. Volet Liste des paquets (Packet List Pane) (en haut) : Ce volet affiche une liste de tous les paquets que Wireshark a capturés. Chaque entrée de la liste fournit des informations de base sur un paquet, notamment :

    • Numéro de paquet (Packet number) : Un identifiant unique pour chaque paquet dans la capture.
    • Heure (Time) : L'heure à laquelle le paquet a été capturé.
    • Adresse IP source (Source IP address) : L'adresse IP du périphérique qui a envoyé le paquet.
    • Adresse IP de destination (Destination IP address) : L'adresse IP du périphérique auquel le paquet est destiné.
    • Protocole (Protocol) : Le protocole réseau utilisé par le paquet, tel que TCP, UDP ou ICMP.
    • Longueur (Length) : La taille du paquet en octets.
    • Info : Une brève description de l'objectif du paquet, qui peut vous aider à comprendre rapidement ce que fait le paquet.
  2. Volet Détails du paquet (Packet Details Pane) (au milieu) : Lorsque vous sélectionnez un paquet dans le volet supérieur, cette zone affiche des informations détaillées sur le paquet sélectionné dans un format hiérarchique. Vous pouvez développer chaque section en cliquant sur la flèche à côté de celle-ci pour voir des détails plus approfondis sur la structure et le contenu du paquet.

  3. Volet Octets du paquet (Packet Bytes Pane) (en bas) : Ce volet affiche les données brutes du paquet aux formats hexadécimal et ASCII. Lorsque vous sélectionnez différents champs dans le volet Détails du paquet, les octets correspondants sont mis en évidence dans ce volet. Cela vous permet de voir les données réelles qui sont transmises dans le paquet.

Générer du trafic réseau

Pour avoir quelque chose de significatif à analyser, nous devons générer du trafic réseau. Pendant que Wireshark est en cours d'exécution, ouvrez une nouvelle fenêtre de terminal. Dans le 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

L'option -c 5 indique à la commande ping d'envoyer 5 paquets de requête d'écho ICMP. Après avoir exécuté cette commande, vous devriez voir une sortie similaire à :

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

Maintenant, revenez à Wireshark. Vous devriez voir les paquets ICMP qui ont été capturés lors de l'exécution de la commande ping. Ces paquets sont ce que nous utiliserons pour une analyse plus approfondie.

Arrêt de la capture

Lorsque vous avez terminé d'analyser les paquets capturés, vous devez arrêter la capture. Pour ce faire, cliquez sur le bouton "Arrêter la capture de paquets" (Stop capturing packets), qui est représenté par un carré rouge dans la barre d'outils. Alternativement, vous pouvez aller dans le menu "Capture" et sélectionner "Arrêter" (Stop).

Vous avez maintenant capturé et analysé avec succès du trafic réseau de base avec Wireshark ! Il s'agit d'une compétence fondamentale en matière d'analyse et de sécurité du réseau, et vous pouvez vous appuyer sur ces connaissances pour analyser des scénarios de réseau plus complexes.

Filtrage des paquets

Wireshark capture tout le trafic sur l'interface sélectionnée, ce qui peut rapidement devenir une grande quantité de données et difficile à gérer. Les filtres sont un outil puissant dans Wireshark qui vous permet de vous concentrer sur des types de trafic spécifiques.

Wireshark Filter Bar

Pour filtrer les paquets ping ICMP que nous venons de générer, regardez en haut de la fenêtre Wireshark. Il y a une barre de filtre où vous pouvez taper une expression de filtre. Tapez ce qui suit dans la barre de filtre :

icmp

Après avoir tapé l'expression de filtre, appuyez sur Entrée ou cliquez sur le bouton Appliquer (Apply) (une icône de flèche vers la droite) à côté du champ de filtre. La liste des paquets sera mise à jour pour afficher uniquement les paquets ICMP. Vous devriez voir des paires de messages "Requête d'écho (ping)" (Echo (ping) request) et "Réponse d'écho (ping)" (Echo (ping) reply) correspondant à la commande ping que nous avons exécutée précédemment. Le filtrage vous aide à isoler le trafic qui vous intéresse et rend le processus d'analyse beaucoup plus gérable.

Inspection des détails du 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 des paquets de requête ICMP dans la liste des paquets. Dans le volet Détails du paquet, vous pouvez développer les différentes couches de protocole en cliquant sur la flèche à côté de chaque section.

Wireshark Packet Details
  1. Trame (Frame) : Cette section fournit des informations sur la trame ou le paquet dans son ensemble, telles que la longueur de la trame et la séquence de contrôle de trame (frame check sequence).
  2. Ethernet : Il contient des informations de couche 2 (liaison de données), telles que les adresses MAC source et de destination.
  3. Protocole Internet version 4 (Internet Protocol Version 4) : Il s'agit d'informations de couche 3 (réseau). Développez cette section pour voir des détails tels que :
    • Adresse IP source (Source IP address) : L'adresse IP du périphérique qui a envoyé le paquet.
    • Adresse IP de destination (Destination IP address) : L'adresse IP du périphérique auquel le paquet est destiné.
    • Durée de vie (TTL - Time to Live) : Une valeur qui limite la durée de vie du paquet dans le réseau.
    • Protocole (Protocol) : Le protocole utilisé dans le paquet IP, tel que ICMP dans notre cas.
  4. Protocole de messages de contrôle Internet (Internet Control Message Protocol) : Cette section affiche les informations du protocole ICMP. Développez-la pour voir les détails spécifiques au message ICMP, tels que :
    • Type (8 pour la requête, 0 pour la 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 (Checksum) : Utilisée pour vérifier l'intégrité du message ICMP.
    • Identifiant (Identifier) : Aide à faire correspondre les requêtes et les réponses.
    • Numéro de séquence (Sequence number) : Un numéro séquentiel pour les paquets ICMP.

Résumé

Dans ce TP (travaux pratiques), vous avez appris à installer et à configurer Wireshark, un outil puissant d'analyse de réseau. Vous avez configuré les permissions pour que les utilisateurs non-root puissent 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 pour des types de trafic spécifiques et examiné les détails des paquets à travers différentes couches de protocole.

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