PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Wireshark – Comment décoder un protocole ?

jeudi 19 janvier 2023 à 10:00

I. Présentation

Aujourd’hui, nous allons découvrir une nouvelle fonctionnalité de Wireshark qui permet de décoder un protocole. Cette fonctionnalité permet d’afficher les échanges applicatifs quand un port non standard est utilisé.

Par exemple, pour un serveur Web les ports standard sont 80 et 443, donc si vous utilisez le port 5000 Wireshark ne va pas vous afficher de flux HTTP : à la place du protocole HTTP, vous trouverez "data" dans les détails du paquet.

Avant de continuer, voici la liste des précédents articles de cette série sur Wireshark :

II. Comment découvrir le flux applicatif ?

A. Quelle méthode utiliser ?

Pour découvrir le flux applicatif derrière un port non standard, il n’y a qu’un seul moyen dans Wireshark, c’est de regarder dans la vue « Packets Octets ». Pour se faire, il faut sélectionner un paquet dans la liste des paquets de votre fichier de capture.

Wireshark - Packet octets

B. Limite de cette méthode

Cette méthode est pratique quand les flux ne sont pas chiffrés, si on souhaite utiliser cette méthode avec des flux chiffrés il faudra d’abord déchiffrer les flux que ce soit via le certificat ou en live en enregistrant les clés de sessions TLS (comme nous l'avons vu précédemment).

Une autre limite à cette méthode est sur les applications éditeurs propriétaires non reconnus par Wireshark, car ceux-ci n’ont pas été ajoutés à la liste des protocoles connus par Wireshark.

III. Utilisation de la fonctionnalité Decode As

A. Trouver les paquets avec des données

Pour trouver des paquets avec des données applicatives, vous pouvez regarder la taille des paquets envoyés sur le réseau.

Dans le panneau « Packet List », vous devez regarder la colonne « Length » à la recherche de paquets supérieurs à 64 octets.

Dans l’image ci-dessus, vous voyez des paquets à 257 octets (en-têtes protocolaires + données). Dans la colonne "Info", vous pouvez voir la taille des données transmises sur le réseau, ici 199 octets. Donc nous allons examiner les paquets avec des données applicatives.

B. Découverte du protocole utilisé

Pour examiner le paquet, nous allons regarder le détail du paquet. Dans cette partie, on va s'intéresser au port TCP utilisé.

Wireshark - Identifier le port TCP

Le port TCP qui m’intéresse dans ce cas présent est le port de destination, ici « 1512 ». Vous pouvez remarquer qu'en dessous de TCP, nous avons « DATA » au lieu de l’application comme TLS, http, smtp… Car Wireshark ne reconnaît pas le protocole.

Note : Wireshark s’appuie sur les numéros de port TCP/UDP pour reconnaître l’application.

Maintenant nous allons regarder le panneau « Packet Octets ».

Wireshark - Packet octets - Exemple

Dans l’image ci-dessus, on arrive à voir des données applicatives :

<188>568: Feb 24 16:03:46.718 CET: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: test] [Source: 10.10.10.10] [localport: 22] [Reason: Login Authentication Failed] at 16:03:46 CET Thu Feb 24 2022

Ce type de données ressemble à un message de log envoyé vers un syslog.

C. Décoder le protocole

Maintenant que nous avons identifié le protocole utilisé, nous allons le décoder pour avoir un affichage plus lisible et correspondant à l’applicatif.

Sur la liste des paquets, effectuez un clic droit sur un paquet pour sélectionner « Décoder comme… »

Wireshark - Décoder comme

Une nouvelle fenêtre s’ouvre, pour configurer le protocole :

Wireshark - Décoder comme - Config

Ici, il faut sélectionner le port TCP que nous souhaitons déclarer comme port TCP applicatif dans la « colonne valeur ». Pour cela, cliquez sur « le numéro de port TCP ». Ici on choisit : 1512.

Wireshark - Décoder comme - Choix port TCP

Ensuite, il reste à modifier une colonne : la colonne « Actual » qui va nous permettre de choisir le protocole à décoder. Il suffit de cliquer sur « (none) » pour afficher la liste des protocoles.

Wireshark - Décoder comme - Choix du protocole

Sélectionnez « Syslog » puis cliquez sur « OK » une fois votre configuration terminée.

N.B : Vous pouvez taper les premières lettres du protocole pour arriver sur celui dont vous avez besoin.

Wireshark - Décoder comme - Config terminée

D. Vérification

Une fois que vous avez cliqué sur « OK », Wireshark recharge automatiquement votre capture réseau.

Maintenant à la place de TCP, vous allez voir le protocole SYSLOG et dans la colonne info , vous allez voir les messages applicatifs.

Wireshark - Décoder le protocole syslog

Par ailleurs, dans le détail du paquet, vous devez voir apparaître « Syslog » au lieu de DATA :

Wireshark - Syslog remplace Data

IV. Modifier les ports d’un protocole

Il est possible de modifier les ports d’un protocole dans Wireshark en passant par « Editer » afin d’ajouter des ports en dur dans la configuration de Wireshark.

Vous devez cliquer sur « Editer » ensuite « Préférences… ».

Wireshark - Menu Editer Préférences

Une nouvelle fenêtre s’ouvre, cliquez sur la flèche à côté de "Protocols" pour dérouler la liste des protocoles de Wireshark.

Wireshark - Personnaliser un protocole

Cliquez sur « Syslog » dans cette liste.

Wireshark - Personnaliser le protocole syslog

Vous pouvez ajouter une liste de ports en utilisant une virgule pour la séparation.

Wireshark - Ajouter un port pour un protocole

Une fois terminée, vous devez cliquer sur OK pour recharger la trace réseau.

N.B : le fond vert valide la syntaxe, un fond rouge vous avertit d’une erreur.

V. Conclusion

Cet article sur Wireshark et la fonctionnalité "décoder un protocole" peut-être une aide précise lors d'une analyse liée à un incident de cybersécurité si les ports par défaut sont modifiés, ou bien si les équipes en charge des applications utilisent des ports exotiques.

Le prochain article sera sur le logiciel TraceWrangler qui permet d’anonymiser un fichier de capture.

L'article Wireshark – Comment décoder un protocole ? est disponible sur IT-Connect : IT-Connect.