← Accueil

PCTAMALOU

Semaine 13 : La Vision Panoramique – Analyse de Trafic Avancée avec Wireshark

Par Platon-Y – pctamalou.fr & e-of-h.fr

🎯 Objectif de la semaine

Maîtriser Wireshark pour lire le trafic réseau comme un livre ouvert. Capturer, filtrer et analyser les paquets à tous les niveaux du modèle TCP/IP, reconstruire les conversations, détecter les anomalies et comprendre ce que les outils abstraits cachent.

Pourquoi Wireshark est indispensable : Tous les outils de sécurité (Nmap, Metasploit, etc.) génèrent du trafic réseau. Sans comprendre ce trafic au niveau paquet, vous êtes aveugle à ce qui se passe réellement sur le fil.

flowchart TD A[📡 Trafic réseau brut] --> B[🎯 Capture Wireshark] B --> C{🔍 Analyse par couche} C --> D[📄 Application
HTTP, DNS, FTP, SSH] C --> E[✉️ Transport
TCP, UDP, Ports] C --> F[🌐 Réseau
IP, ICMP, Routage] C --> G[🔗 Liaison
Ethernet, MAC, ARP] D --> H[🧠 Compréhension
des services] E --> I[🎯 Suivi des
conversations] F --> J[🗺️ Cartographie
des routes] G --> K[🔎 Détection
anomalies] H --> L[📊 Rapport d'analyse
professionnel] I --> L J --> L K --> L style D fill:#00d4ff,stroke:#000 style E fill:#9d4edd,stroke:#000 style F fill:#00f5a0,stroke:#000 style G fill:#ff6b00,stroke:#000 style L fill:#11151f,stroke:#fff,stroke-width:2px

📚 Sujet – Théorie (1 heure)

Wireshark : Le microscope du réseau

Wireshark n'est pas un simple sniffer. C'est un analyseur protocolaire complet qui déconstruit chaque paquet selon le modèle OSI, vous permettant de voir exactement ce que Nmap, Metasploit ou un navigateur envoient sur le réseau.

📦 Anatomie d'un paquet capturé

🎯 Couche Application (HTTP, DNS, SSH)

Ce que vous voyez : Requêtes GET/POST, réponses HTML, requêtes DNS, handshake SSH

Analyse sécurité : Credentials en clair, injections SQL dans paramètres, beaconing malware

✉️ Couche Transport (TCP/UDP)

Ce que vous voyez : Ports source/destination, flags TCP (SYN, ACK, FIN), séquence numbers

Analyse sécurité : Scan de ports (SYN floods), connexions inhabituelles, dénis de service

🌐 Couche Réseau (IP, ICMP)

Ce que vous voyez : Adresses IP source/destination, TTL, protocole, fragmentation

Analyse sécurité : Spoofing IP, traceroute furtif, ping floods

La philosophie de l'analyse protocolaire

Analyser du trafic avec Wireshark, c'est comme lire les pensées du réseau. Chaque protocole a sa grammaire, sa syntaxe, ses patterns normaux et anormaux.

🔍 Les 3 niveaux de lecture d'une capture :

  1. Macroscopique : Statistics → Protocol Hierarchy - Quelle proportion de chaque protocole ?
  2. Mésoscopique : Statistics → Conversations - Qui parle à qui, combien, comment ?
  3. Microscopique : Analyse paquet par paquet - Quel est le contenu exact de chaque échange ?

Filtres Wireshark : Le langage de sélection

Les filtres d'affichage sont un langage de requête puissant pour le trafic réseau. Deux types :

🎯 Filtres de capture (BPF)

host 192.168.1.1 - Seulement ce host

port 80 - Seulement le port 80

not arp - Exclure ARP

src net 192.168.0.0/24 - Source dans ce réseau

🔍 Filtres d'affichage (Wireshark)

http.request.method == "GET" - Requêtes GET

tcp.flags.syn == 1 - Paquets SYN

dns.qry.name contains "google" - Requêtes DNS Google

ip.addr == 192.168.1.1 and tcp.port == 443 - Combinaison

⚠️ Aspects légaux et éthiques cruciaux

La capture de trafic est soumise à des restrictions strictes :

  • En entreprise : Autorisation écrite obligatoire, même sur votre propre machine
  • En public : Capturer le trafic WiFi d'autrui est généralement illégal
  • Sur Internet : Seulement votre trafic ou celui de systèmes que vous administrez
  • Documentation : Gardez trace des autorisations et du contexte de chaque capture

Follow Stream : Reconstruire la conversation

La fonction "Follow TCP Stream" est l'équivalent de reconstruire une conversation téléphonique à partir d'enregistrements fragmentés. Wireshark rassemble tous les paquets d'une connexion TCP, réordonne par numéro de séquence, et affiche le flux applicatif complet.

🔬 Mission pratique – Laboratoire (2 heures)

🏁 Configuration : Votre lab Host-Only avec Kali (attacker), Metasploitable2 (cible vulnérable), Ubuntu (cible propre). Toutes les IPs connues.

Étape 1 : Installation et configuration sécurisée

# Installation complète avec support avancé
sudo apt update
sudo apt install wireshark tshark wireshark-qt -y

# Configuration sécurisée : permettre capture sans root
sudo dpkg-reconfigure wireshark-common
# Choisir "Yes" pour allow non-superusers to capture packets

# Ajouter votre utilisateur au groupe wireshark
sudo usermod -a -G wireshark $USER

# Redémarrez la session ou exécutez :
newgrp wireshark

# Vérification
tshark --version
wireshark --version

Étape 2 : Capture de base et identification des interfaces

# Identifier l'interface Host-Only
ip a | grep "inet "
# Notez l'interface correspondant à 192.168.56.x (ex: enp0s8)

# Alternative : liste détaillée
tshark -D
# Affiche toutes les interfaces disponibles

# Capture en ligne de commande (pour analyse ultérieure)
tshark -i enp0s8 -w capture_basique.pcap -c 100
# -i : interface, -w : fichier sortie, -c : nombre de paquets

# Lancement interface graphique
wireshark &
# Ou en ligne de commande : wireshark -i enp0s8

Étape 3 : Scénarios de capture structurés

📡 Scénario 1 : Analyse du trafic de découverte

Objectif : Voir ce que Nmap envoie réellement sur le réseau

# Dans Wireshark : Démarrer capture sur l'interface Host-Only
# Filtre de capture : host 192.168.56.102 (Metasploitable2)

# Dans un terminal séparé, lancer un scan Nmap
nmap -sS -p1-100 192.168.56.102

# Dans Wireshark, analyser :
# 1. Filtre : tcp.flags.syn == 1 and tcp.flags.ack == 0
# 2. Statistics → Conversations → TCP
# 3. Suivre un flux TCP complet (clic droit → Follow → TCP Stream)

À observer : La séquence SYN → SYN-ACK → RST pour chaque port fermé

🌐 Scénario 2 : Analyse HTTP et extraction de données

Objectif : Capturer et analyser du trafic web

# Capture en cours...
# Générer du trafic HTTP vers Metasploitable2
curl http://192.168.56.102
curl http://192.168.56.102/mutillidae

# Dans Wireshark :
# 1. Filtre : http
# 2. Clic droit sur une requête → Follow → HTTP Stream
# 3. File → Export Objects → HTTP
# 4. Statistics → Protocol Hierarchy

À observer : Headers HTTP, méthodes GET/POST, codes de réponse, contenu HTML

🔐 Scénario 3 : Analyse SSH et détection de bruteforce

Objectif : Observer le handshake SSH et les tentatives d'authentification

# Capture en cours...
# Générer des tentatives SSH (simuler un bruteforce)
for i in {1..5}; do
    ssh msfadmin@192.168.56.102 -o ConnectTimeout=2
    sleep 1
done

# Dans Wireshark :
# 1. Filtre : tcp.port == 22
# 2. Observer le handshake SSH (version exchange, key exchange)
# 3. Notez que le contenu est chiffré après le handshake

À observer : Échange de versions, négotiation de clés, puis trafic chiffré

Étape 4 : Techniques avancées d'analyse

# 1. Reconstruction de fichiers transférés
# Après capture HTTP avec téléchargement :
# File → Export Objects → HTTP → Sélectionner et sauvegarder

# 2. Analyse des temps de réponse
# Statistics → TCP Stream Graphs → Round Trip Time
# Détecter des latences anormales

# 3. Détection d'anomalies
# Statistics → Conversations → Compare avec baseline normale
# Chercher des IPs qui parlent trop, des ports inhabituels

# 4. Création de colonnes personnalisées
# Edit → Preferences → Columns → Add
# Exemple : tcp.time_delta (temps entre paquets)

Étape 5 : Filtres avancés et recherche

# Dans la barre de filtre Wireshark :

# Chercher des credentials en clair
http.request.method == "POST" and urlencoded-form

# Détecter des scans de ports
tcp.flags.syn == 1 and tcp.flags.ack == 0 and tcp.window_size <= 1024

# Identifier du trafic DNS suspect
dns.qry.name matches ".*\.ddns\.net$"

# Chercher du trafic vers des ports connus de malware
tcp.dstport in {4444 31337 6667}

# Analyser le trafic ARP pour détecter du poisoning
arp.opcode == 2 and arp.src.hw_mac != arp.dst.hw_mac

Étape 6 : Scripting et automatisation avec tshark

# Analyse en ligne de commande pour rapports automatisés

# Extraire toutes les adresses IP uniques
tshark -r capture.pcap -T fields -e ip.src | sort | uniq

# Compter les paquets par protocole
tshark -r capture.pcap -z io,phs

# Extraire les requêtes DNS
tshark -r capture.pcap -Y "dns" -T fields -e dns.qry.name

# Générer un rapport des conversations TCP
tshark -r capture.pcap -z conv,tcp

# Script complet d'analyse
cat > analyze_pcap.sh << 'EOF'
#!/bin/bash
PCAP=$1
echo "=== Analyse de $PCAP ==="
echo "1. Top IP sources:"
tshark -r $PCAP -T fields -e ip.src | sort | uniq -c | sort -nr | head -10
echo ""
echo "2. Top destinations ports:"
tshark -r $PCAP -T fields -e tcp.dstport | sort | uniq -c | sort -nr | head -10
echo ""
echo "3. Protocols hierarchy:"
tshark -r $PCAP -q -z io,phs
EOF
chmod +x analyze_pcap.sh
./analyze_pcap.sh capture.pcap

Étape 7 : Documentation professionnelle

# Création d'un rapport d'analyse complet
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
REPORT="wireshark_analysis_${TIMESTAMP}.md"

cat > $REPORT << 'EOF'
# Rapport d'analyse Wireshark - PCTAMALOU S13
## Date: $(date)
## Capture: capture_lab.pcapng

## 1. Résumé exécutif
- Durée capture: [X] minutes
- Paquets totaux: [Y]
- Traffic total: [Z] Mo

## 2. Analyse par protocole
```bash
tshark -r capture.pcap -q -z io,phs

## 3. Conversations principales
- Top 10 conversations TCP
- Top 10 conversations UDP

## 4. Anomalies détectées
- [ ] Traffic vers ports inhabituels
- [ ] Paquets malformés
- [ ] Scan de ports détecté
- [ ] Credentials en clair

## 5. Reconstruction de flux
- Flux HTTP analysés: [Liste]
- Fichiers extraits: [Liste]

## 6. Recommendations
1. [Recommandation sécurité 1]
2. [Recommandation sécurité 2]

# Export des données pour visualisation
tshark -r capture.pcap -T ek > capture_$TIMESTAMP.json
# Format JSON pour ElasticSearch/Kibana

🎯 Défi professionnel : Détective réseau

Créez une capture contenant 5 types de trafic différents, puis écrivez un script qui :

  1. Identifie automatiquement chaque type de trafic (HTTP, DNS, SSH, etc.)
  2. Détecte les anomalies (scans, bruteforce, trafic chiffré suspect)
  3. Extrait les IOC (Indicators of Compromise) potentiels
  4. Génère un rapport d'incident structuré

Indice : Utilisez tshark avec différents filtres et analysez les statistiques.

📋 Objectif de la semaine – Validation des compétences

✅ Compétences techniques acquises

  • Capture ciblée avec filtres BPF appropriés
  • Utilisation de 10+ filtres d'affichage avancés
  • Reconstruction complète de flux TCP/HTTP/SSH
  • Extraction de fichiers depuis des captures HTTP
  • Génération de statistiques et rapports automatisés

🧠 Mindset développé

  • Vision en couches du trafic réseau (OSI/TCP/IP)
  • Capacité à "lire" le trafic comme une conversation
  • Conscience des implications légales de la capture
  • Approche méthodique : capture → filtrage → analyse → documentation

⚠️ PROJET DE SYNTHÈSE TRIMESTRE 1

Mission : Créez un script Python complet qui automatise l'analyse de votre lab.

Exigences :

  1. Scanne le réseau avec Nmap (format XML)
  2. Capture du trafic pendant le scan avec tshark
  3. Parse les résultats Nmap avec xml.etree.ElementTree
  4. Analyse la capture pour voir ce que Nmap a envoyé
  5. Génère un rapport Markdown avec :
    • Hôtes découverts et leurs services
    • Analyse du trafic généré par Nmap
    • Recommandations de sécurisation
    • Diagramme réseau généré automatiquement

Livrable : Script fonctionnel + rapport généré + capture .pcap

📚 Ressources avancées

Pour devenir expert Wireshark :

⚠️ Bonnes pratiques professionnelles

  • Rotation des captures : Utilisez ring buffer pour éviter les fichiers géants
  • Chiffrement des captures : Certaines données peuvent être sensibles
  • Metadata : Ajoutez toujours des commentaires aux captures (Edit → Capture File Properties)
  • Baseline : Créez une capture de référence du trafic "normal" de votre lab

🔍 Frère d'armes,

Cette semaine, vous avez acquis la vision aux rayons X du réseau.

Wireshark n'est pas un outil, c'est une superpuissance. La capacité de voir ce que personne d'autre ne voit. De comprendre ce que les autres ne font qu'utiliser.

Vous pouvez maintenant observer Nmap scanner, voir chaque SYN, chaque SYN-ACK, chaque RST. Vous pouvez reconstruire une session HTTP et extraire les fichiers échangés. Vous pouvez identifier un handshake SSH et comprendre pourquoi le contenu qui suit est indéchiffrable.

Cette compétence est fondamentale pour tout ce qui vient :

  • En exploitation : comprendre exactement ce que vos exploits envoient
  • En défense : détecter les attaques que les IDS ratent
  • En forensic : reconstruire des incidents à partir du trafic
  • En reverse engineering : comprendre les communications des malwares

La semaine 13 marque la fin du Trimestre 1. Vous avez maintenant :

  1. Un environnement Kali personnalisé et optimisé
  2. La maîtrise du terminal et des commandes Linux
  3. La capacité de cartographier des réseaux avec Nmap
  4. La vision microscopique du trafic avec Wireshark

Vous n'êtes plus un débutant. Vous êtes un apprenti Gardien avec des outils affûtés.

Le projet de synthèse va consolider tout cela. Prenez le temps de le faire sérieusement. C'est votre première création originale, votre première démonstration de maîtrise.

Le Trimestre 2 commence la semaine prochaine. Nous passerons de l'observation à l'action. De la reconnaissance à l'exploitation.

Vos outils sont prêts. Votre vision est claire. Votre terrain est cartographié.

Maintenant, nous allons tester les portes.

— Platon-Y