Présentation et prise en main Objectifs À l’issue de cette activité, vous devez être capable de … : interpréter sommairement les informations d’un paquet réseau réaliser une capture réseau sélective avec WireShark (→ mise en œuvre d’un filtre de capture) filtrer l’affichage d’une capteur réseau (→ mise en œuvre d’un filtre d’affichage) Pré-requis Notions d’adressage IP et de protocoles Présentation Wireshark est un logiciel qui permet de : capturer le traffic réseau qui transite au travers une interface réseau décoder les paquets réseau capturés visualiser les paquets réseau décodés au travers d’une interface graphique qui permet à un utilisateur d’inspecter en détail leur contenu Wireshark peut être utilisé par : des administrateurs réseau à des fins de dépannage ou d’analyse des ingénieurs réseau (…ou des pirates) pour traquer d’éventuelles failles de sécurité des développeurs pour la mise au point de nouveaux protocoles de communication lors de leur implémentation des étudiants lors de leur formation réseaux. Les 2 composants fondamentaux de Wireshark sont : la librairie qui permet de capturer le traffic réseau. Celle-ci porte le nom de Npcap sous Windows (→ Nmap Packet CAPture) et libpcap sous Linux. l’interface graphique (→ wireshark.exe) ou en ligne de commande (→ tskark.exe) qui permet de configurer et visualiser les captures réseau L’interface graphique de Wireshark est développée avec le framework Qt. Ressources Wireshark User’s Guide pcap-filter - packet filter syntax référence en ligne des filtres d’affichage Prise en main 🖮 Travail n° 1 Installation & 1ère analyse de trame Installer Wireshark avec les options par défaut depuis l’installateur disponible sur \\diskstation\install\wireshark après l’avoir téléchargé en local Lancer Wireshark, attendre la fin de détection des interfaces réseau de la machine puis ouvrir la capture réseau ping_on_guest_side.pcapng S’assurer que le protocole ICMP est désactivé dans la fenêtre qui s’affiche lorsqu’on sélectionne le menu Analyser Protocoles activés… Répondre aux questions suivantes : À quel instant par rapport au début de la capture a été émise la trame n°6 ? Quelle est l’adresse IP de l’émetteur de la trame n°6 ? Quelle est l’adresse MAC de l’émetteur de la trame n°6 ? À quel offset (en nombre d’octets) par rapport au début de la trame se trouve l’information de l’adresse IP de l’émetteur de la trame n°6 ? Lors d’un échange réseau, l’information à transmettre (→ données utiles ou payload en anglais) ne représente qu’une partie de cette trame. Dans notre exemple, le payload est constitué par le contenu du champ nommé “Data”. Calculer le pourcentage en terme d’octets que représente le payload par rapport à l’ensemble de la trame. Activer le protocole ICMP depuis le menu Analyser Protocoles activés… de façon à interpréter le payload des trames et répondre aux questions suivantes : Quel est le type/nom du message ICMP encapsulé dans la trame n°1 ? idem pour la trame n°2. En déduire le nom de la commande qui est à l’origine des trames réseau capturées. Quelle est l’adresse IP de la machine qui a initié l’échange réseau (i.e celle depuis laquelle la commande a été exécutée) ? Quelles sont les valeurs des données (→ champ Data) envoyées aussi bien dans la requête que dans la réponse des messages ICMP ? Filtrage Par défaut, lorsqu’on lance une capture sur une interface réseau depuis Wireshark, toutes les trames “vues” par cette interface sont capturées. Ceci fait ressortir 2 inconvénients potentiels : une capture va produire un fichier volumineux dans lequels les trames intéressantes ne constituent peut-être qu’un faible pourcentage des trames enregistrées les trames qui nous intéressent risquent d’être noyées au sein des autres trames lors de la phase de visualisation. Pour pallier à ces inconvénients, Wireshark dispose d’une fonctionnalité de filtrage. 2 types de filtre sont proposés : les filtres de capture qui sélectionnent les trames à enregistrer dans le fichier de capture. Ces filtres sont spécifiés une fois pour toute avant de lancer la capture. les filtres d’affichage qui permettent de n’afficher qu’une partie des trames capturées sur la base de critères qui peuvent être modifiés au cours de la visualisation et même de la capture. Les filtres de capture utilisent une syntaxe liée à la librairie logicielle qui réalise la capture (→ Npcap sur Windows, libpcap sur Linux). Celle-ci est documentée dans cette page de manuel. Les filtres d’affichage sont quant à eux exprimés dans une syntaxe propre à Wireshark. Celle-ci est documentée dans Building Display Filter Expressions du guide utilisateur. Une référence des champs utilisables dans l’expression d’un filtre d’affichage est quant à elle disponible dans Display Filter Reference 🖮 Travail n° 2 Filtre de capture Lancer une nouvelle capture avec option en spécifiant de n’enregistrer que les trames échangées avec l’hôte 192.168.7.112 (→ le NAS Diskstation) grâce au filtre host 192.168.7.112 Se rendre sur le NAS Diskstation à la fois depuis l’explorateur de fichier (→ \\diskstation) et un navigateur internet (→ http://192.168.7.112:5000 ) Constater que chaque trame capturée mentionne l’adresse du NAS soit dans l’IP source soit dans celle de destination et ce, quel que soit le protocole. Stopper la capture et l’enregistrer sur le disque dur S’aider de la page de manuel de pcap-filter , pour élaborer un filtre de capture visant à n’enregistrer que les trames échangées avec le NAS Diskstation sur le port 5001. Se rendre à nouveau sur le NAS Diskstation à la fois depuis l’explorateur de fichier (→ \\diskstation) et un navigateur internet (→ http://192.168.7.112:5000 ) Constater que seules les trames échangées avec l’interface web du NAS Diskstation sont capturées (le port source ou destination doit valoir 5000). Même si le protocole HTTP fait partie des protocole activés dans Wireshark (→ menu Analyser Protocoles activés…), on s’aperçoit que toutes les trames échangées avec le port 5000 ne sont pas forcément de type HTTP. Stopper la capture, l’enregistrer sur le disque dur puis constater l’impact du filtre de capture sur la taille du fichier en la comparant à celle du fichier associé à la capture précédente (celle qui ne filtre que le host et non le port) Pour constater la différence de taille, il faut bien sûr avoir effectué, depuis l’interface web et l’explorateur de fichiers, les mêmes actions au niveau du NAS qu’à la question 2. 🖮 Travail n° 3 Filtre d’affichage Lancer une nouvelle capture en appliquant le même filtre de capture que dans le travail précédent (host → 192.168.7.112, port → 5000) Se déplacer dans l’interface web du NAS, appliquer — sans forcément stopper la capture — un filtre d’affichage qui vaut http puis constater que seules les trames de type HTTP sont désormais affichées. À partir de Building Display Filter Expressions et de la référence des champs disponibles pour les filtres d’affichage sur le protocole HTTP (→ Display Filter Reference: Hypertext Transfer Protocol ), élaborer et appliquer les filtres d’affichage suivants : n’afficher que les trames HTTP correspondant à des requêtes (→ http.request) n’afficher que les trames HTTP correspondant à des requêtes de type GET (→ http.request.method) n’afficher que les réponses HTTP correspondant à des feuilles de style ou des images au format PNG (→ http.response, http.content_type). Voir Liste des types MIME communs pour déterminer le type MIME des feuilles de style ou des images au format PNG. Pour élaborer un filtre d’affichage, on peut aussi s’aider de l’assistant de Wireshark accessible depuis le menu Analyser Display filter expression… 🞄 🞄 🞄 SN1/2IR - Wireshark Réseau routé