15/11/2024

Wireshark

Wireshark et les filtres d’affichage

I. Présentation

Dans ce cinquième volet de la série de tutoriels sur Wireshark, nous allons explorer une autre fonctionnalité très intéressante de Wireshark : les filtres d’affichage, qui font la force de cet outil lors d’une analyse de flux réseau.

Dans l’article précédent, nous avons appris à utiliser les filtres de capture. Pour rappel, voici les précédents articles :

II. Les filtres d’affichage

Les filtres d’affichage dans Wireshark permettent plusieurs choses :

  • Vérifier la présence d’un protocole
  • Vérifier un champ ou une valeur
  • Utiliser pour les règles de coloriage
  • Utiliser pour construire un graphique via "I/O graph"

Il faut savoir que l'ensemble des protocoles et des champs inclus à Wireshark peuvent être utilisés en tant que filtre d’affichage. Par ailleurs, la syntaxe entre les filtres de capture et les filtres d’affichage n'est pas identique, et on peut modifier à la volée les filtres d’affichage contrairement aux filtres de capture qui sont lancés avant de prendre une capture réseau.

A. Où faire le filtre d’affichage ?

Pour faire un filtre d’affichage, il faut avoir une capture en cours ou un fichier PCAP à analyser, et que l'on a sauvegardé suite à une capture précédente, par exemple. Les filtres d’affichage sont définis dans la barre d’outil filtre, comme le montre l’image ci-dessous au niveau du champ "Apply a display filter".

B. Comment trouver un filtre d’affichage facilement ?

Il existe des milliers de filtres d’affichage dans Wireshark, mais comment trouver la bonne syntaxe d’un filtre sans s’aider de Google ? 😉. Et bien, il suffit d’aller dans le panneau "Détails du paquet" et de sélectionner une valeur, puis dans la barre d’état en bas à gauche, vous allez voir apparaître la syntaxe du filtre d’affichage associé.

Voici un exemple avec le champ "TCP Syn" :

C. Notre premier filtre d’affichage

Maintenant que nous savons où faire notre filtre d’affichage sur Wireshark, il est temps de faire notre premier filtre d'affichage.

Pour commencer, nous allons utiliser un filtre se basant sur une adresse IP. Pour faire un filtre sur une adresse IP, il suffit d’utiliser le filtre : ip.addr et d’ajouter l’adresse IP que nous souhaitons voir apparaître dans notre fichier d’analyse :

ip.addr == 192.168.1.4

Filtre d'affichage Wireshark

Dès que votre filtre est prêt, vous pouvez appuyer sur la touche Entrée ou bien la petite flèche au bout de la barre de filtre d’affichage. Ce filtre d’affichage va afficher seulement l’ensemble des paquets avec cette IP en source et en destination, à partir des données de la capture (soit la capture que vous venez de faire ou un fichier PCAP existant, comme je le disais).

On voit dans la barre d’état à droite que seulement 91 paquets sont affichés sur un total de 1494, ce qui va grandement faciliter l'analyse des paquets.

Le filtre d'affichage est modifiable à souhait, et il suffit de valider pour appliquer le changement.

III. Gestion des filtres d’affichage

Maintenant que nous avons vu notre premier filtre d’affichage, nous allons voir comment gérer les filtres d’affichage.

A. Valider la syntaxe

Comme dans les filtres de capture un code couleur permet de valider la syntaxe de notre filtre d’affichage, voici le code couleur :

  • Un fond vert : syntaxe correcte
  • Un fond jaune : syntaxe correcte, mais sans garantie de résultat
  • Un fond rouge : syntaxe incorrecte

Sur l'exemple ci-dessous, on voit bien le fond jaune.

B. Sauvegarder un filtre d'affichage

Si vous ne l’avez pas encore remarqué, devant votre filtre d’affichage il y a un petit signet, suivant la couleur il vous indique si le filtre est enregistré ou non. Sur l'image ci-dessous, cet icône est parfaitement visible.

  • Signet bleu = filtre non sauvegardé
  • Signet jaune = filtre sauvegardé

Pour sauvegarder un filtre, il suffit de cliquer sur le signet devant votre filtre et de cliquer sur « Sauvegarder ce filtre ».

Note : Vous remarquez que des filtres d’affichage sont préenregistrés, comme un filtre pour le protocole TCP, par exemple.

Une nouvelle fenêtre apparaît et votre filtre, que vous envisagez de sauvegarder apparaît en bas de la liste.

Vous pouvez renommer ce filtre avant de le sauvegarder en double cliquant sur « Nouveau filtre d'affichage » puis cliquez sur "OK".

Ensuite, vous allez voir que la couleur du signet change automatiquement et celui-ci se retrouve dans la liste des filtres proposés.

Pour manager vos filtres d’affichage, il faut faire une clique gauche sur le signet et cliquer sur « Manage Display filters ». Ensuite, vous retrouverez la même fenêtre que quand on sauvegarde un filtre d’affichage.

C. Supprimer un filtre d’affichage

Pour supprimer un filtre, il suffit de cliquer sur le signet et cliquer sur "Supprimer ce filtre". Immédiatement, la couleur du signet repasse au bleu.

Voici le résultat :

D. Dupliquer un filtre d’affichage

Avant cette étape et pour vous montrer, j’ai réenregistré mon filtre précédemment créé. Pour dupliquer un filtre, il faut cliquer sur le signet comme d’habitude et ensuite « Manage Display filters » afin d'ouvrir le gestionnaire de filtres.

Vous voyez de nouveau la même fenêtre que pour sauvegarder votre filtre, pour le dupliquer il suffit de cliquer sur l’icône suivant :

Dès que vous avez cliqué sur l’icône, c’est une copie conforme du filtre que vous avez enregistré précédemment qui sera créée. Il suffit juste de renommer le filtre et mettre la nouvelle valeur puis cliquer sur "OK" (même principe que pour la sauvegarde).

Note : depuis la fenêtre filtres d’affichage, vous pouvez sauvegarder/supprimer ou ajouter directement des filtres.

Où sont sauvegardés nos filtres et sous quel format ?

Pour savoir où sont sauvegardés nos filtres, il faut retourner dans la fenêtre de gestion des filtres d’affichage et en bas à droite vous avez la localisation du fichier qui est affichée :

Par défaut, il se trouve dans le répertoire suivant : C:\Users\votre_utilisateur\AppData\Roaming\Wireshark. Le fichier ce nomme  dfilters et on retrouve à ses côtés d'autres fichiers comme le fichier des filtres de capture.

C’est un simple fichier texte, vous pouvez aussi passer par ici pour gérer vos filtres d’affichage, comme pour les filtres de capture, en fait.

C. Les opérations de combinaisons et de logique

Wireshark permet de combiner plusieurs filtres d’affichage. Voici un tableau récapitulatif avec des exemples d’opérateurs :

Type Descriptions Valeurs Exemples
Comparaisons Afficher les paquets avec comme valeur égale à... eq ou == ip.addr == 192.168.1.10
Ne pas afficher les paquets avec comme valeur... not ou != not http
Afficher les paquets avec une valeur plus grande que... gt ou > dns.time > 1
Afficher les paquets avec une valeur plus petite que... lt ou < http.time < 1
Afficher les paquets avec une valeur plus grande ou égale que... ge ou >= dns.time >= 1
Afficher les paquets avec une valeur plus petite ou égale que... le ou <= http.time =< 1
Afficher les paquets contenant une valeur contains frame contains "GET"
Combinaisons Afficher les paquets contenant deux valeurs and ou && ip.addr == 192.168.1.10 && tcp.port==80
Afficher les paquets contenant les valeurs suivantes in http.request.method in {"GET", "POST"}
Afficher les paquets ayant une des deux valeurs or ou || dns or smb

Si vous souhaitez aller plus loin, voici la documentation de Wireshark à ce sujet : Docs - Wireshark.

IV. Les boutons de filtre d’affichage

Dans cette partie du tutoriel, nous allons nous intéresser aux boutons de filtre d'affichage. C'une fonctionnalité très pratique de Wireshark qui va permettre de créer des boutons de filtres d’affichage dans le but d’appeler vos filtres rapidement.

A. Création d’un bouton

Commençons par voir une première méthode, depuis la barre filtre d’affichage. Au bout de la barre de filtres d’affichage, il y a un bouton "+" comme ceci :

Cliquer sur ce bouton pour paramétrer votre nouveau bouton d’affichage, en dessous de la barre de filtres d’affichage apparaît la configuration de votre bouton.

Note : si vous avez appliqué un filtre d’affichage, celui-ci sera automatiquement repris pour paramétrer ce nouveau bouton.

Voici ce qu’il faut rentrer au minimum (en gras) pour créer un bouton de filtre d’affichage :

  • Étiquette : nommer votre bouton
  • Filtre : filtre d’affichage auquel vous souhaitez avoir accès rapidement
  • Comment : description du bouton, cette partie est optionnelle

Une fois les paramètres du bouton renseigné, cliquez sur "OK" :

Votre bouton de filtre d’affichage apparaît ici, en l'occurrence "nas_ip" pour ma part.

Découvrons une seconde méthode permettant de créer un bouton, à partir des préférences de Wireshark.

Pour aller dans les préférences des boutons de filtres d’affichage, il faut aller sur : "Editer" puis "Préférences".

Ensuite, cliquez sur la section « Filter buttons » à gauche. À partir de maintenant, l’ensemble des configurations des boutons de filtres d’affichage seront effectuées par ce menu de configuration.

Ici, vous pouvez cacher des boutons de filtre en dévalidant le bouton comme dans l’image ci-dessus avec le bouton "log4j". Ainsi, il ne sera pas visible dans la barre d'outils.

Pour ajouter un nouveau bouton, cliquez sur le "+" afin de faire apparaître une nouvelle ligne vide.

Dans cet exemple, je vais créer un bouton s’appelant "http" et qui aura pour filtre d’affichage le protocole http. Voici les infos que je vais renseigner :

  • Label : nom du filtre à valeur = http
  • Filtre : filtre d’affichage à valeur = http

Une fois votre bouton est créé cliquez sur "OK". Un nouveau bouton nommé http va apparaître automatiquement :

Le bouton est bien visible dans l'interface de Wireshark :

Maintenant, testons notre bouton : cliquez sur "http". Automatiquement, le filtre d’affichage va remplir la valeur du filtre de notre bouton et dans la liste des paquets nous voyons seulement le protocole http.

B. Créer une arborescence de filtre dans un bouton

Depuis la version 3.4 de Wireshark, il est possible de créer une arborescence de filtre sur un bouton. C'est intéressant, car cela permet d’optimiser l’affichage des boutons en créant des groupes de filtres d'affichage. Commencez par effectuer la même manipulation que pour créer un bouton en cliquant sur le "+".

Pour créer une arborescence, il faudra créer plusieurs boutons, donc nous allons en créer deux. Dans notre exemple, nous allons créer une arborescence pour TCP, dans ce bouton nous aurons 2 filtres :

  • Afficher les demandes de connexion TCP :
    • Label : tcp//syn
    • Expression de filtre : tcp.flags.syn==1
  • Afficher les erreurs TCP :
    • Label : tcp//erreurs
    • Expression de filtre : tcp.flags.analysis

Pour créer une arborescence, cela se passe dans la colonne label comme ceci :

Tcp//syn
Tcp//erreurs

Ce sont les deux // qui permettent de créer une arborescence, il faut absolument avoir le même nom avant les slash dans le label. On obtient ce résultat :

Une fois que votre arborescence est configurée, cliquez sur "OK". Elle apparaît automatiquement au bout à droite de la barre des filtres d’affichage, il suffit de cliquer dessus pour voir notre arborescence complète.

C. Supprimer un bouton d'affichage

Il suffit de sélectionner votre bouton que vous souhaitez supprimer en cliquant dessus et ensuite appuyer sur le bouton "-".

Dès que vous cliquez sur le bouton "OK", le bouton disparaît au niveau de la barre des filtres d’affichage.

D. Copier un bouton d’affichage

Il suffit de sélectionner le bouton que vous souhaitez copier en cliquant dessus et ensuite appuyer sur le bouton suivant :

Vous faites la même opération que pour la création d’un bouton, dès que vous cliquez sur "OK", un nouveau bouton apparaît.

Deux boutons "http" sont bien visibles :

E. Ordre d’affichage des boutons

Il suffit de sélectionner le bouton que vous souhaitez réordonnancer dans la liste et appuyer sur les boutons avec une flèche, soit vers le haut, soit vers le bas. Quand la réorganisation est terminée, cliquez sur "OK" pour valider.

F. Supprimer l’ensemble des boutons d’affichage

Dans le gestionnaire des boutons d'affichage, c'est-à-dire toujours dans la section "Filter Buttons", cliquez sur le bouton suivant afin de tout supprimer et validez.

G. Copier les boutons d’affichage d’un autre profil

Vous pouvez copier les boutons d’autres profils de Wireshark. Il suffit de cliquer sur « Copy from » et de sélectionner votre profil source.

Une fois que les boutons du profil "Betty-TCP" sont récupérés, on peut voir que mon profil dispose d'un lot de boutons supplémentaires.

H. Où sont sauvegardés nos boutons et sous quel format ?

Pour savoir où sont sauvegardés nos boutons, il faut regarder dans la fenêtre de gestion des filtres de bouton d’affichage et en bas à droite vous avez la localisation du fichier. La méthode est habituelle, en fait.

Par défaut, il se trouve dans le répertoire  C:\Users\votre_user\AppData\Roaming\Wireshark et le fichier se nomme dfilter_buttons.

Comme pour les filtres en eux-mêmes, c'est un simple fichier texte, vous pouvez aussi passer par ici pour gérer vos boutons d’affichage.

V. Conclusion

Dans ce cinquième tutoriel sur Wireshark, nous avons vu les filtres d’affichage et l’utilisation des boutons de filtre d’affichage, qui sont des fonctionnalités très précieuses que ce soit pour des analyses de performances ou de cybersécurité.

Dans cet article, nous avons vu la base des filtres d’affichage. Voici ce qu’il faut retenir :

  • Les filtres d’affichage sont disponibles pour l’ensemble des protocoles dans Wireshark
  • La syntaxe est différente des filtres de capture

Un dernier mot je vous conseille fortement de faire des boutons de filtres d’affichage par profil. Le prochain article de cette série sur Wireshark portera sur la résolution de nom.

author avatar
Yohan Ingénieur performance réseau
Exerce depuis maintenant 10 ans et demi en tant que responsable d’infrastructure dans une entreprise d’assurance (2 ans en alternance). Plus spécialisé dans l'analyse de traces réseau et de métrologie NPMd , je connais les environnements Cisco ACI , catalyst, Alcatel entre autres, à travers le site it-connect.fr. Je souhaite pouvoir partager mon expérience et mes connaissances réseau. J'ai une chaîne YouTube dédiée à wireshark.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.