Wireshark et les filtres d’affichage
Sommaire
- I. Présentation
- II. Les filtres d’affichage
- III. Gestion des filtres d’affichage
- IV. Les boutons de filtre d’affichage
- A. Création d’un bouton
- B. Créer une arborescence de filtre dans un bouton
- C. Supprimer un bouton d'affichage
- D. Copier un bouton d’affichage
- E. Ordre d’affichage des boutons
- F. Supprimer l’ensemble des boutons d’affichage
- G. Copier les boutons d’affichage d’un autre profil
- H. Où sont sauvegardés nos boutons et sous quel format ?
- V. Conclusion
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 :
- Tutoriel - Installation pas-à-pas de Wireshark
- Tutoriel - Découverte de l'interface Wireshark
- Tutoriel - Astuces pour personnaliser l'interface de Wireshark !
- Tutoriel - Wireshark et les filtres de capture
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
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.