Wireshark pour tout le monde. Astuces de vie pour tous les jours



Un package avec des certificats de Habr



Wireshark est un programme très connu pour capturer et analyser le trafic réseau, un outil indispensable pour un pirate informatique, un ingénieur réseau, un programmeur, un spécialiste de la sécurité . En général, toute personne curieuse qui souhaite étudier en détail le trafic de son téléphone portable ou de celui d'un autre, bracelet fitness, TV.



Wireshark capture les paquets réseau en temps réel et les enregistre, par exemple, dans des fichiers pcap (Packet Capture). Ils sont ensuite utilisés pour étudier le trafic, récupérer des informations, analyser les performances du réseau et détecter les attaques. C'est une alternative et un ajout à l'utilitaire standard tcpdump



, avec une interface graphique, des filtres et plus de fonctionnalités.



Cas pratiques d'utilisation



Wireshark a un million de fonctions, mais littéralement tout le monde avec un minimum de connaissances peut l'utiliser à son avantage. Vous trouverez ci-dessous des exemples de tâches réseau de base.



Décryptage du trafic SSL/TLS



Chrome et Firefox peuvent écrire des journaux de clés de session, qui sont utilisés pour crypter le trafic SSL / TLS. Notre tâche consiste à activer l'enregistrement de ces journaux, puis à les télécharger sur Wireshark pour analyse. On suppose que nous avons un accès physique à l'ordinateur de l'utilisateur dont nous voulons décrypter le trafic. Ou à un serveur qui établit une connexion cryptée avec l'utilisateur.



Tout d'abord, activez l'enregistrement des touches.



Anciennes versions de Windows 10



L'ancienne méthode fonctionne dans les anciennes versions de Windows 10. Allez dans Panneau de configuration  → Système et sécurité  → Système . Dans l'onglet "Paramètres système supplémentaires", cliquez sur le bouton "Variables d'environnement".







Ajoutez une nouvelle variable pour l'utilisateur SSLKEYLOGFILE



et spécifiez le chemin d'accès au fichier.







En conséquence, nous obtenons des journaux avec des clés, le début du fichier :



# Fichier journal des secrets SSL / TLS, généré par NSS
CLIENT_HANDSHAKE_TRAFFIC_SECRET 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 dcfc82758fbb587e526daaab9fdc0bcaaab2768e
SERVER_HANDSHAKE_TRAFFIC_SECRET 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 d807f4757db1f9ba8df434d8b0005d07e4987459c1d14c7ea793e4c4f5b240dc
CLIENT_TRAFFIC_SECRET_0 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 40186c6b1c925c63cd57e8fa235ba9d0bf14eb29c21cbb6494ef944e1e7a4cc3
SERVER_TRAFFIC_SECRET_0 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 a0a377f26a0962eceae55bec94fcd7549d9b1d5d1e9b70c45627299ca2b9b129
EXPORTER_SECRET 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 
...


Windows 10



Dans les versions plus récentes, après l'installation de Windows 10, l'ancienne méthode d'ajout de variables d'environnement peut ne plus fonctionner. Ensuite, il existe une option alternative utilisant une commande dans PowerShell .



Définir la variable :



[Environment]::SetEnvironmentVariable("PATH", "C:\TestPath", "User")







Le premier paramètre est le nom de la variable, le deuxième est la valeur, le troisième est le niveau de la variable (utilisateur ou système).



Dans notre cas:



[Environment]::SetEnvironmentVariable("SSLKEYLOGFILE", "D:\wireshark", "User")







Linux et Mac OS X



Sous Linux et Mac OS X, vous pouvez utiliser cette commande pour modifier la variable d'environnement et conserver les journaux - en démarrant le navigateur à partir de la même fenêtre de terminal, car les variables d'environnement fonctionnent toujours dans la même session.



# export SSLKEYLOGFILE=/Users/username/sslkeylogs/output.log
# open -a firefox
# wireshark
      
      





Après avoir accumulé le journal, lancez Wireshark.







Nous allons dans les "Paramètres", là sur l'onglet "Protocoles", nous trouvons la section TLS (elle s'appelait auparavant SSL) - et spécifions le chemin d'accès au fichier avec les journaux et la clé qui a été utilisée dans la session de chiffrement symétrique : (Pré) - Nom du fichier journal Master-Secret .







Par exemple, lorsqu'un utilisateur se connecte au serveur Gmail dans la fenêtre d'inspection des paquets QUIC, nous voyons des paquets QUIC réguliers cryptés avec une clé TLS.







Mais un nouvel onglet QUIC Décrypté apparaît en bas de l'écran , qui affiche le contenu décrypté de ces paquets.







Cette méthode de décryptage du trafic client ne nécessite pas d'installer Wireshark sur son ordinateur, il suffit de télécharger un dump avec des clés puis de l'utiliser avec le dump de trafic.



En vertu de la loi russe moderne, les fournisseurs sont tenus de stocker le trafic des utilisateurs pendant un certain temps, y compris le trafic TLS / SSL crypté. Maintenant, il est clair quel type de mécanisme peut être utilisé pour le déchiffrer et l'analyser. Un attaquant doit avoir des clés de session pour le chiffrement symétrique. Les plus grandes sociétés Internet russes telles que Yandex et Mail.ru se conforment docilement aux exigences de la législation russe - et fournissent ces clés (voir l' arrêté FSB n° 432 du 08/12/2016 sur la procédure d'obtention des clés de cryptage).



Noter... Cette méthode n'est pas limitée à HTTP uniquement. De même, vous pouvez intercepter et décrypter le trafic SSL/TLS dans d'autres flux. Par exemple, le trafic chiffré du serveur MySQL .







Analyser le trafic d'un autre ordinateur



Si vous devez gérer le serveur en production, il est pratique de copier les fichiers pcap à partir de là - et d'analyser le trafic sur votre ordinateur personnel.



Nous écrivons des packages sur le serveur à l'aide du renifleur de paquets tcpdump, qui est inclus dans le package standard * nix :



tcpdump port 443 -w output.pcap
      
      





Ensuite, nous copions les fichiers sur notre ordinateur :



scp host:~/output.pcap
      
      





Ici, nous lançons déjà Wireshark et ouvrons le fichier résultant.



Il existe une option pour surveiller le trafic du serveur en temps réel depuis votre ordinateur personnel / professionnel. Par exemple, tout le trafic à l'exception des ports 22 et 53 :



ssh root@host tcpdump -U -s0 'not port 22 and not port 53' -w - | wireshark -k -I -
      
      





À peu près la même chose à partir d'un ordinateur Windows :



plink.exe -ssh -pw password root@host "tcpdump -ni eth0 -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -
      
      





A la recherche de problèmes



Pour sélectionner une connexion TCP spécifique, nous trouvons n'importe quel paquet d'intérêt, faisons un clic droit dessus et appliquons le filtre de dialogue.







Désormais, de tout le trafic enregistré, seuls les paquets appartenant à cette connexion particulière restent.







Dans la capture d'écran, nous voyons les paquets depuis le début de l'établissement de la connexion TLS : un paquet avec un message d'accueil client, un paquet de réponse avec un message d'accueil serveur, un certificat présenté, une liste de chiffrements, etc. Le contenu de chaque paquet peut être examiné séparément. Très confortablement.



Un modèle typique consiste à utiliser Wireshark pour diagnostiquer des problèmes spécifiques. Par exemple, si la connexion TLS est rompue, nous pouvons entrer et voir qui l'a rompue (client ou serveur), à quel stade cela s'est produit et pour quelle raison.



Contenu du coffret



Le contenu en octets de chaque paquet est magique. Concrètement, cette fonctionnalité de Wireshark vous permet d'identifier les bugs les plus sérieux. Par exemple, il y a quelques années, il a été révélé que les contrôleurs Intel 82574L Gigabit Ethernet sont désactivés si un paquet spécialement conçu avec une séquence spécifique d'octets leur est envoyé - le "paquet de mort" . C'est grâce à Wireshark qu'il est devenu clair quels octets spécifiques dans le paquet conduisaient à la déconnexion garantie de la carte réseau.



Voici une entrée pour des packages spécifiques : pod-http-post.pcap et pod-icmp-ping.pcap . Nous pouvons les télécharger, les ouvrir dans Wireshark et les voir de nos propres yeux.



L'interface réseau Intel est désactivée si l'adresse 0x47f est 2 ou 3, c'est-à-dire 32 HEX ou 33 HEX. S'il y en a 4, tout va bien.







N'importe quel paquet convenait à l'attaque : HTTP POST, ICMP echo-request, etc. Par exemple, une réponse 200 peut être configurée sur un serveur Web pour « tuer » les interfaces réseau sur les machines clientes. Une situation assez curieuse.



Rechercher des packages par contenu



Ci-dessus, nous avons appliqué un filtre de dialogue pour renvoyer tous les paquets pour une connexion TCP spécifique. Cependant, les filtres peuvent également être écrits manuellement. Voici quelques exemples de demandes :



  • frame contains "google"



    - rechercher tous les packages avec le mot "google" n'importe où dans le package

  • tcp.port == 443



    - port 443

  • dns.resp.len > 0



    - toutes les réponses DNS

  • ip.addr == 95.47.236.28



    - adresse IP spécifique pour le destinataire ou l'expéditeur


… etc. Les filtres sont beaucoup plus riches que ceux de tcpdump, il est donc préférable de faire une analyse de trafic dans Wireshark.



Trafic de téléphonie mobile



De même, vous pouvez analyser le trafic de la montre fitness via Bluetooth ou le trafic de n'importe quelle application mobile pour Android. Pour ce faire, vous devez enregistrer les paquets PCAP sur votre appareil mobile - et les transférer pour analyse vers Wireshark sur votre PC de travail.



Il existe plusieurs programmes d'enregistrement PCAP mobiles. Par exemple, l'application

PCAPdroid pour Android :





PCAPdroid



En principe, il est possible de ne pas transférer les fichiers PCAP enregistrés, mais de les analyser directement sur l'appareil mobile. Certains renifleurs mobiles ont des fonctionnalités de reniflage de paquets rudimentaires, voir Packet Capture et Termux (plus de détails ci-dessous).





Capture de paquets



Wireshark dispose également d'une interface Androiddump directe pour extraire les données du téléphone directement via le SDK Android.



Trafic provenant de la télévision et d'autres appareils électroménagers



Pour étudier le trafic du téléviseur, du smartphone de la femme ou d'autres appareils électroménagers connectés au réseau domestique via Ethernet et WiFi, vous devrez enregistrer PCAP sur le routeur. Parfois, les outils intégrés suffisent . Si vous avez un routeur avec firmware DD-WRT, vous pouvez exécuter directement sur l'appareil tcpdump



:



ssh root@192.168.1.1 -c "tcpdump -v -w - -i eth2" > mypackets.pcap
      
      





Pour le micrologiciel OpenWrt, il existe une option pour mettre en miroir le trafic à l'aide de iptables-mod-tee .



Le trafic peut être mis en miroir et enregistré à l'aide d'un hub physique supplémentaire ou d'une connexion réseau. Voir la documentation pour plus de détails .











Un autre moyen consiste à intercepter le trafic sans fil WiFi à l'aide de l' utilitaire Airodump-ng sans se connecter à un routeur. Mais cela est plus approprié pour analyser le trafic sur les hotspots d'autres personnes.



De plus, tout est moleté - chargez les fichiers dans Wireshark, exécutez les filtres.



Soit dit en passant, Wireshark prend également en charge l'analyse du trafic USB : renifleur USBPcap intégréet l'importation de packages à partir de renifleurs tiers tels que Npcap et RawCap .



Termeshark



Si vous analysez des journaux volumineux sur un serveur distant, mais que vous ne voulez pas tout copier sur votre machine, Termshark peut s'avérer utile - une interface utilisateur pratique dans la console pour l'analyseur TShark, qui ressemble à Wireshark.



Les fonctions



  • Lecture des fichiers pcap et écoute du trafic des interfaces actives en temps réel (où tshark est activé)

  • Filtrage des interfaces pcap ou actives avec les filtres d'affichage Wireshark

  • Réassemblage et inspection des flux TCP et UDP

  • Afficher les sessions réseau pour chaque protocole

  • Copier les packages sélectionnés de la console dans le presse-papiers

  • L'outil est écrit en langage Go, sur chaque plateforme il est compilé en un seul fichier exécutable : il existe déjà des versions construites pour Linux, macOS, variantes BSD, Android (termux) et Windows






Voici à quoi ressemble la version Android :







Wireshark en tant qu'application Web



Si, pour une raison quelconque, vous ne pouvez pas exécuter Wireshark sur votre machine locale, vous pouvez utiliser le service cloud CloudShark , qui est étonnamment bien fait. La fonction principale est de collaborer et de publier des analyses de packages par URL. Par exemple, cloudshark.org/captures/05aae7c1b941 . Les fichiers sont téléchargés dans le cloud et analysés dans le navigateur. Cela est nécessaire si vous souhaitez demander des conseils sur le forum, partager des informations avec des collègues, ou publier une ventilation de colis pour un large public. Soit dit en passant, il est pratique à utiliser depuis un téléphone portable, car il existe des applications pour capturer des paquets pour Android, mais il n'y a pas de bon analyseur. Le service est payant, il y a une période d'essai de 30 jours.















Dans l'ensemble, Wireshark est un programme fantastique pour toutes les occasions.



En plus de la réelle utilisation pratique, l'analyseur donne une idée approximative du fonctionnement du filtrage DPI avec les fournisseurs russes. Tout y est arrangé à peu près de la même manière. Le système analyse le trafic en temps réel, filtre spécifiquement les paquets de Twitter et ralentit leur livraison aux utilisateurs en Russie. En particulier, Roskomnadzor fait face à cette obscénité depuis le 10 mars 2021 .






Publicité



Si vous avez besoin d'un serveur à louer sur Linux ou Windows pour le travail , alors vous venez certainement chez nous - activation du service une minute après le paiement !



Rejoignez notre chat Telegram .






All Articles