Wireshark
Objectif : Wireshark est l'analyseur de protocoles réseau le plus utilisé au monde. Il permet de capturer le trafic réseau en temps réel ou d'analyser des fichiers de capture (.pcap
, .pcapng
), de décortiquer les protocoles couche par couche, et d'appliquer des filtres puissants pour isoler et comprendre les communications.
Source : https://www.wireshark.org/
🚀 Démarrage et Capture
Lancer Wireshark
- Généralement lancé depuis le menu de votre OS ou via la commande
wireshark
(peut nécessitersudo
sous Linux pour accéder aux interfaces réseau).
Sélectionner une Interface et Démarrer la Capture
-
Au démarrage, Wireshark liste les interfaces réseau disponibles.
-
Double-cliquez sur l'interface souhaitée (ex:
eth0
,Wi-Fi
) pour démarrer la capture immédiatement. -
Alternativement, sélectionnez l'interface et cliquez sur l'icône en forme d'aileron de requin bleu (ou
Capture -> Start
).
Options de Capture (Avant de démarrer)
-
Accès via
Capture -> Options...
(ou l'icône d'engrenage à côté des interfaces). -
Filtres de Capture (BPF Syntax): Permettent de ne capturer que le trafic correspondant au filtre. Utile pour limiter la taille des captures sur des réseaux très chargés.
-
host 192.168.1.10
: Trafic vers ou depuis cette IP. -
net 192.168.1.0/24
: Trafic vers ou depuis ce sous-réseau. -
port 80
: Trafic sur le port 80 (source ou destination). -
tcp port 443
: Trafic TCP sur le port 443. -
udp port 53
: Trafic UDP sur le port 53. -
src host 10.0.0.5
: Trafic provenant de cette IP. -
dst port 22
: Trafic destiné au port 22. -
icmp
: Trafic ICMP uniquement. -
Combinaisons :
host 192.168.1.10 and port 80
,not port 22
,port 80 or port 443
. -
Fichiers de sortie : Configurer la sauvegarde automatique dans un ou plusieurs fichiers, avec des limites de taille ou de temps.
Arrêter la Capture
- Cliquez sur l'icône carrée rouge d'arrêt (ou
Capture -> Stop
).
🎨 Interface Principale
Wireshark présente généralement 3 panneaux principaux :
-
Liste des Paquets (Packet List) : Chaque ligne représente un paquet capturé (Numéro, Temps, Source IP, Destination IP, Protocole, Infos). Les couleurs indiquent souvent le type de trafic (configurable).
-
Détails du Paquet (Packet Details) : Arborescence montrant les différentes couches (Frame, Ethernet, IP, TCP/UDP, Application) du paquet sélectionné dans la liste. Permet d'inspecter les en-têtes et les données de chaque couche.
-
Octets du Paquet (Packet Bytes) : Représentation hexadécimale et ASCII du contenu brut du paquet sélectionné.
🔍 Filtres d'Affichage (Display Filters)
-
Objectif : Masquer les paquets non pertinents après la capture pour se concentrer sur des communications spécifiques. La syntaxe est différente des filtres de capture.
-
Zone de Saisie : Barre verte/rouge en haut de la fenêtre principale.
Syntaxe de Base
-
protocole
: Affiche uniquement les paquets de ce protocole (ex:tcp
,udp
,http
,dns
,smb
,arp
,icmp
). -
champ [opérateur] valeur
: Filtre basé sur la valeur d'un champ spécifique d'un protocole.
Opérateurs Courants
-
==
oueq
: Égal à -
!=
oune
: Différent de -
>
ougt
: Supérieur à -
<
oult
: Inférieur à -
>=
ouge
: Supérieur ou égal à -
<=
oule
: Inférieur ou égal à -
contains
: Le champ (ou le paquet entierframe
) contient la chaîne de caractères ou la séquence d'octets. -
matches
ou~
: Le champ correspond à une expression régulière (PCRE).
Opérateurs Logiques
-
&&
ouand
: ET logique -
||
ouor
: OU logique -
!
ounot
: NON logique -
Parenthèses
()
pour grouper les expressions.
Exemples de Filtres d'Affichage Utiles
-
Par IP :
-
ip.addr == 192.168.1.10
(Source ou Destination) -
ip.src == 10.0.0.5
(Source uniquement) -
ip.dst == 8.8.8.8
(Destination uniquement) -
not ip.addr == 192.168.1.1
(Exclure une IP) -
Par Port :
-
tcp.port == 443
(Port TCP source ou destination) -
udp.port == 53
(Port UDP source ou destination) -
tcp.dstport == 80
(Port TCP destination uniquement) -
Par Protocole Applicatif :
-
http
(Tout le trafic HTTP) -
http.request.method == "POST"
(Requêtes HTTP POST) -
http.response.code == 404
(Réponses HTTP 404 Not Found) -
dns
(Tout le trafic DNS) -
dns.qry.name == "www.google.com"
(Requêtes DNS pour ce nom) -
smb2
(Trafic SMB version 2/3) -
tls
(Trafic TLS/SSL, souvent sur port 443) -
dhcp
(Trafic DHCP) -
Par Flags TCP :
-
tcp.flags.syn == 1 and tcp.flags.ack == 0
(Paquets SYN purs - début de connexion) -
tcp.flags.reset == 1
(Paquets RST - connexion réinitialisée) -
tcp.flags.fin == 1
(Paquets FIN - fin de connexion) -
Par Contenu :
-
frame contains "password"
(Recherche la chaîne "password" n'importe où dans le paquet) -
http contains "USER-AGENT: curl"
(Recherche dans les paquets HTTP) -
tcp.payload contains 4d:5a
(Recherche la séquence d'octetsMZ
dans le payload TCP) -
Combinaisons :
-
ip.addr == 192.168.1.50 && tcp.port == 80
(Trafic HTTP vers/depuis 192.168.1.50) -
http || dns
(Affiche le trafic HTTP ou DNS) -
ip.addr == 10.0.0.10 and not port 53
(Trafic vers/depuis 10.0.0.10, sauf DNS)
[!Astuce]
Wireshark propose l'auto-complétion pour les filtres. Commencez à taper un protocole (ex:
ip.
) pour voir les champs disponibles. La barre de filtre devient verte si la syntaxe est valide, rouge sinon. Cliquez sur "Expression..." pour un constructeur de filtres graphique.
🔬 Analyse du Trafic
Suivre une Conversation (Stream)
-
Objectif : Reconstituer et visualiser l'échange de données complet entre deux points pour un protocole spécifique.
-
Comment faire : Clic droit sur un paquet de la conversation ->
Follow
->TCP Stream
(ouUDP Stream
,HTTP Stream
,TLS Stream
, etc.). -
Usage : Très utile pour lire des requêtes/réponses HTTP, voir des échanges de données applicatives, ou comprendre le déroulement d'une connexion TCP.
Statistiques
-
Accès via le menu
Statistics
. -
Conversations : Liste les échanges entre paires d'adresses (Ethernet, IPv4, IPv6, TCP, UDP). Utile pour voir qui communique le plus avec qui.
-
Endpoints : Similaire à Conversations, mais liste toutes les adresses uniques et leurs statistiques de trafic.
-
Protocol Hierarchy : Montre la répartition du trafic par protocole. Utile pour avoir une vue d'ensemble rapide de ce qui transite sur le réseau.
-
IO Graphs : Permet de visualiser le débit du trafic (total ou filtré) au fil du temps. Utile pour repérer des pics d'activité ou des transferts de données importants.
-
Resolved Addresses : Affiche les correspondances entre adresses IP/MAC et les noms résolus (DNS, NetBIOS).
Exportation d'Objets
-
Objectif : Extraire des fichiers transférés via certains protocoles.
-
Comment faire :
File -> Export Objects -> HTTP...
(ouSMB
,DICOM
, etc.). -
Usage : Permet de récupérer des images, des exécutables, des documents, etc., téléchargés via HTTP ou transférés via SMB.
Analyse Experte
-
Objectif : Laisser Wireshark identifier des problèmes potentiels ou des anomalies dans la capture.
-
Comment faire :
Analyze -> Expert Information
. -
Usage : Peut signaler des retransmissions TCP excessives, des erreurs, des paquets malformés, etc. (Notes, Chats, Warnings, Errors).
Navigation et Recherche
-
Ctrl + F
(ouEdit -> Find Packet...
) : Rechercher un paquet basé sur un filtre d'affichage, une chaîne hexadécimale ou une chaîne de caractères. -
Ctrl + G
(ouGo -> Go to Packet...
) : Aller directement à un numéro de paquet spécifique. -
Ctrl + Flèche Droite
/Ctrl + Flèche Gauche
: Naviguer vers le paquet suivant/précédent dans l'historique de sélection. -
Clic droit -> Apply as Filter
/Prepare a Filter
: Créer rapidement des filtres basés sur les champs du paquet sélectionné.
✨ Astuces Utiles
-
Coloration : Personnalisez les règles de coloration (
View -> Coloring Rules...
) pour mettre en évidence le trafic qui vous intéresse le plus (ex: paquets RST en rouge vif, trafic DNS en jaune). -
Profils : Créez différents profils (
Edit -> Configuration Profiles...
) pour sauvegarder des ensembles de configurations (colonnes affichées, règles de coloration, filtres préférés) adaptés à différents types d'analyses. -
Colonnes : Personnalisez les colonnes affichées dans la liste des paquets (
Edit -> Preferences -> Appearance -> Columns
) pour afficher directement des informations pertinentes (ex:http.host
,dns.qry.name
). -
Résolution de Noms : Activez/désactivez la résolution de noms (
View -> Name Resolution
) pour voir les noms DNS/NetBIOS au lieu des adresses IP (peut ralentir l'affichage). -
Commentaires : Ajoutez des commentaires aux paquets (
Clic droit -> Packet Comment...
) pour annoter vos découvertes pendant l'analyse.