Introduction to Wireshark (Analysis)
Extracted from Incident Response(2).pdf - source PDF page(s) 90-97.

Savoir utiliser les Wireshark fonctionnalités pour améliorer l'analyse du trafic réseau est différent de posséder les compétences nécessaires pour analyser le trafic réseau. Ces derniers ne peuvent découler que de l'expérience, de la pratique et de la recherche dans le monde réel, ainsi que d'une compréhension approfondie des réseaux, comme les informations abordées au début de ce cours. Il existe en ligne une multitude de documents relatifs à l'analyse de réseaux, ainsi que de nombreux autres exemples de fichiers PCAP avec lesquels vous pouvez vous entraîner.
Cette section abordera la première question, à savoir comment tirer parti des principales Wireshark fonctionnalités pour améliorer et faciliter l'analyse manuelle approfondie. Nous explorerons l'application de filtres d'affichage, l'utilisation de colonnes de listes de paquets, le suivi des flux de protocole, l'affichage de différentes statistiques de trafic.
Appliquer des filtres d'affichage
Comme décrit dans les sections précédentes, le filtre d'affichage contrôle les paquets qui apparaissent dans la liste des paquets. Cela facilite considérablement l'analyse du trafic, car le trafic important peut être séparé du bruit général du réseau. Pour filtrer en fonction de la présence d'un protocole ou d'un champ d'en-tête dans un paquet, l'expression doit spécifier uniquement le protocole ou le champ d'en-tête, par ex.
- udp pour afficher uniquement les paquets UDP, et
- http.request pour afficher uniquement les requêtes HTTP

Pour filtrer en fonction des valeurs des champs d'en-tête, vous pouvez spécifier le champ d'en-tête, puis un opérateur de comparaison, puis la valeur à laquelle il doit correspondre. Par exemple, tcp.port == 80 affiche les paquets dont le port source ou de destination est 80 (HTTP), et tcp.window_size_value >= 8000 affiche les paquets TCP dont la taille de fenêtre est supérieure ou égale à 8 000 octets.

Il est possible d'enchaîner plusieurs instructions de filtre à l'aide d'opérateurs logiques, notamment and (&&) et (ou/||). Par exemple, pour afficher les paquets TCP adressés à 192.168.1.7, vous pouvez utiliser ip.dst_host == 192.168.1.7 && tcp, et pour afficher le trafic NTP ou le trafic UDP depuis/vers le port 20000, vous pouvez utiliser ntp ou udp.port == 20000. Le non (! ) exclut certains paquets de l'affichage, par exemple « not ftp » pour exclure les paquets FTP de l'affichage de la liste des paquets. Enfin, les crochets peuvent être utilisés pour regrouper les déclarations.
Streams suivants et colonnes personnalisées
Imaginons que vous souhaitiez analyser une communication HTTP entre un serveur Web et un hôte. Vous souhaitez avoir une vue globale des dizaines de requêtes et de réponses HTTP. Dans ce cas, l'examen de chaque paquet individuel ne nous sera pas très utile. C'est là que se distingue la fonctionnalité Wireshark de suivi des flux de protocoles.

Pour suivre un flux, cliquez avec le bouton droit sur un paquet dans le flux, puis cliquez sur Suivre > Flux TCP/UDP/SSL/HTTP. Les flux inapplicables doivent être grisés dans le menu contextuel. Wireshark doit automatiquement appliquer un filtre d'affichage pour le flux et ouvrir une nouvelle fenêtre affichant le contenu des paquets du flux.

Comme vous pouvez le voir sur l'image ci-dessus d'un simple téléchargement de fichier HTTP, les requêtes HTTP doivent être surlignées en rouge et les réponses HTTP en bleu. Vous pouvez facilement voir l'en-tête de la demande, l'en-tête de réponse et le contenu du fichier. Par rapport à l'examen individuel des paquets de demande et de réponse, l'examen du flux permet d'économiser du temps et des efforts, car la communication s'affiche dans une seule fenêtre.
Outre les flux suivants, vous pouvez afficher des informations spécifiques sur les paquets dans la liste des paquets en personnalisant les colonnes de la liste des paquets.

Pour ajouter une valeur d'en-tête de paquet sous forme de colonne, cliquez avec le bouton droit sur le champ d'en-tête et sélectionnez Appliquer en tant que colonne. Dans l'image ci-dessus, le type de contenu SSL est appliqué sous forme de colonne. L'avantage d'ajouter certaines valeurs d'en-tête sous forme de colonne est la possibilité d'identifier visuellement rapidement les paquets ayant une valeur spécifique qui nous intéresse.
Affichage des statistiques de capture
Wireshark collecte différentes statistiques sur le trafic dans le fichier de capture, telles que les proportions en pourcentage de protocoles, le nombre d'octets transmis à différents hôtes, les adresses IP de tous les hôtes apparaissant dans la capture. Ils sont utiles dans certains scénarios, tels que la recherche de vecteurs d'exfiltration potentiels et l'identification de l'hôte d'exfiltration en fonction de l'utilisation du réseau.
Cette section décrit trois des fenêtres de statistiques :
- Hiérarchie des protocoles
- Conversations,
- et points de terminaison
Hiérarchie des protocoles
La fenêtre Hiérarchie des protocoles affiche les pourcentages du nombre de paquets ou d'octets d'une conversation de protocole par rapport à l'ensemble du trafic. Les protocoles sont organisés en couches allant de la couche 2 à la couche 7. L'image ci-dessous montre :
- 99,7 % du trafic capturé étaient des paquets IPv4
- 96,6 % étant du protocole TCP, et
- 46,3 % étant SSL
- Il montre également qu'il y avait 2167 paquets SSL, totalisant environ 177 Ko.

Pour vérifier un trafic de protocole spécifique dans la liste des paquets, cliquez avec le bouton droit sur un protocole et sélectionnez Appliquer en tant que filtre > Sélectionné/Non sélectionné pour créer et appliquer Wireshark automatiquement un filtre d'affichage affichant ou excluant le trafic de protocole spécifié.
La fenêtre Hiérarchie des protocoles permet également d'identifier l'exfiltration de données par le biais de protocoles inhabituels ou inutilisés. Si vous remarquez qu'une très petite partie du trafic FTP sur un grand réseau n'utilise pas le protocole FTP, il peut être utile de vérifier le trafic FTP et de vous assurer qu'il est légitime. De nombreux défis d'analyse de réseau dans les CTF traitant de l'exfiltration de données peuvent être résolus en identifiant les protocoles inhabituels à partir de la fenêtre Hiérarchie des protocoles.
Conversations
La fenêtre Conversations fournit également de nombreuses informations sur le trafic, notamment les hôtes qui ont communiqué avec d'autres hôtes, sur quels ports et le nombre total d'octets et de paquets contenus dans la conversation. Cette fenêtre est idéale pour identifier les différentes adresses MAC ou IP avec lesquelles un hôte a communiqué, ainsi que le volume de trafic entre elles.
À l'instar de la fenêtre Hiérarchie des protocoles, la fenêtre Conversations peut s'avérer très utile pour enquêter sur les tentatives d'exfiltration de données, car elle permet d'identifier l'attaquant par adresse IP. Si un hôte a transmis de nombreux paquets et octets à une adresse IP non identifiée sans recevoir de nombreux paquets en retour, une exfiltration a peut-être eu lieu.

Dans l'image ci-dessus, comme le montre la première ligne, l'hôte 192.168.1.7 s'est connecté au serveur HTTPS de 172.217.167.98 (il s'agit en fait de Google) avec le port 65220 et a envoyé et reçu 9 paquets. Comme dans la fenêtre Hiérarchie des protocoles, vous pouvez cliquer avec le bouton droit de la souris sur une ligne, sélectionner Appliquer en tant que filtre > Sélectionné/Non sélectionné et choisir le sens du trafic pour appliquer un filtre à la ligne.
Points de terminaison
Enfin, la fenêtre Endpoints affiche tous les différents hôtes qui apparaissent dans la capture ainsi que le nombre de paquets/octets qu'ils ont envoyés et reçus. Cette fenêtre est utile pour trier les hôtes en fonction de leur activité réseau, soit par volume de transmission, soit par volume de réception, soit par les deux.
Si un hôte reçoit beaucoup plus de trafic qu'il n'en transmet, il est probablement en train de télécharger un fichier volumineux. En revanche, si l'hôte transmet plus qu'il n'en reçoit, il est probablement en train de télécharger des fichiers ou de les sauvegarder sur un stockage distant, tel que le cloud.

Dans le schéma ci-dessus, l'hôte 192.168.1.7 a envoyé 1156 paquets, pour un total de 311 Ko, et a reçu 1080 paquets, pour un total de 182 Ko. Vous pouvez passer à d'autres protocoles, tels que TCP pour trier le trafic par ports et Ethernet pour trier le trafic par adresses MAC. Comme pour toutes les autres fenêtres de statistiques, vous pouvez cliquer avec le bouton droit sur un hôte pour l'appliquer en tant que filtre.