Sommaire
Capturer et analyser le trafic réseau avec Wireshark : filtres, protocoles, identification des flux suspects.
🎯 Objectifs de la fiche
- Installation et interface — Installer Wireshark, présentation de l'interface
- Capturer le trafic — Choisir une interface, démarrer/arrêter une capture
- Filtres de capture et d'affichage — Syntaxe des filtres — les plus utiles
- Analyser les protocoles courants — HTTP, DNS, ARP, TCP handshake
- Suivre un flux et exporter — Follow TCP Stream, exporter des paquets
Prérequis
Connaître le modèle OSI et les protocoles réseau courants (TCP, UDP, HTTP, DNS). Avoir une machine Debian ou Windows avec accès réseau.
1. Installation
# Debian/Ubuntu sudo apt install wireshark -y # Répondre Yes pour autoriser les utilisateurs non-root à capturer # Ajouter l'utilisateur au groupe wireshark (pour capturer sans root) sudo usermod -aG wireshark $USER newgrp wireshark # Lancer Wireshark (interface graphique) wireshark # Version ligne de commande sudo apt install tshark -y
2. Interface Wireshark
| Zone | Rôle |
|---|---|
| Barre d'outils | Démarrer/arrêter capture, ouvrir/sauvegarder fichiers .pcap |
| Barre de filtre | Saisir les filtres d'affichage en temps réel |
| Liste des paquets | Affiche chaque paquet capturé (numéro, temps, src, dst, protocole, info) |
| Détail du paquet | Décomposition du paquet par couche OSI (Ethernet, IP, TCP, HTTP...) |
| Données brutes (hex) | Octets bruts du paquet en hexadécimal et ASCII |
3. Capturer le trafic
1. Lancer Wireshark 2. Double-cliquer sur l'interface réseau (ex: eth0, ens3, Wi-Fi) 3. La capture démarre automatiquement 4. Effectuer des actions (naviguer, ping, etc.) 5. Cliquer sur le carré rouge pour arrêter 6. File > Save As pour sauvegarder en .pcap
4. Filtres de capture (Berkeley Packet Filter)
Les filtres de capture s'appliquent AVANT la capture — ils réduisent le volume capturé :
| Filtre BPF | Description |
|---|---|
| host 192.168.1.1 | Trafic de ou vers l'IP 192.168.1.1 |
| port 80 | Trafic sur le port 80 |
| tcp port 443 | Trafic TCP sur le port 443 (HTTPS) |
| udp port 53 | Trafic DNS (UDP port 53) |
| net 192.168.1.0/24 | Tout le trafic du réseau 192.168.1.0/24 |
| not port 22 | Tout sauf SSH |
| icmp | Uniquement les pings ICMP |
| arp | Uniquement les trames ARP |
5. Filtres d'affichage (Display Filters)
Les filtres d'affichage s'appliquent APRÈS la capture — ils filtrent la vue sans perdre les données :
| Filtre Wireshark | Description |
|---|---|
| ip.addr == 192.168.1.1 | Paquets de ou vers cette IP |
| ip.src == 192.168.1.10 | Paquets venant de cette IP |
| ip.dst == 8.8.8.8 | Paquets allant vers cette IP |
| tcp.port == 80 | Trafic TCP port 80 |
| http | Tout le trafic HTTP |
| http.request.method == GET | Requêtes HTTP GET uniquement |
| dns | Tout le trafic DNS |
| dns.qry.name contains google | Requêtes DNS contenant google |
| arp | Trames ARP |
| tcp.flags.syn == 1 | Paquets TCP avec flag SYN (connexions) |
| tcp.flags.rst == 1 | Paquets TCP RST (connexions réinitialisées) |
| !arp && !dns | Exclure ARP et DNS |
6. Analyser les protocoles courants
6.1 Le handshake TCP (3 voies)
Filtre : tcp && ip.addr == VOTRE_IP Séquence à observer : 1. [SYN] Client → Serveur (demande de connexion) 2. [SYN, ACK] Serveur → Client (acceptation) 3. [ACK] Client → Serveur (confirmation) → Connexion établie En cas de port fermé : 1. [SYN] Client → Serveur 2. [RST, ACK] Serveur → Client (port fermé)
6.2 Analyser une requête DNS
Filtre : dns Observer : - Requête (Query) : le client demande l'IP de www.google.fr - Réponse (Response) : le serveur DNS répond avec l'IP Dans le détail du paquet : Domain Name System (query) Queries: www.google.fr: type A, class IN Domain Name System (response) Answers: www.google.fr → 142.250.75.100
6.3 Détecter une tempête ARP
Filtre : arp
ARP normal : quelques requêtes/réponses ponctuelles
ARP suspect : centaines de requêtes ARP en quelques secondes
→ possible ARP spoofing ou boucle réseau
7. Suivre un flux TCP
Follow TCP Stream reconstitue la conversation complète entre client et serveur :
1. Filtrer le trafic HTTP : filtre "http" 2. Clic droit sur un paquet HTTP 3. Follow > TCP Stream 4. La fenêtre affiche la conversation complète : - En rouge : données envoyées par le client (requête) - En bleu : données envoyées par le serveur (réponse) Utile pour : - Voir le contenu d'une requête HTTP non chiffrée - Analyser des transferts de fichiers FTP - Détecter des mots de passe en clair (Telnet, FTP, HTTP Basic Auth)
8. tshark — Wireshark en ligne de commande
# Capturer 100 paquets sur eth0 sudo tshark -i eth0 -c 100 # Capturer uniquement le trafic HTTP sudo tshark -i eth0 -f "tcp port 80" # Sauvegarder dans un fichier .pcap sudo tshark -i eth0 -w /tmp/capture.pcap # Lire et filtrer un fichier .pcap existant tshark -r /tmp/capture.pcap -Y "http" # Afficher uniquement les IPs source/destination sudo tshark -i eth0 -T fields -e ip.src -e ip.dst
- ☐ Wireshark installé et lancé
- ☐ Capture démarrée sur l'interface réseau du lab
- ☐ Filtre d'affichage http testé
- ☐ Filtre ip.addr testé
- ☐ Handshake TCP observé et identifié
- ☐ Requête DNS capturée et analysée
- ☐ Follow TCP Stream utilisé sur une requête HTTP
Quelle est la différence entre un filtre de capture et un filtre d'affichage ?
✅ Réponse : Le filtre de capture s'applique avant (réduit le volume), le filtre d'affichage après
Quel filtre Wireshark affiche uniquement le trafic HTTP ?
✅ Réponse : http
Que permet Follow TCP Stream ?
✅ Réponse : Voir les paquets d'une seule connexion TCP reconstituée
Combien d'étapes comporte le handshake TCP ?
✅ Réponse : 3 (SYN + SYN/ACK + ACK)
Pourquoi Wireshark ne peut-il généralement pas voir le contenu HTTPS ?
✅ Réponse : TLS chiffre le contenu — sans clé privée, impossible de déchiffrer