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

WiresharkBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à installer et à configurer Wireshark, un analyseur de protocoles réseau robuste. Il permet l'examen en temps réel du trafic réseau, ce qui est crucial pour le dépannage réseau et les enquêtes de sécurité.

À la fin de ce laboratoire, vous serez capable de capturer et d'analyser des 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 protocoles réseau qui vous permet de capturer et d'analyser le trafic réseau. C'est un outil indispensable pour quiconque s'intéresse à la sécurité 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 en utilisant le 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 sous Ubuntu, et update est la commande pour rafraîchir 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 indique que le système récupère les dernières informations sur les paquets disponibles depuis les dépôts.

Maintenant que notre dépôt de paquets est mis à jour, nous pouvons installer Wireshark en utilisant le 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 "oui" à toutes les invites pendant le processus d'installation.

Pendant le processus d'installation, une boîte de dialogue de configuration s'affichera pour vous demander 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.

Boîte de dialogue de configuration de Wireshark

Remarque : Si vous avez manqué cette invite ou si vous devez modifier ce paramètre plus tard, vous pouvez reconfigurer Wireshark en utilisant 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 demande à 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 <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.

Configuration des autorisations de capture de Wireshark

Dans cette étape, nous allons configurer les autorisations nécessaires pour que Wireshark puisse capturer des paquets réseau. En tant que débutant, vous vous demandez peut-être pourquoi nous devons faire cela. Par défaut, la capture de paquets nécessite des privilèges root. 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 utilisateur habituel 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 autorisations de capture de paquets. Pour vérifier si ce groupe existe, nous utiliserons la commande getent. getent est un utilitaire qui récupère des entrées à partir 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é à saisir votre mot de passe si vous n'avez pas utilisé sudo récemment.

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

sudo chgrp wireshark /usr/bin/dumpcap

La commande chgrp est utilisée pour changer la propriété du groupe d'un fichier ou d'un répertoire. Dans ce cas, nous changeons la propriété du groupe du binaire /usr/bin/dumpcap pour le groupe wireshark.

Après avoir changé la propriété du groupe, nous allons définir les autorisations nécessaires sur le binaire dumpcap. Nous utiliserons la commande chmod pour définir les autorisations. La commande chmod est utilisée pour modifier les autorisations 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 le binaire. Le bit setuid permet au binaire de s'exécuter avec les autorisations du propriétaire (root), quel que soit l'utilisateur qui l'exécute. L'autorisation 4755 peut être décomposée comme suit :

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

Enfin, nous devons ajouter notre utilisateur actuel au groupe wireshark. En ajoutant notre utilisateur au groupe wireshark, notre utilisateur disposera des autorisations nécessaires pour utiliser le binaire 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 changements 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 changer 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 le binaire dumpcap dispose des autorisations correctes, Wireshark devrait être en mesure de capturer des paquets sans nécessiter de privilèges root.

Lancement de Wireshark

Dans cette étape, nous allons lancer Wireshark et découvrir son interface initiale. Wireshark est un outil puissant pour l'analyse du trafic réseau, et il est doté d'une interface utilisateur graphique (GUI). C'est cette interface 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 machine virtuelle LabEx. Une fois 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, généralement situé dans le coin supérieur gauche de l'écran. Ensuite, naviguez dans le menu pour trouver les catégories "Internet" ou "Réseau". Une fois 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 dans le menu Applications

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

    wireshark
    

    Wireshark dans le 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". Cet écran affiche une liste des interfaces réseau disponibles que vous pouvez utiliser pour capturer le trafic réseau. Il affiche également quelques fichiers de capture récemment ouverts, si vous avez déjà utilisé Wireshark et avez des fichiers enregistrés.

Écran de démarrage de Wireshark

L'écran de bienvenue propose 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 précédemment enregistré, vous pouvez l'ouvrir à partir de cet écran. C'est utile si vous souhaitez analyser des données que vous avez collectées par le passé.
  3. Il existe également divers outils et paramètres auxquels vous pouvez accéder depuis 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 dispose de quelques statistiques sur les paquets qui ont été détectés. Ces statistiques vous donnent une idée rapide des interfaces qui transmettent activement du trafic réseau.

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

  • Barre de menus : 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 : La barre d'outils permet 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 : 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 : Cette barre vous permet de filtrer les paquets 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 restreindre les paquets qui vous intéressent. Nous explorerons comment utiliser ce filtre à l'étape suivante.

Pour l'instant, laissez Wireshark en cours d'exécution. À 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 crucial pour quiconque s'intéresse à la sécurité réseau ou au 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 verrez 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 commencer à capturer des 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", représenté par une icône d'aileron de requin bleu dans la barre d'outils. Démarrer la capture est la première étape de l'analyse du trafic réseau, car cela 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 lancée, vous serez présenté avec l'interface principale de Wireshark. Cette interface est divisée en trois volets principaux, chacun ayant un objectif différent.

Interface principale de Wireshark

  1. Volet Liste des paquets (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 : Un identifiant unique pour chaque paquet dans la capture.
    • Temps : L'heure à laquelle le paquet a été capturé.
    • Adresse IP source : L'adresse IP de l'appareil qui a envoyé le paquet.
    • Adresse IP de destination : L'adresse IP de l'appareil auquel le paquet est destiné.
    • Protocole : Le protocole réseau utilisé par le paquet, tel que TCP, UDP ou ICMP.
    • Longueur : La taille du paquet en octets.
    • Info : Une brève description de l'objectif du paquet, ce qui peut vous aider à comprendre rapidement ce que fait le paquet.
  2. Volet Détails du paquet (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é pour voir des détails plus approfondis sur la structure et le contenu du paquet.

  3. Volet Octets du paquet (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 surbrillance dans ce volet. Cela vous permet de voir les données réelles transmises dans le paquet.

Génération de 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 demande 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 à la version pro pour profiter de l'expérience complète.

L'option -c 5 indique à la commande ping d'envoyer 5 paquets de demande 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 ceux 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", représenté par un carré rouge dans la barre d'outils. Alternativement, vous pouvez aller dans le menu "Capture" et sélectionner "Arrêter".

Vous avez maintenant réussi à capturer et à analyser du trafic réseau de base avec Wireshark ! Il s'agit d'une compétence fondamentale en analyse réseau et en sécurité, et vous pouvez vous appuyer sur ces connaissances pour analyser des scénarios 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 difficile à gérer. Les filtres sont un outil puissant dans Wireshark qui vous permet de vous concentrer sur des types de trafic spécifiques.

Barre de filtre de Wireshark

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 (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 "Echo (ping) request" et "Echo (ping) reply" correspondant à la commande ping que nous avons exécutée plus tôt. 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 des paquets

Maintenant que nous avons filtré les paquets ICMP, examinons de plus près l'un des paquets de demande ICMP. Cliquez sur l'un des paquets de demande 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.

Détails du paquet Wireshark

  1. 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.
  2. Ethernet : Elle contient des informations de couche 2 (Liaison de données), comme les adresses MAC source et de destination.
  3. 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 : L'adresse IP de l'appareil qui a envoyé le paquet.
    • Adresse IP de destination : L'adresse IP de l'appareil vers lequel le paquet est envoyé.
    • Time to Live (TTL) : Une valeur qui limite la durée de vie du paquet dans le réseau.
    • Protocole : Le protocole utilisé dans le paquet IP, tel qu'ICMP dans notre cas.
  4. 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 demande, 0 pour la réponse) : Indique si le paquet est une demande ou une réponse.
    • Code : Fournit des informations supplémentaires sur le message ICMP.
    • Checksum : Utilisé pour vérifier l'intégrité du message ICMP.
    • Identifiant : Aide à faire correspondre les demandes et les réponses.
    • Numéro de séquence : Un numéro séquentiel pour les 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 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 réseau et le dépannage. Avec Wireshark, vous pouvez désormais 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.