Université KASDI MERBAH OUARGLA Faculté des Nouvelles Technologies de l’information et de la Communication Département Informatique et Technologies de les Information 1er Année Master académique informatique industrielle Module :TIC TP : 5 (Analyse de trames) Objectifs : Découvrir les caractéristiques générales et l'encapsulation des protocoles du modèle "TCP/IP" Etre capable d'utiliser un analyseur de protocoles. Capture, Filtrage et Analyse de trames (Ethernet, ARP, ICMP, DHCP) avec le logiciel Wireshark Description du datagramme IP : La structure générale d'un datagramme IP est représentée sur la figure suivante : Version (Vers) : le numéro de version du protocole IP utilisé. Actuellement, il s'agit pratiquement toujours de la version 4 (0100). Longueur d'entête (I.H.L.) : Comme la longueur d'une entête de datagramme IP est variable, elle est codée sur 4 bits, sous forme de mots de 32 bits (4 octets). Type de service (Type of Service ToS) :Ce champ de 8 bits possède la structure suivante : Longueur du datagramme (Long. Totale) : Longueur totale du datagramme (entête + données), en octets. Identification (ID) : Ce champ sur 16 bits sert à identifier un datagramme ou les fragments d'un datagramme fragmenté. En effet, cechamp a la même valeur pour tous les fragments provenant d'un même datagramme. Drapeau (Flg) : Ces 3 bits donnent des informations concernant la fragmentation Place du fragment (Fragment) : Ce nombre indique la position qu’a le 1er octet de donnée du fragment dans le datagramme (non fragmenté). Ce nombre est un multiple de 8 octets. Durée de vie (Time to Live TTL) : ce champ indique le nombre maximum de routeurs par lesquelles le datagramme peut passer; car quand le champ durée de vie atteint zéro, le datagramme est détruit. Numéro de protocole (Protocole) : Ce champ de 8 bits indique à quel protocole de niveau plus élevé est destiné le datagramme (SAP). Quelques exemples de valeurs : 1 : ICMP, 6 : TCP, 17 : UDP 1 Auteur : Ben hbireche Halima, Université de Ouargla Adresse IP source : Adresse IP de l'émetteur du datagramme. Adresse IP destination : Adresse IP du destinataire du datagramme. Données : Ce sont les données du datagramme proprement dites. Format des datagrammes UDP et TCP 1 Le protocole UDP : est conçu pour les applications qui ne doivent pas assembler de séquences de segments. Service rendu : Adressage des applications par numéro de port Multiplexage/démultiplexage par numéros de port Contrôle facultatif de l'intégrité des données Même type de service non fiable, non connecté que IP : Possibilité de perte, duplication, déséquencement de messages Pas de régulation de flux Un programme utilisant UDP doit gérer lui-même ces problèmes ! Le format d'un datagramme UDP est représenté sur la figure suivante : Certaines applications bien connues ont des ports UDP réservés [0; 1023] Exemples : Les ports [1024; 49151] sont enregistrés (mais peuvent être utilisés) Les ports [49152; 65535] sont dits dynamiques et/ou à usage privé 2 Le protocole TCP : est le protocole majeur de toute l’architecture Internet. C’est un protocole qui fonctionne en mode connecté. Il dispose d’un ensemble de fonctionnalités. En voici quelques unes : Identification précise du logiciel émetteur et du logiciel destinataire Gestion des accusés de réception Délivrance de données fiable, séquentielle et sans duplication Mécanisme de contrôle de flux Connexions passives et actives Multiplexage (plusieurs connexions simultanées sur un même support). 2 Auteur : Ben hbireche Halima, Université de Ouargla Le format d'un datagramme TCP est représenté sur la figure suivante : Etude des ports ouverts sur une machine Windows XP Objectif : nous savons que les virus peuvent ouvrir des ports pour permettre à un « pirate » de prendre le contrôle de la machine à distance; nous analysons la liste des ports actifs sur un ordinateur pour vérifier s'ils sont licites. 1ère étape : obtenir la liste des ports actifs sur la machine Faire la commande : netstat -ano et remplir un tableau de ce type : n° port actif description du service 2ème étape : Identifier les numéros des ports actifs Nous distinguons les ports : serveurs (un service est ouvert sur le pc local; l'adresse destinataire est en général 0.0.0.0) client (le pc local est connecté à un service distant dont l'adresse est spécifiée) Les ports serveurs peuvent être identifiés : vous utiliserez Google avec les mots-clés "port tcp xxxx" Les ports clients sont anonymes; vous pouvez par contre vérifier : - que le n° de processus correspond à un service connu de vous (voir ci-dessous) - que l'adresse IP distante correspond à un serveur connu de vous 3 Auteur : Ben hbireche Halima, Université de Ouargla Analyse de trames avec le logiciel Wireshark Wireshark est un programme informatique libre de droit, qui permet de capturer et d’analyser les trames d’information qui transitent par les interfaces de communication du terminal sur lequel il s’exécute. Wireshark est ainsi apparenté aux logiciels appelés « Sniffer » ou « analyseur de trafic ». Il est multi-OS et téléchargeable sur le site www.wireshark.com. Il est un outil essentiel pour comprendre les mécanismes de fonctionnement des protocoles, avec Wireshark, il est possible de capturer des trames Ethernet en temps réel directement sur les Cartes de communication du terminal, de sauvegarder les résultats de cette capture dans des fichiers qui peuvent être analysés ultérieurement hors ligne. Wireshark supporte un très grand nombre de protocoles de communication et de formats de fichiers de capture : Ethernet, ARP, IP, TCP/UDP, HDLC, etc … libpcap/tcpdump, Sun's snoop/atmsnoop, LanAlyzer, MS Network Monitor, HPUX nettl, AIX iptrace, Cisco Secure IDS, etc…. Durant ce TP, nous allons : 1 Ouvrir un nouveau terminal 2 Lancer le programme Wireshark 3 Capturer et analyser une trame Ethernet 4 Définir des filtres pour la capture et la visualisation des trames 5 Enregistrer le résultat de cette capture dans un fichier Exercices : 1. Lancer une capture de 60 trames. 2. Lancer une capture pendant 1 minute. Quel est le nombre de trames capturées ? 3. Lancer une capture en ne capturant que les paquets en provenance et à destination de votre machine. Pour connaître l'adresse ip de votre machine, utilisez la commande : ifconfig eth0 4. Générez du trafic à capturer (ex : navigation web, ping, ...) vers une machine bien connue : www.google.fr, www.yahoo.fr, etc. Capturer le trafic émis par votre machine vers cette machine (et pas l'inverse). 5. Dans un terminal, lancer la commande suivante, et laissez la tourner : ping www.google.fr Capturer uniquement le trafic généré par cette commande, entre votre machine et celle donné. Utilisez le manuel de la commande ping pour savoir quel est le protocole utilisé. 4 Auteur : Ben hbireche Halima, Université de Ouargla 6. Capturer uniquement le trafic http (navigation web) circulant sur le réseau. Pour faire ceci, vous devez trouver le protocole et le port concerné : une petite recherche sur internet pourra surement vous dépanner... Libre à vous de limiter les machines sources et destination pour faciliter la lecture. Question subsidiaire : sélectionnez une des trames capturées, ouvrez le menu Analyze, et sélectionnez « Follow TCP Stream ». Une nouvelle fenêtre s'ouvre. Que contient elle ? 1) Quelle est la valeur de ce champ pour le protocole IP ? Dans l’entête IP, le protocole de niveau transport est identifié par lechamp Protocol. 2) Quelle est la valeur du champ Protocol pour le protocole TCP ?3) Quel est le numéro de port utilisé par le service HTTP ? 4) Quel est le numéro de port choisi par votre client ? 5) Sur combien d’octets sont codés les numéros de ports en TCP ? 6) Combien de processus simultanés peuvent théoriquement communiqués via TCP sur une machine ? 7) L'entête du HTTP estil encodé en ASCII ? Sélectionnez une trame transportant des données dns. 8) Quelle est la valeur du champ Protocol pour le protocole UDP ? Sous windows seulement, vérifier le numéro de protocole assigné à UDP en consultant le fichier /etc/protocols 9) Quel est le numéro de port utilisé par le service DNS ? Sous windows seulement, vérifier le service associé par défaut au numéro de port 53 en consultant le fichier /etc/services 10) Sur combien d’octets sont codés les numéros de ports en UDP ? Combien de processus simultanés peuvent théoriquement communiqués via UDP sur une machine ? Sélectionnez une trame contenant l’indication HTTP dans la colonne Info, et avec le bouton droit de la souris, choisissez l’option Follow TCP stream. Le dialogue entre votre navigateur et le serveur web apparaît. 11) Par quelle primitive commence la requête HTTP ? 12) Quelle version du protocole HTTP est utilisée par votre navigateur ? 13) La requête HTTP émise par le navigateur contient elle des données ? 14) Quelle est la version du protocole HTTP utilisée par le serveur dans sa réponse ? 15) Quelle est le type de données renvoyées par le serveur ? 16) A votre avis, quel code réponse aurait renvoyé le serveur si le document demandé dans la requête était introuvable ? Tester avec un document inexistant. Remarque : lorsque vous fermez la fenêtre ouverte par cette option, il reste un filtre d’affichage : il faut l'effacer en cliquant sur clear. 17) Enregistrer la capture réalisée dans un fichier capture_votreNom auformat Wireshark/tcpdump. 5 Auteur : Ben hbireche Halima, Université de Ouargla
© Copyright 2024 ExpyDoc