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 capture réseau (→ mise en œuvre d’un filtre d’affichage)
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éseauL’interface graphique de Wireshark est développée avec le framework Qt.
💻 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, depuis le menu ping_on_guest_side.pcapng
, la capture réseau -
S’assurer que le protocole
ICMP
est désactivé dans la fenêtre qui s’affiche lorsqu’on sélectionne le menu -
Parcourir les informations affichées par Wireshark et 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 ?
-
À quelle position en nombre d’octets par rapport au début de la trame (→ ou offset) , 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 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 messagesICMP
?
-
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 5000.
-
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).
On constate que même si le port 5000 est associé au serveur web du NAS, les trames échangées avec lui ne sont pas forcément du type
HTTP
.En effet, HTTP est basé sur le protocole TCP qui est un protocole orienté connexion garantissant une communication fiable.
Cette fiabilité est obtenue au prix d’échanges supplémentairesau niveau réseau. D’où la présence d’une multitude de trames purement TCP en plus des trames HTTP dans la capture Wireshark.
Dans l’illustration ci-dessous qui représente un échange typique avec le protocole TCP, une requête HTTP se situerait au niveau des flèches marquées DATA alors que les autres flèches correspondent à des échanges transparents pour l’utilisateur mais nécessaires pour garantir l’acheminement des données.
-
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 leport
)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 (ex. tentative d’autentification sur l’interface web) que durant la capture avec un filtrage unique sur l’adresse IP (questions 1 à 4).
💻 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 typeHTTP
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
-
-
🞄 🞄 🞄