🔬 Wireshark — Capture réseau et filtres TCP
| Formation | BTS SIO option SISR — IRIS Mediaschool |
|---|---|
| Bloc | B2 — Réseaux et sécurité |
| Module | M2.3 — Sécurité des infrastructures |
| Compétence | B2.4 / Lien B3.4 |
| Durée | 3h30 |
🎯 Introduction (10 min)
En 2014, la vulnérabilité Heartbleed (CVE-2014-0160) a montré qu'il est possible de déceler passivement des anomalies TLS dans des captures réseau : une réponse TLS Heartbeat anormalement longue comparée à la requête révélait une fuite mémoire. Cette séance montre la pratique courante de l'analyse réseau avec tcpdump / tshark / Wireshark pour détecter des incidents (performance, fuite de données, scans) sans exploiter la faille.
🎯 Objectifs de la séance
- Maîtriser les méthodes de capture locales et sur SPAN (tcpdump, tshark) et activer/désactiver le mode promiscuous sur une interface Linux.
- Différencier filtres de capture (BPF) et filtres d'affichage Wireshark et les écrire correctement pour isoler un flux.
- Diagnostiquer des problèmes TCP (handshake, retransmissions, RST, window zero), repérer des anomalies ARP et interpréter des échanges DNS.
1. Méthodes de capture et filtres (80 min)
Savoir capturer le trafic de manière ciblée est primordial : capter tout le trafic pendant des heures pompe de l'espace disque et rend l'analyse impossible. tcpdump et tshark sont des outils en ligne de commande indispensables pour des captures rapides et reproductibles ; Wireshark est l'outil GUI pour l'analyse détaillée.
Commandes de capture fondamentales
# Capture HTTP (port 80) sur eth0 et écrire dans un fichier pcap
sudo tcpdump -i eth0 -w capture.pcap 'port 80'
# Lire un pcap et afficher des lignes lisibles (numérique, verbose)
sudo tcpdump -r capture.pcap -n -vv
# Extraire rapidement source/destination et ports depuis un pcap
tshark -r capture.pcap -T fields -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport
Sortie attendue (exemple de ligne tcpdump) :
12:34:56.789012 IP 192.168.10.10.53412 > 93.184.216.34.80: Flags [S], seq 0, win 64240, options [mss 1460,sackOK,TS val 123456 ecr 0,nop,wscale 7], length 0
Cette ligne montre une tentative de connexion (SYN) du client 192.168.10.10 vers le serveur 93.184.216.34 sur le port 80. Les options TCP (MSS, SACK, Timestamp, Window scale) sont visibles et utiles pour diagnostiquer compatibilités et performances.
Mode promiscuous et SPAN/mirroring
En environnement de production (InnovatTech), on capture souvent sur un port miroir (SPAN) du switch. Configurer un SPAN sur un Catalyst typique :
Switch# configure terminal
Switch(config)# monitor session 1 source interface GigabitEthernet1/0/1 both
Switch(config)# monitor session 1 destination interface GigabitEthernet1/0/24
Switch(config)# end
En mode local, activer/désactiver le mode promiscuous sur Linux :
# Activer le mode promiscuous
sudo ip link set eth0 promisc on
# Désactiver
sudo ip link set eth0 promisc off
Filtres de capture BPF
Les filtres BPF (Berkeley Packet Filter) sont utilisés par tcpdump/tshark pour réduire le volume au moment de l'enregistrement — ils sont évalués au niveau noyau/libpcap :
| Filtre BPF | Description |
|---|---|
port 80 | Trafic sur le port 80 uniquement |
host 192.168.10.5 | Trafic vers ou depuis cette IP |
net 192.168.10.0/24 | Tout le trafic du sous-réseau |
tcp and not port 22 | TCP en excluant SSH |
# Capture tout le trafic TCP sauf SSH
sudo tcpdump -i eth0 -w webonly.pcap 'tcp and not port 22'
Filtres d'affichage Wireshark
Les filtres d'affichage sont appliqués après la capture sur le pcap ; ils sont beaucoup plus expressifs (comparaisons textes, chaînes, champs protocolaires) :
| Filtre d'affichage | Description |
|---|---|
ip.addr == 192.168.10.5 | Paquets impliquant cette IP |
tcp.port == 443 | Trafic TCP sur le port 443 |
http.request.method == "GET" | Requêtes HTTP GET uniquement |
dns.qry.name contains "google" | Requêtes DNS contenant "google" |
Le filtre BPF est évalué au niveau noyau et réduit ce qui est stocké sur disque — utiliser obligatoirement pour les captures longues. Le display filter est évalué par Wireshark/tshark sur le pcap déjà capturé, plus riche mais ne réduit pas la taille du fichier.
Conseils pratiques : limiter la capture avec BPF, utiliser la rotation de fichiers si nécessaire et horodater les noms pour retrouver la chronologie : capture-YYYYMMDD_HHMMSS.pcap.
2. Analyse TCP, ARP et DNS (80–90 min)
Three-way handshake TCP
Le three-way handshake (SYN / SYN-ACK / ACK) est la base de toute session TCP. Comprendre l'échange permet d'identifier interruptions et retransmissions :
Client --[SYN]-------> Server
Client <--[SYN,ACK]-- Server
Client --[ACK]-------> Server
Dans Wireshark, un handshake réussi s'affiche en trois lignes successives. Exemple de ligne tcpdump représentant un SYN :
12:34:56.789012 IP 192.168.10.10.53412 > 192.168.30.5.80: Flags [S], seq 0, win 64240, length 0
Retransmissions et diagnostics de performance
Les retransmissions se manifestent lorsque des segments n'ont pas été acquittés dans le délai imparti : Wireshark marque ces paquets TCP Retransmission ou Fast Retransmission. Pour isoler ces paquets :
tshark -r capture.pcap \
-Y "tcp.analysis.retransmission || tcp.analysis.fast_retransmission" \
-T fields \
-e frame.number -e ip.src -e ip.dst -e tcp.seq -e tcp.len
Signes associés à un lien problématique :
- Forte proportion de retransmissions dans la capture.
- Latence RTT élevée visible dans la colonne Time delta.
- Fenêtres TCP qui tombent à zéro (TCP window size = 0) provoquant des pauses et une dégradation des performances.
Un RST (reset) coupe une connexion immédiatement. Une vague de RSTs peut indiquer un scanner actif, un pare-feu qui ferme des sessions, ou un service planté. À surveiller en priorité lors d'un incident.
Analyse ARP
Le protocole ARP permet la résolution adresse IP → adresse MAC sur un LAN. Un échange typique : "Who has 192.168.10.5? Tell 192.168.10.1" suivi de la réponse. Les signes d'ARP spoofing/poisoning incluent :
- Des réponses ARP non sollicitées (gratuitous ARP) associant une IP à plusieurs MACs distincts.
- Des annonces répétées d'une même IP depuis des MACs différents.
# Afficher toutes les requêtes et réponses ARP
tshark -r capture.pcap -Y "arp" -V
Analyse DNS
Le modèle query/response DNS est simple à observer dans Wireshark. Les codes de réponse à surveiller :
| Code | Signification | Diagnostic |
|---|---|---|
NOERROR | Résolution réussie | Normal |
NXDOMAIN (3) | Nom de domaine inconnu | Faute de frappe, domaine inexistant, malware DGA |
SERVFAIL (2) | Erreur serveur | Problème de résolution upstream, interception |
# Toutes les requêtes DNS pour example.com
dns.qry.name == "example.com"
# Toutes les réponses NXDOMAIN
dns.flags.rcode == 3
Statistiques Wireshark
Les vues statistiques de Wireshark sont des outils décisifs pour isoler un incident :
- Analyze > Protocol Hierarchy — vue agrégée des protocoles présents et de leur proportion dans la capture.
- Statistics > Conversations — identifie les flux les plus volumineux par IP/port.
- Statistics > IO Graph — trace le volume de trafic dans le temps ; enrichissable avec un display filter (ex :
tcp.analysis.retransmission) pour corréler des pics de retransmissions avec une fenêtre temporelle précise.
Exercice guidé en classe : ouvrir Protocol Hierarchy puis Conversations, filtrer sur les IP source/sink suspectes pour construire une timeline de l'incident.
🖥️ Travaux Pratiques (90 min)
Contexte du TP
Vous êtes technicien réseau chez InnovatTech SARL. Le formateur vous fournit un fichier pcap (tp1_innovattech.pcap) contenant :
- Un scan Nmap depuis une IP externe.
- Une connexion HTTP contenant des credentials en clair.
- Des requêtes DNS vers des domaines variés.
Objectif
Analyser le pcap, identifier les éléments constitutifs de l'incident (scan, exfiltration ou mauvaise configuration) et trouver la cause d'une perte de performance (retransmissions TCP). Produire une liste des 5 anomalies principales.
Prérequis techniques
- Wireshark 4.x installé sur le poste de TP.
- tcpdump / tshark / tcpflow disponibles (Debian 12).
- Fichier fourni :
tp1_innovattech.pcap.
Étape 1 — Inspection rapide (10 min)
Ouvrir le pcap dans Wireshark et exécuter Analyze > Protocol Hierarchy pour avoir un aperçu des protocoles présents. Repérer les flux HTTP, DNS et les connexions TCP abondantes.
Étape 2 — Identifier le scan Nmap (20 min)
Appliquer le filtre d'affichage suivant pour repérer de nombreux SYN sans complétion de handshake :
tcp.flags.syn == 1 && tcp.flags.ack == 0
Regrouper par ip.src (Statistics > Conversations) pour trouver l'IP scanner. Vérifier les patterns (ports successifs, timing rapproché) qui confirment un scan.
Étape 3 — Trouver les credentials en clair (15 min)
Filtrer les requêtes HTTP : http.request, puis utiliser Right-click → Follow → TCP Stream sur la connexion HTTP suspecte. Parcourir le contenu ASCII pour repérer des formulaires ou la chaîne Authorization: Basic ou des paramètres POST contenant username / password.
Étape 4 — Analyser les retransmissions (20 min)
Rechercher les retransmissions TCP :
tshark -r tp1_innovattech.pcap \
-Y "tcp.analysis.retransmission || tcp.analysis.fast_retransmission" \
-T fields \
-e frame.number -e ip.src -e ip.dst -e tcp.seq -e tcp.len
Ouvrir IO Graph et tracer une courbe en appliquant le filtre tcp.analysis.retransmission pour visualiser les pics temporels ; corréler ces pics avec d'autres événements (scans massifs ou pertes au niveau liaison).
Étape 5 — Synthèse et recommandations (25 min)
Rédiger la liste des 5 anomalies et proposer des actions correctives :
- Rate-limit sur le firewall pour la source du scan.
- Migration HTTP → HTTPS pour protéger les credentials.
- Vérification de la MTU/interface pour les pertes physiques.
- Déploiement de règles IDS pour détecter scans et brute-force.
Livrable attendu
Un document PDF ou Markdown (1 page) contenant :
- Les 5 anomalies identifiées avec timestamp et numéro(s) de trame.
- Une explication courte de la cause probable pour chaque anomalie.
- 3 recommandations opérationnelles immédiates pour InnovatTech.
Critères de réussite
- Les 5 anomalies sont clairement listées et datées (timestamp ou numéro de trame).
- La cause du problème de performance est argumentée avec preuves (captures filtrées).
- Une action corrective priorisée est proposée pour chaque anomalie.
📌 Synthèse de séance (10 min)
Cette séance vous a montré que la capture réseau doit être ciblée (BPF) puis affinée en analyse (display filters) ; que l'analyse TCP permet de distinguer problèmes applicatifs (erreurs, resets) de problèmes de liens (retransmissions, window zero) ; et que les statistiques Wireshark (Protocol Hierarchy, Conversations, IO Graph) sont des outils décisifs pour isoler un incident.
En une phrase, comment identifiez-vous une retransmission TCP dans Wireshark ?
Séance suivante : Analyse TLS, reconstruction de flux et rapport d'incident — nous analyserons les négociations TLS et apprendrons à extraire des artefacts exploitables pour un rapport.
🎮 QCM — Testez vos connaissances
-
Q1 — Quel filtre BPF capture tout le trafic TCP en excluant SSH ?
- A)
tcp and port 22 - B)
tcp and not port 22 - C)
tcp or not port 22 - D)
not port 22 and udp
- A)
-
Q2 — Combien de paquets composent le three-way handshake TCP ?
- A) 2
- B) 4
- C) 3
- D) 1
-
Q3 — Dans Wireshark, quelle vue permet d'identifier les flux les plus volumineux par IP/port ?
- A) Analyze > Protocol Hierarchy
- B) Statistics > IO Graph
- C) Statistics > Conversations
- D) Analyze > Expert Information
-
Q4 — Quel signe dans un pcap caractérise une attaque ARP spoofing ?
- A) De nombreuses retransmissions TCP consécutives
- B) Des réponses ARP non sollicitées associant une IP à plusieurs MACs différents
- C) Des requêtes DNS avec code NXDOMAIN répétées
- D) Un flag TCP RST sur le port 443
-
Q5 — Quelle commande tshark affiche uniquement les paquets marqués comme retransmission ?
- A)
tshark -r cap.pcap -Y "tcp.flags.syn == 1" - B)
tshark -r cap.pcap -Y "tcp.analysis.retransmission || tcp.analysis.fast_retransmission" - C)
tshark -r cap.pcap -Y "tcp.flags.rst == 1" - D)
tshark -r cap.pcap -Y "arp.opcode == 2"
- A)
📝 Afficher les corrections
- B —
tcp and not port 22— La syntaxe BPF utilisenotpour exclure ;tcp and not port 22capture tout TCP sauf SSH (port 22). - C — 3 paquets — SYN (client → serveur), SYN-ACK (serveur → client), ACK (client → serveur). Trois échanges obligatoires avant tout transfert de données.
- C — Statistics > Conversations — Cette vue liste toutes les paires IP/port communicantes, triables par volume, idéale pour repérer les flux les plus lourds ou suspects.
- B — Réponses ARP non sollicitées avec plusieurs MACs — Un attaquant empoisonne le cache ARP en envoyant des réponses gratuitous associant l'IP cible à sa propre MAC, ce qui se traduit par des conflits MAC visibles dans le pcap.
- B — filtre
tcp.analysis.retransmission || tcp.analysis.fast_retransmission— Wireshark calcule les indicateurs d'analyse TCP et les expose via ces champs ; ce filtre d'affichage (utilisable aussi dans tshark avec-Y) isole précisément les retransmissions.
