Analyse de protocoles et filtrage de paquets avec Wireshark

Anatomie d'une capture de données

Lors de l'analyse d'un paquet dans Wireshark, les données sont décomposées selon le modèle OSI. Voici une décopmosition type d'une trame capturée :

// Couche Physique / Liaison (Interface et statistiques de réception)
Trame 1024: 64 octets capturés sur l'interface \Device\NPF_{UUID}
Détail : 512 bits reçus, identifiant de capture unique.

// Couche Liaison de données (Ethernet II)
Ethernet II, Source: Intel_a1:b2:c3 (a0:b1:c2:d3:e4:f5), Destination: Cisco_f6:e5:d4 (f0:e1:d2:c3:b4:a5)
Détail : Adresses MAC physiques de l'émetteur et du récepteur.

// Couche Réseau (IPv4)
Internet Protocol Version 4, Src: 10.0.0.15, Dst: 172.16.0.50
Détail : Adresses IP logiques source et destination.

// Couche Transport (TCP)
Transmission Control Protocol, Src Port: 54321, Dst Port: 80, Seq: 1, Len: 120
Détail : Ports de communication, numéro de séquence pour la reconstruction du flux et taille des données utiles.

Modes de visualisation des données brutes

Wireshark permet d'interpréter le contenu binaire des paquets selon pluseiurs formats dans le panneau de données :

  • Raw (Brut) : Affiche le contenu binaire pur sans aucune transformation. Utile pour l'analyse de protocoles propriétaires ou non documentés.
  • As ASCII : Traduit les octets en caractères selon la norme ASCII. Indispensable pour lire les protocoles textuels comme le HTTP, le SMTP ou le FTP.
  • As EBCDIC : (Extended Binary Coded Decimal Interchange Code) Format de codage principalement utilisé sur les systèmes mainframes IBM. Si les données ne proviennent pas d'un tel système, ce mode affichera des caractères illisibles.

Organisation de l'interface de travail

L'interface principale est segmentée en trois sections clés pour faciliter le diagnostic :

  1. Liste des paquets : Un résumé chronologique de tout le trafic intercepté. La colonne "Info" fournit une interprétation contextuelle (souvent le résumé de la couche la plus haute).
  2. Arborescence des protocoles : Une vue hiérarchique détaillée du paquet sélectionné. Si une section apparaît en rouge, cela indique généralement une erreur de somme de contrôle (checksum) détectée par l'analyseur.
  3. Hexdump : La représentation binaire (à gauche) et textuelle (à droite) du paquet. Cliquer sur un champ dans l'arborescence mettra en évidence les octets correspondants ici.

Maîtrise des filtres d'affichage

Le filtrage est essentiel pour isoler des incidents au sein d'un volume de données massif. Voici des syntaxes avancées pour affiner vos recherches :

// Filtrage complexe combinant IP, protocole et contenu
(ip.src == 192.168.1.50 or ip.dst == 192.168.1.50) 
and http.request.method matches "(GET|POST)" 
and not frame contains "session_id"

// Explication : Isole le trafic HTTP (GET ou POST) pour une IP spécifique 
// tout en excluant les paquets contenant un identifiant de session.

Filtres par couche réseeau

Liaison (MAC) :

  • eth.addr == 00:11:22:33:44:55 : Paquets impliquant cette adresse MAC.
  • eth.src == 00:11:22:33:44:55 : Paquets envoyés par cette interface.

Réseau (IP) :

  • ip.addr == 10.0.0.1 : Filtre tout le trafic lié à cet hôte.
  • ip.src == 10.0.0.1 and ip.dst == 10.0.0.2 : Isole la conversation unidirectionnelle entre deux hôtes.
  • ip.addr net 192.168.1.0/24 : Visualise le trafic pour un sous-réseau complet.

Transport (TCP/UDP) :

  • tcp.port == 443 : Visualise le trafic HTTPS (TLS).
  • tcp.srcport == 8080 and tcp.dstport == 80 : Trafic sortant d'un proxy vers un serveur web.
  • udp : Affiche uniquement les paquets du protocole UDP.

Application (HTTP) :

  • http.request.uri contains "login" : Recherche les tentatives de connexion dans les URLs.
  • http.user_agent contains "Firefox" : Filtre les requêtes provenant d'un navigateur spécifique.
  • http.response.code == 404 : Identifie les erreurs de type "Page non trouvée".

Étiquettes: Wireshark network-analysis packet-filtering TCP-IP protocols

Publié le 14 août à 04h15