Intro.analyse

  • Upload
    semeh

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

  • 7/25/2019 Intro.analyse

    1/17

    Introduction l'analyse rseauPhilippe Latu

    philippe.latu(at)inetdoc.net

    http://www.inetdoc.net

    Rsum

    L'analyseur de trafic est un outil pdagogique essentiel pour comprendre les mcanismes defonctionnement desprotocoles de communication sur les rseaux contemporains. Ce documentcomprend deux parties. Dans un premier temps, ontrouve une introduction l'utilisation del'analyseur Wireshark, le logiciel libre incontournable en la matire. Dans un deuxime temps, lestravaux pratiques permettent de dcouvrir la richesse des informations fournies par cet analyseur.

    Table des matires

    1. Copyright et Licence ............................................................................................................... 21.1. Mta-information .......................................................................................................... 2

    2. Analyse avecWireshark .......................................................................................................... 22.1. Quels sont les protocoles supports ? ............................................................................. 22.2. Quels sont les mdias supports ? .................................................................................. 22.3. Comment accder aux interfaces ? ................................................................................ 2

    3. Interface utilisateur ................................................................................................................ 44. Capture d'une srie de trame .................................................................................................. 55. Filtrage de l'affichage aprs capture ......................................................................................... 6

    5.1. Isoler une connexion TCP ............................................................................................. 65.2. Syntaxe dufiltrage postriori ...................................................................................... 75.3. Documentation de rfrence sur les filtres d'affichage .................................................... 9

    6. Analyse distance .................................................................................................................. 97. Travaux pratiques : navigation Web(HTTP) ............................................................................ 11

    7.1. Protocoles tudis ....................................................................................................... 117.2. Marche suivre .......................................................................................................... 117.3. Analyse des protocoles ................................................................................................ 11

    7.3.1.Protocoles capturs ........................................................................................... 117.3.2.Trame Ethernet, paquet IP et datagramme UDP .................................................. 117.3.3. Service DNS ...................................................................................................... 127.3.4. Connexion TCP ................................................................................................. 127.3.5. Requte HTTP GET ........................................................................................... 137.3.6.Rponse HTTP .................................................................................................. 14

    8. Travaux pratiques : messages de contrle internet (ICMP) ....................................................... 148.1. Protocoles et outils tudis .......................................................................................... 148.2. Marche suivre .......................................................................................................... 148.3. Analyse avec ping ....................................................................................................... 15

    8.3.1. Protocoles capturs ........................................................................................... 158.3.2. Message ICMP Echo Request .......................................................................... 158.3.3. Message ICMP Echo Reply .............................................................................. 168.3.4. Messages ICMP restants .................................................................................... 16

    8.4. Analyse avec (tcp)traceroute ....................................................................................... 168.4.1. Protocoles capturs ........................................................................................... 168.4.2. Message UDP .................................................................................................... 168.4.3. Message ICMP Time Exceeded ........................................................................ 168.4.4. Evolution du champ TTL ................................................................................... 178.4.5. Variantes .......................................................................................................... 17

    9. Documents de rfrence ....................................................................................................... 17

    Introduction l'analyse rseau 1

  • 7/25/2019 Intro.analyse

    2/17

    Introduction l'analyse rseau

    1. Copyright et Licence

    Copyright (c) 2000,2015 Philippe Latu.Permission is granted to copy, distribute and/or modify this document under theterms of the GNU Free Documentation License, Version 1.3 or any later versionpublished by the Free Software Foundation; with no Invariant Sections, noFront-Cover Texts, and no Back-Cover Texts. A copy of the license is includedin the section entitled "GNU Free Documentation License".

    Copyright (c) 2000,2015 Philippe Latu.

    Permission est accorde de copier, distribuer et/ou modifier ce document selonles termes de la Licence de Documentation Libre GNU (GNU Free DocumentationLicense), version 1.3 ou toute version ultrieure publie par la Free SoftwareFoundation ; sans Sections Invariables ; sans Texte de Premire de Couverture,et sans Texte de Quatrime de Couverture. Une copie de la prsente Licence estincluse dans la section intitule Licence de Documentation Libre GNU .

    1.1. Mta-information

    Cet article est crit avec DocBookXML sur un systme Debian GNU/Linux. Il est disponible en versionimprimable au format PDF : intro.analyse.pdf.

    2. Analyse avec Wireshark

    Avec Wireshark, il est possible de capturer des paquets directement sur les interfaces du systmeutilis ou de lire des fichiers de captures sauvegardes. Wiresharksupporte les formats de fichiers decapture les plus courants : libpcap/tcpdump, Sun's snoop/atmsnoop, LanAlyzer, MS Network Monitor,HPUX nettl, AIX iptrace, Cisco Secure IDS, etc.

    2.1. Quels sont les protocoles supports ?

    La liste des protocoles supports par Wireshark est considrable. Elle volue avec chaque nouvelleversion. La page Protocol Referencefournit un classement par famille de tous les protocoles dont

    les champs sont interprts. Il est aussi possible d'accder ces informations via le menu HelpSupported Protocols.

    2.2. Quels sont les mdias supports ?

    Le logiciel Wiresharkpermet l'analyse de transmissions rseau sur presque toutes les technologies.Les limitations d'utilisation sont plutt dues au systme d'exploitation sur lequel on excute ce logiciel.Pour obtenir un tat des possibilits d'analyse en fonction du systme utilis, il faut consulter la page :Network media specific capturing

    2.3. Comment accder aux interfaces ?

    Lorsque l'on excute wireshark en tant qu'utilisateur normal, on ne peut accder la liste desinterfaces en lanant l'opration Capture. Sur un systme d'exploitation correctement administr, unutilisateur normal ne doit pas avoir accs aux interfaces sans conditions. Il existe plusieurs solutions

    pour donner un accs direct la liste des interfaces physiques. En voici trois :

    En mode super-utilisateurPartant d'une connexion avec un compte utilisateur normal, celui-ci est propritaire exclusif deson cran (display). Il doit donc autoriser le super utilisateur accder son cran l'aide dela commande xhost, passer en connexion super-utilisateur avec la commande supuis excuterl'application Wireshark.

    $ xhost +local:$ suPassword:# wireshark &

    En mode utilisateur avec gksuL'application gksu est un frontal graphique de la commande su. Elle permet, aprs la saisie du motde passe super-utilisateur, d'excuter une application en mode super-utilisateur. Dans notre cas, onaccde directement aux interfaces physiques en mode graphique sans passer par une manipulation

    Introduction l'analyse rseau 2

    http://wiki.wireshark.org/CaptureSetup/NetworkMediahttp://wiki.wireshark.org/ProtocolReferencehttp://www.wireshark.org/http://www.docbook.org/http://www.debian.org/http://wiki.wireshark.org/CaptureSetup/NetworkMediahttp://wiki.wireshark.org/ProtocolReferencehttp://www.wireshark.org/http://www.inetdoc.net/pdf/intro.analyse.pdfhttp://www.debian.org/http://www.docbook.org/
  • 7/25/2019 Intro.analyse

    3/17

    Introduction l'analyse rseau

    la console. Ce mode opratoire est propos par dfaut avec toutes les distributions GNU/Linuxactuelles.

    En mode utilisateur avec sudoL'application sudo permet de dlguer les droits du super-utilisateur avec une granularit trs fine.L'optique de l'analyse rseau tant un cas particulier de l'administration systme, on se limitera la prsentation du fichier de configuration de l'application : /etc/sudoers.

    # sudoers file.

    ## This file MUST be edited with the 'visudo' command as root.## See the man page for details on how to write a sudoers file.#

    # Host alias specification

    # User alias specification

    # Cmnd alias specification

    # User privilege specificationroot ALL=(ALL) ALL

    etu ALL = NOPASSWD: /usr/bin/wireshark, /usr/bin/tshark

    C'est la dernire ligne que se situe la partie intressante. L'utilisateur normal etu dispose,sur n'importe quel hte gr par ce systme (ALL), d'un accs super-utilisateur aux applicationsWiresharket tshark sans avoir saisir son mot de passe. Pour lancer l'application, il faut prciserl'appel l'application sudo de la faon suivante :

    $ sudo wireshark &

    En mode utilisateur via les Linux CapabilitiesOn dbute par la cration d'un groupe systme ddi la capture de trafic rseau.

    # addgroup --system pcapAdding group `pcap' (GID 136) ...

    Done.

    On ajoute un ou plusieurs utilisateur(s) au groupe systme.

    # adduser phil pcapAdding user `phil' to group `pcap' ...Adding user phil to group pcapDone.

    Attention ! Cette nouvelle attribution n'est valable qu'aprs une nouvelle authentification. Noussommes encore dans le cas classique de cration du contexte de travail utilisateur au moment del'authentification.

    On modifie les proprits du programme dumpcap qui est charg de la collecte du trafic rseau.

    Avant modification du groupe propritaire, le masque des permissions est le suivant :# ls -lh `which dumpcap`-rwxr-xr-x 1 root root 62K 4 mars 18:04 /usr/bin/dumpcap

    On change le groupe propritaire et on applique un nouveau masque de permissions. Une foiscette opration faite, les membres du groupe systme pcapseront les seuls utilisateurs pouvoirexcuter le programme en mode non privilgi.

    # chgrp pcap /usr/bin/dumpcap# chmod 750 /usr/bin/dumpcap# ls -lh /usr/bin/dumpcap-rwxr-x--- 1 root pcap 62K 4 mars 18:04 /usr/bin/dumpcap

    On indique au gestionnaire de paquets Debian que ces nouvelles proprits doivent tre conserves

    lors des mises jour venir.# dpkg-statoverride --add root pcap 750 /usr/bin/dumpcap# dpkg-statoverride --list /usr/bin/dumpcaproot pcap 750 /usr/bin/dumpcap

    Introduction l'analyse rseau 3

  • 7/25/2019 Intro.analyse

    4/17

    Introduction l'analyse rseau

    On modifie le contexte de travail du programme dumpcap.

    # setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap# getcap /usr/bin/dumpcap/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

    Les bits eipcorrespondent aux attributs effective, inheritableet permitted.

    Avec l'attribut effective, le noyau ne vrifie pas si l'UID vaut 0 (mode privilgi) si le programmencessite une opration en mode privilgi.

    L'attribut inheritabletransmet les aptitudes du processus actuel aux autres processus enfants.

    L'attribut permittedindique que le processus peut utiliser les aptitudes tendues du noyau Linux.

    La documentation sur les Linux Capabilitiesest disponible partir de la page Not needing root toadminister Linux.

    3. Interface utilisateur

    Capture d'cran Wireshark - vue complte

    L'interface de l'analyseur se dcompose en plusieurs barres ou fentres :

    Barre de menusOn y retrouve la liste classique de menus. Voici une liste des fonctions remarquables accessibles partir de ces menus.

    Le menu File sert sauvegarder ou charger un fichier de capture rseau. Une capture peuttrs bien avoir t ralise sur une sonde distante ou avec un autre outil et tre analyse avecWireshark postriori.

    Le menu Capture sert fixer les paramtres d'une nouvelle capture rseau. Voir Section 4, Capture d'une srie de trame .

    Le menu Statistics sert effectuer diffrents calculs sur les volumes de donnes et la rpartitiondes protocoles.

    Barre des icnesCette barre regroupe tous les raccourcis sur les manipulations d'une capture.

    Barre de filtrageCette barre sert saisir l'expression de filtrage postriori d'une capture pour isoler tout ou partie

    d'un change rseau.

    Fentre contenant la liste des trames capturesSur chaque ligne on retrouve :

    Introduction l'analyse rseau 4

    http://sites.google.com/site/fullycapable/http://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-complet.pnghttp://sites.google.com/site/fullycapable/http://sites.google.com/site/fullycapable/
  • 7/25/2019 Intro.analyse

    5/17

    Introduction l'analyse rseau

    le numro du paquet,

    son temps de capture,

    sa source,

    sa destination,

    le protocole de plus haut niveau dcod,

    le rsum des champs caractristiques de ce protocole.

    Fentre d'affichage de la pile des protocoles dcods pour la trame slectionneAvant toute opration de dveloppement des champs d'un ou plusieurs protocoles, cette fentredonne la liste la pile de protocoles dcods allant du niveau physique (en haut) jusqu'au niveaule plus haut reconnu (en bas). Le protocole de niveau le plus haut reconnu apparat est celui quiapparat dans la colonne protocole de la Fentre contenant la liste des trames captures.

    La premire ligne ou niveau Frame correspond une pseudo couche physique. Comme iln'est pas possible de raliser la capture directement partir des composants lectroniques quipilotent l'interface rseau sans perturber le fonctionnement du systme, l'opration a lieu au

    niveau liaison l'aide de la bibliothque libpcap.A ce niveau, les informations disponibles sont : la quantit de bits capturs et la date de capture.

    La deuxime ligne correspond au niveau liaison. On y dtaille le type et les champs de la trameet les adresses physiques.

    La troisime ligne correspond au niveau rseau. On y dtaille les champs du protocole rseaureconnu : adresses logiques et indicateurs d'tat.

    La quatrime ligne correspond au niveau transport. On y dtaille les champs du protocole detransport reconnu : tat de la connexion, numros de ports utiliss et diverses options.

    La cinquime ligne correspond au niveau application. On y trouve les donnes utilisateur.Pour le dveloppement de chacun des champs de la trame, il faut cliquer sur le triangle situ gauche au niveau de chaque couche.

    Fentre d'affichage brut de la trame slectionneCette fentre affiche tous les octets de la trame en hexadcimal.

    4. Capture d'une srie de trame

    Aprs avoir lanc le logiciel Wireshark, suivre la squence suivante pour capturer une srie de 60trames :

    1. Slectionner Capture puis Start.2. La ligne Capture Filter, permet de prciser un filtrage priori. La syntaxe de ce filtrage est

    identique celle de la commande tcpdump. La documentation est disponible partir des pagesde manuels de cette commande : man tcpdump. Voici 3 exemples :

    ip : en spcifiant le protocole rseau analyser, on vite la capture des trames des autresprotocoles de niveau rseau (IPX) et des protocoles de niveau liaison (STP, CDP, etc.).

    host 192.168.0.1: en spcifiant l'adresse IP d'un hte, on ne retient que le trafic mis et reupar cette adresse.

    host 192.168.0.1 and host 10.0.0.1: en spcifiant les adresses IP de 2 htes, on ne retient que

    le trafic entre ces 2 adresses.D'une faon plus gnrale, on peut combiner plusieurs critres avec les oprateurs logiques andet|ou or.

    Introduction l'analyse rseau 5

  • 7/25/2019 Intro.analyse

    6/17

    Introduction l'analyse rseau

    le type : host, netet port.

    la direction : srcet dst.

    le protocole : ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcpet udp.

    En rgle gnrale, il faut limiter au maximum de filtrage prioride faon disposer du maximumd'information pour l'analyse. La syntaxe de la Section 5, Filtrage de l'affichage aprs capture offre beaucoup plus de possibilits.

    3. La rubrique Stop Capture permet de fixer plusieurs critres d'arrt en fonction du nombre detrames et|ou du volume de donnes captures.

    4. Clicker sur le bouton Valider pour lancer la capture.

    Paramtres de capture - vue complte

    5. Filtrage de l'affichage aprs capture

    Le filtrage postriori est certainement l'tape la plus importante dans l'analyse rseau. C'estcette opration qui permet d'isoler l'information pertinente. La granularit de la syntaxe de filtragedisponible avec Wiresharkest trs importante. Il est possible de retenir un champ unique parmi les820 protocoles supports. Voici quelques exemples de filtrage allant du plus gnral au plus dtaill.

    5.1. Isoler une connexion TCP

    Aprs avoir ralis une capture, il est possible d'isoler une connexion TCP en reprant sontablissement (le dbut) et sa libration (la fin). En cliquant sur le bouton droit de la souris aprs avoirslectionn n'importe quelle trame appartenant la connexion isoler, il faut valider l'option FollowTCP Stream.

    Isoler une connexion TCP - vue complteA la suite de cette opration, Wiresharkouvre une nouvelle fentre contenant les donnes vues de lacouche transport.

    Introduction l'analyse rseau 6

    http://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-tcpstream.pnghttp://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-capture.pnghttp://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-tcpstream.pnghttp://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-capture.png
  • 7/25/2019 Intro.analyse

    7/17

    Introduction l'analyse rseau

    Donnes vues de la couche transport - vue complte

    5.2. Syntaxe du filtrage postriori

    Comme indiqu ci avant, la granularit de la syntaxe de filtrage est trs importante. Elle peut doncs'avrer trs complexe manipuler. Wiresharkoffre plusieurs solutions pour rendre l'apprentissagede cette syntaxe interactif.

    Tout d'abord, l'opration prcdente de filtrage simplifi (voir Section 5.1, Isoler une connexionTCP ) n'tait qu'un cas particulier de saisie interactive de filtre de capture. En slectionnant l'optionFollow TCP Stream, on a saisi un filtre avec la syntaxe suivante :

    (ip.addr eq 192.168.1.9 and ip.addr eq 80.247.225.35) \and (tcp.port eq 32783 and tcp.port eq 80)

    Cette expression est extraite de la Barre de filtrage. Elle doit tenir sur une ligne unique quel que soitsa longueur.

    ip.addr: slection d'une adresse IP.eq 192.168.1.9: valeur particulire d'adresse IP. L'oprateur eqcorrespond un test d'galit. Il

    est aussi possible d'utiliser la syntaxe du langage C pour les tests : ==:galit,

    !=: diffrence,

    >=: suprieur ou gal,

  • 7/25/2019 Intro.analyse

    8/17

    Introduction l'analyse rseau

    Prparation d'un filtre d'affichage la souris - vue complte

    L'expression prpare apparat dans la champ de la Barre de filtrage:

    tcp.options.mss_val == 1460

    Supposons maintenant que l'on veuille afficher toutes les trames ayant cette optionindpendamment de sa valeur. Il suffit alors de supprimer le test :

    tcp.options.mss_val

    Fragmentation IPAdmettons que l'on veuille observer la fragmentation IP en reprant les champs correspondants del'en-tte des paquets IP. Tout d'abord, il faut provoquer la fragmentation IP artificiellement. Onutilise deux htes avec chacun une interface Ethernet et un hub. En rduisant la taille maximumdes donnes transmises par paquet (Maximum Transmit Unit) sur l'interface Ethernet d'un hte,on observe plus facilement les effets de la fragmentation.

    __________|_=_=_=_=_// Hub | | / \_______ |..... \.------,~ |.....

    |Hote_A|' .------,~| || |Hote_B|'\------ / | ||======/ \------ /192.168.254.128 ======/ 192.168.254.2

    Hote_A # ifconfig eth0 mtu 256Hote_A # ping -s 128 -c 5 192.168.254.2PING 192.168.254.2 (192.168.254.2) 128(156) bytes of data.136 bytes from 192.168.254.2: icmp_seq=1 ttl=64 time=0.591 ms136 bytes from 192.168.254.2: icmp_seq=2 ttl=64 time=0.528 ms136 bytes from 192.168.254.2: icmp_seq=3 ttl=64 time=0.554 ms136 bytes from 192.168.254.2: icmp_seq=4 ttl=64 time=0.545 ms136 bytes from 192.168.254.2: icmp_seq=5 ttl=64 time=0.546 ms

    --- 192.168.254.2 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 3999msrtt min/avg/max/mdev = 0.528/0.552/0.591/0.036 msHote_A # ping -s 8192 -c 5 192.168.254.2PING 192.168.254.2 (192.168.254.2) 8192(8220) bytes of data.8200 bytes from 192.168.254.2: icmp_seq=1 ttl=64 time=15.4 ms8200 bytes from 192.168.254.2: icmp_seq=2 ttl=64 time=15.4 ms8200 bytesfrom 192.168.254.2: icmp_seq=3 ttl=64 time=15.4 ms8200 bytes from 192.168.254.2: icmp_seq=4 ttl=64 time=15.4 ms8200 bytes from 192.168.254.2: icmp_seq=5 ttl=64 time=15.4 ms

    --- 192.168.254.2 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4004ms

    rtt min/avg/max/mdev = 15.444/15.462/15.481/0.079 ms

    On observe ensuite le rsultat sur l'affichage des trames captures. La syntaxe du filtre est :

    ip.flags.df == 0

    Introduction l'analyse rseau 8

    http://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-preparefilter.pnghttp://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-preparefilter.png
  • 7/25/2019 Intro.analyse

    9/17

    Introduction l'analyse rseau

    Prparation d'un filtre d'affichage la souris - vue complte

    Connaissant maintenant la syntaxe d'identification de la fragmentation IP, il sera toujours possibled'appliquer le mme filtre sur une capture beaucoup plus importante en volume.

    5.3. Documentation de rfrence sur les filtres d'affichage

    La documentation sur l'ensemble des champs des protocoles reconnus utilisables dans les expressionsde filtres d'affichage est disponible l'adresse : Display Filter Reference.

    6. Analyse distance

    Lorsque l'on exploite une infrastructure de serveurs avec plusieurs primtres rseau cloisonns, il estfrquent de devoir procder des captures rseau distance. De plus, la plupart des serveurs rcentssont des lames qui n'ont ni clavier ni cran. Voici donc un exemple de scnario capture rseau ralisesur un hte distant exploite ensuite sur un poste de travail ayant une interface graphique.

    Dans la suite de copies d'cran suivante, on considre les lments suivants :

    Le poste de travail sur lequel l'analyse est effectue en mode graphique aprs collecte du fichier decapture est appel .

    Le serveur lame sans cran ni clavier sur lequel la capture rseau est ralise est appel. On y accde via une console scurise SSH.

    On suppose que les deux htes ont un compte utilisateur me. Le compte utilisateur sur le serveurdoit disposer des droits ncessaire la capture de trames sur les interfaces rseau du serveur. Cesdroits sont grs avec sudo.

    On utilise l'application tshark qui permet d'excuter l'analyse rseau directement la console sansrecours une interface graphique. Cette application est fournie par le paquet Debiandu mme nom.Voir le rsultat de la commande $ apt-cache show tsharkpour obtenir les informations sur ce paquet.

    Les indications donnes ci-dessous ne peuvent se substituer aux pages de manuels de l'application.Il est vivement conseill de les consulter pour adapter l'analyse rseau ses besoins : man tshark.

    Connexion au serveur depuis le poste de travailComme indiqu ci-avant, on accde au serveur via une console scurise SSH. partir le Windoze,l'outil puttypermet d'effectuer la mme opration.

    me@:~$ ssh me@

    Linux 2.6.15 #1 SMP Mon Mar 13 14:54:19 CET 2006 i686

    The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.No mail.Last login: Tue Mar 21 10:45:38 2006 from

    me@:~$

    Introduction l'analyse rseau 9

    http://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-fragment.pnghttp://www.wireshark.org/docs/dfref/http://www.inetdoc.net/travaux_pratiques/intro.analyse/images/wireshark-fragment.png
  • 7/25/2019 Intro.analyse

    10/17

    Introduction l'analyse rseau

    Lancement de la capture rseau dans un nouveau shellUn utilisateur normal n'ayant pas les droits suffisants pour accder directement aux interfacesrseau, on doit lancer l'analyseur de rseau via sudo : $ sudo tshark.

    On lance cette commande dans un nouveau shell en ajoutant le symbole & la fin de la ligne. Decette faon, on conserve la possibilit de lancer d'autres commandes sur la console obtenue lorsde la connexion au serveur.

    me@:~$ sudo tshark -q -i _eth0 -w distant.cap \ -a filesize:4096 tcp and ! host &

    L'option -qrend la capture silencieuse. Il s'agit surtout de supprimer l'affichage du comptedes paquets enregistrs pendant la capture. Cet affichage est gnant si l'on souhaite conserver laconsole pour effectuer d'autres manipulations en cours de capture.

    L'option -i _eth0dsigne l'interface rseau sur laquelle la capture est ralise.

    L'option -w distant.capdsigne le fichier dans lequel les paquets capturs sont enregistrs.Sans spcification du format de fichier avec l'option -F, les paquets capturs sont enregistrsdirectement (mode raw).

    L'option -a filesize:4096donne le critre d'arrt de l'enregistrement. Ici, le critre retenu est la

    taille du fichier de capture. Cette taille est comptabilise en multiple du kilooctet (1024 octets) ;soit 4096ko dans cet exemple.

    Les options suivantes correspondent au filtrage priori des paquets enregistrer. On spcifiele protocole de transport tcpeton n'enregistre pas les paquets de l'hte qui ouvert la consolescurise : ! host . Sans cette dernire prcaution, l'enregistrementne contiendra pratiquement que les changes SSH. Ces changes sont sans intrt puisqu'ilscorrespondent aux communications entre les deux htes utiliss pour l'analyse distante.

    Initiation du trafic rseau capturer.Cette commande n'est qu'un prtexte pour remplir le fichier de capture. Avec le tlchargementd'une image des sources du noyau Linux, on est sr de faire transiter un volume suffisant ;-).

    me@:~$ wget \ http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2--11:14:29-- http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 => `linux-2.6.16.tar.bz2'Rsolution de kernel.org... 204.152.191.5, 204.152.191.37Connexion vers kernel.org|204.152.191.5|:80...connect.requte HTTP transmise, en attente de la rponse...200 OKLongueur: 40 845 005 (39M) [application/x-bzip2]

    100%[===============//=====================>] 40 845 005 296.19K/s ETA 00:00

    11:16:58 (292.09 KB/s) - linux-2.6.16.tar.bz2 sauvegard [40845005/40845005]

    Fin de la capture et visualisation du fichier

    Comme indiqu ci-avant, l'enregistrement s'arrte lorsque le fichier atteint la taille de 4096ko.[1]+ Done sudo tshark -q -i _eth0 -w distant.cap \ -a filesize:4096 tcp and ! host

    me@:~$ ls -lAh-rw------- 1 root latu 4,1M 2006-03-21 11:14 distant.cap-rw-r--r-- 1 latu latu 39M 2006-03-20 07:22 linux-2.6.16.tar.bz2

    me@:~$ sudo chmod 640 distant.cap

    me@:~$ exitlogoutConnection to closed.

    L'enregistrement sur fichier ayant t ralis avec l'identit du super-utilisateur via la commandesudo, il faut changer le masque des permissions de ce fichier ou son propritaire. Dans cetexemple, c'est le masque des permissions d'accs qui a t tendu pour que l'utilisateur normalpuisse lire le fichier de capture et le transfrer sur son poste de travail.

    Introduction l'analyse rseau 10

  • 7/25/2019 Intro.analyse

    11/17

    Introduction l'analyse rseau

    Rcupration du fichier de capture sur le poste de travail

    me@:~$ scp me@:~/distant.cap .distant.cap 100% 4097KB 682.8KB/s 00:06

    me@:~$ wireshark -r distant.cap

    La commande scpillustre le transfert du fichier de capture rseau via SSH. On peut effectuer lamme opration partir de Windoze avec l'outil WinSCP.

    Enfin, il est possible de lire le fichier de capture directement au lancement de l'analyseur rseauavec l'option -r.

    7. Travaux pratiques : navigation Web (HTTP)

    7.1. Protocoles tudis

    Adressage matriel (MAC|Ethernet) et logique (IP).

    Requte et rponse du service de noms de domaines (DNS).

    tablissement, maintien et libration de connexion TCP : procdure en trois tapes, numros desquence et d'acquittement.

    Requte et rponse HTTP.

    7.2. Marche suivre

    1. Lancer Wireshark.

    2. Lancer la capture des trames sans restrictions d'adresses, de protocoles ou de volume.

    3. Lancer un navigateur Web et saisir une adresse de site (URL) de votre choix.

    4. Une fois la page compltement charge, arrter la capture. Sauvegarder un fichier de capture.

    5. Passer aux questions suivantes.

    Suivant le contexte de connexion, le volume d'information captur varie normment : connexionDSL, rseau local commut ou non, multiplicit des protocoles rseau, etc. Il est cependant prfrabled'effectuer la premire capture sans aucune restriction prioride faon avoir une image exacte dutrafic. Si l'information utile est vraiment noye dans du bruit, il est toujours possible de reprendrela capture avec un filtre ; voir Section 4, Capture d'une srie de trame .

    7.3. Analyse des protocoles

    Pour rpondre aux questions suivantes, utiliser le rsultat de la capture issue de l'tape prcdente oucharger un fichier de capture.

    7.3.1. Protocoles capturs

    Q1. Quels sont les protocoles indiqus dans la colonne Protocol de la fentre de liste des tramescaptures ?

    Confirmer que la capture contient bien les protocoles DNS, TCP et HTTP.

    7.3.2. Trame Ethernet, paquet IP et datagramme UDP

    Analyser la trame correspondant au premier message DNS mis par le client Web.

    Q2. Quels sont les adresses (MAC|Ethernet) et IP du client ?

    Introduction l'analyse rseau 11

  • 7/25/2019 Intro.analyse

    12/17

    Introduction l'analyse rseau

    Q3. Quel est le contenu du champ type de la trame Ethernet ?

    Q4. Quelles sont les adresses destination (MAC|Ethernet) et IP ?

    Q5. quelles machines correspondent ces adresses ?

    Analyser l'en-tte IP du premier message DNS mis par le client Web.

    Q6. Quelle est la taille de l'en-tte ? Quelle est la longueur totale du paquet ?Q7. Reprer le champ type de protocole dans l'en-tte. Quel est le numro et le type de protocole

    prsent dans les donnes du paquet ?

    Analyser l'en-tte UDP du premier message DNS mis par le client Web.

    Q8. Quels sont les numros de ports du client et du serveur ? Quelles sont les particularits de cesvaleurs ? Quel est le protocole de couche application prsent dans les donnes du message ?

    Q9. Quelle est la valeur indique dans le champ longueur de l'en-tte UDP ? Est-ce qu'elle correspond l'information donne dans l'en-tte du paquet IP ?

    Faire un croquis des piles de protocoles des couches physique application pour le client et le serveur ;identifier les units de donnes de protocoles (PDUs) et les communications de bout en bout.

    7.3.3. Service DNS

    Analyser le message de requte DNS mis par le client Web.

    Q10. Quel est le champ qui indique si le message est une requte ou une rponse ?

    Q11. Quelle est l'information transporte dans le corps de la requte ? Identifier le type et la classede la requte.

    Q12. Quel est l'identificateur de transaction de la requte ?

    On considre maintenant la rponse la requte prcdente.

    Q13. Quelles devraient tre les adresses (MAC|Ethernet) et IP de ce paquet ?

    Vrifier que les adresses attendues sont prsentes.

    Q14. Quelle est la taille du paquet IP ; du message UDP ? Cette taille est-elle plus importante que celledu paquet de requte ?

    Q15. Quel est l'identificateur de transaction de la rponse ? Est-ce qu'il correspond la requte ?

    Q16. Combien de rponses sont disponibles dans le message de rponse ? Comparer les rponses etleurs valeurs TTL (Time-to-live).

    7.3.4. Connexion TCP

    Identifier la trame qui correspond au premier segment TCP dans la procdure en trois tapes ( threeways handshake) qui initie la connexion entre le client et le serveur HTTP.

    Q17. Quelles sont les adresses (MAC|Ethernet) et IP attendues pour cette trame ? Quels sont lesvaleurs des champs typeet protocolerespectivement attendus pour cette trame et ce paquet ?

    Vrifier que ces champs et adresses correspondent.

    Q18. Expliquer les valeurs des adresses destination (MAC|Ethernet) et IP ? quels htescorrespondent ces adresses ?

    Introduction l'analyse rseau 12

  • 7/25/2019 Intro.analyse

    13/17

    Introduction l'analyse rseau

    Q19. Identifier les numros de ports utiliss par le client. Pourquoi ces valeurs sont-elles utilises ?

    Q20. Quelle est la longueur du segment TCP ?

    Q21. Quel est le numro de squence initial (Initial Sequence Numberou ISN mis par le client versle serveur ? Quelle est la taille de fentre initiale ? Quelle est la taille maximale de segment(Maximum Segment Sizeou MSS) ?

    Q22. Trouver la valeur hexadcimale de l'octet qui contient l'indicateur d'tat SYN ?

    Identifier la trame qui correspond au second segment TCP dans la procdure en trois tapes (threeways handshake).

    Q23. Combien de temps s'est coul entre la capture du premier et du second segment TCP ?

    Q24. Relever les valeurs des champs suivants de cette trame :

    Adresses MAC source et destination de la trame Ethernet.

    Adresses source et destination du paquet IP.

    Numros de squence et d'acquittement du segment TCP. Valeurs des indicateurs d'tat.

    Vrifier que tout correspond aux valeurs attendues.

    Q25. Quelle est la longueur du segment TCP ?

    Q26. Quel est le numro de squence initial (Initial Sequence Numberou ISN mis par le serveurvers le client ? Quelle est la taille de fentre initiale ? Quelle est la taille maximale de segment(Maximum Segment Sizeou MSS) ?

    Identifier la trame qui correspond au dernier segment TCP dans la procdure en trois tapes (three

    ways handshake).

    Q27. Combien de temps s'est coul entre la capture du second et du troisime segment TCP ?Comparer cette valeur avec celle releve entre le premier et le second segment et expliquer ladiffrence.

    Q28. Relever les valeurs des champs suivants de cette trame :

    Numros de squence et d'acquittement du segment TCP.

    Valeurs des indicateurs d'tat.

    Tailles de fentre.

    Vrifier que tout correspond aux valeurs attendues.

    Q29. Quelle est la longueur du segment TCP ?

    7.3.5. Requte HTTP GET

    Identifier la trame qui correspond au message HTTP GET.

    Q30. Quelles sont les valeurs des numros de squence et d'acquittement de l'en-tte TCP ?.

    Vrifier que tout correspond aux valeurs attendues.

    Q31. Quels sont les indicateurs d'tat actifs de l'en-tte TCP ? Expliquer pourquoi.

    Q32. Quelles sont les longueurs de l'en-tte et de la charge du message TCP ?

    Introduction l'analyse rseau 13

  • 7/25/2019 Intro.analyse

    14/17

    Introduction l'analyse rseau

    On considre maintenant le contenu du message HTTP GET.

    Q33. Comparer le texte dcod dans la fentre d'affichage de la pile de protocolesavec le contenu dela fentre d'affichage brut.

    Q34. Compter le nombre d'octets du message et vrifier que ce nombre correspond au champlongueur de l'en-tte TCP.

    Q35. Quel est le prochain numro de squence attendu dans le message suivant mis par le serveurHTTP ?

    7.3.6. Rponse HTTP

    Q36. Combien de temps s'est coul entre la capture du message GETet la capture du message derponse correspondant ?

    Q37. Dterminer si le serveur rpond avec un message HTTP ou un segment TCP ACK?

    Q38. Quel est le numro de squence mis par le serveur HTTP ? Est-ce qu'il correspond la valeurattendue ?

    On considre maintenant l'en-tte du message rponse HTTP.

    Q39. Quelle est la longueur de la charge indique dans l'en-tte TCP ?

    Q40. Quels sont les indicateurs d'tat actifs de l'en-tte TCP ? Expliquer pourquoi.

    Q41. Quel est le prochain numro de squence attendu dans le message suivant mis par le client ?

    On considre maintenant le corps du message rponse HTTP.

    Q42. Quel est le code dans le message de rponse ?

    Q43. Slectionner ce code avec la souris dans la fentre d'affichage de la pile de protocoles etcomparer avec ce qui est affich sur la page du navigateur Web.

    Cette opration revient suivre la dmarche prsente dans la Section 5.1, Isoler uneconnexion TCP .

    8. Travaux pratiques : messages de contrle internet (ICMP)

    8.1. Protocoles et outils tudis

    Internet Control Message Protocolou ICMP ; messages de type : Echo, Echo Replyet Time Exceeded.

    Internet Protocolou IP ; champ de l'en-tte IP : Time to Live.

    Commande ping.

    Commandes tracerouteet tcptraceroute.

    8.2. Marche suivre

    Commande ping

    1. Lancer Wireshark.

    2. Lancer la capture des trames sans restrictions d'adresses, de protocoles ou de volume.

    3. Lancer une console et taper une commande du typeping -c10 www.phrack.org. L'option-c10limitele nombre de requtes ICMP 10. Bien sr, le choix de l'adresse contacter est totalement libre.

    Introduction l'analyse rseau 14

  • 7/25/2019 Intro.analyse

    15/17

    Introduction l'analyse rseau

    4. Arrter la capture lorsque l'invite de commande rapparat la console.

    5. Sauvegarder le fichier de capture.

    Commande traceroute

    1. Lancer Wireshark.

    2. Lancer la capture des trames sans restrictions d'adresses, de protocoles ou de volume.

    3. Lancer une console et taper une commande du type traceroute www.phrack.org. Bien sr, le choixde l'adresse contacter est totalement libre.

    4. Arrter la capture lorsque l'invite de commande rapparat la console.

    5. Sauvegarder le fichier de capture.

    La plage de ports UDP utilise par dfaut par la commande tracerouteest de plus en plus frquemmentbloque par les quipements d'interconnexion. Il est alors utile d'envisager l'emploi de la commandetcptracerouteavec laquelle on peut fixer les ports source et destination.

    Commande tcptraceroute

    1. Lancer Wireshark.

    2. Lancer la capture des trames sans restrictions d'adresses, de protocoles ou de volume.

    3. Lancer une console et taper une commande du type tcptraceroute -p 1024 www.phrack.org 80.Bien sr, le choix de l'adresse contacter est totalement libre.

    4. Arrter la capture lorsque l'invite de commande rapparat la console.

    5. Sauvegarder le fichier de capture.

    8.3. Analyse avec ping

    Pour rpondre aux questions suivantes, utiliser le rsultat de la capture issue de l'tape prcdente oucharger un fichier de capture.

    8.3.1. Protocoles capturs

    Q44. Quels sont les protocoles indiqus dans la colonne Protocol de la fentre de liste des tramescaptures ?

    Il est probable que les paquets ICMP soient prcds d'un jeu de question/rponse DNS.

    Q45. Relever l'adresse IP renvoye avec la rponse DNS.

    8.3.2. Message ICMP Echo Request

    tude du paquet IP qui correspond au premier message ICMP Echo Request.

    Q46. Quelle est l'adresse IP destination du paquet ? Quelle est la valeur du champ Protocol Type?Quelle est la valeur du champ Time to Live?

    tude du message ICMP.

    Q47. Quel est le type de message ICMP ? Quel est l'identificateur de message ? Quel est le numro

    de squence ?

    Q48. Slectionner la souris les octets de donnes du message de requte. Comparer ces donnesavec celles affiches dans la fentre d'affichage brut.

    Introduction l'analyse rseau 15

  • 7/25/2019 Intro.analyse

    16/17

    Introduction l'analyse rseau

    8.3.3. Message ICMP Echo Reply

    tude du paquet IP qui correspond au premier message ICMP Echo Reply.

    Q49. Quelle sont les adresses IP source et destination du paquet ? Quelle est la valeur du champProtocol Type? Quelle est la valeur du champ Time to Live?

    tude du message ICMP.

    Q50. Quel est le type de message ICMP ? Comparer l'identificateur de message et le numro desquence du message de rponse avec les valeurs du message de requte.

    Q51. Slectionner la souris les octets de donnes du message de requte. Comparer ces donnesavec celles affiches dans le message de requte.

    8.3.4. Messages ICMP restants

    Reprendre les 2 points prcdents pour les messages ICMP Echo Requestet Echo Replyrestants.

    Q52. Comment les champs d'identification et de numro de squence voluent dans le temps ?

    Q53. Est-ce que les squences de donnes des requtes et des rponses changent ?

    Q54. Calculer l'cart de temps entre l'mission de chaque message Echo Requestet la rception dechaque message Echo Reply. Comparer les rsultats avec les valeurs maximum, moyenne etminium fournies par la commande ping.

    8.4. Analyse avec (tcp)traceroute

    Pour rpondre aux questions suivantes, utiliser le rsultat de la capture issue de l'tape prcdente oucharger un fichier de capture.

    8.4.1. Protocoles capturs

    Q55. Quels sont les protocoles indiqus dans la colonne Protocol de la fentre de liste des tramescaptures ?

    Il est probable que les paquets ICMP soient prcds d'un jeu de question/rponse DNS.

    Q56. Relever l'adresse IP renvoye avec la rponse DNS.

    8.4.2. Message UDP

    Q57. Quelle est l'adresse IP destination du premier paquet contenant le message UDP ? Quelles sontles valeurs des champs Protocol Typeet Time to Live?

    Comparer l'adresse IP destination releve avec celle de la rponse DNS. Noter les valeurscaractristiques de l'en-tte IP en vue d'une utilisation ultrieure.

    Q58. Combien d'octets de donnes sont prsents dans ce message de requte ?

    Noter la squence de caractres prsente dans la troisime fentre.

    8.4.3. Message ICMP Time Exceeded

    Q59. Quelles sont les adresses IP source et destination du paquet de la premire rponse ICMP TimeExceeded?

    tude du message ICMP.

    Introduction l'analyse rseau 16

  • 7/25/2019 Intro.analyse

    17/17

    Introduction l'analyse rseau

    Q60. Quel est le type de message ICMP ?

    Les champs Type, Codeet Checksumsont suivis par plusieurs octets zro puis par l'en-tte IP dumessage ICMP Echo Request. Comparer les valeurs caractristiques de cet en-tte avec cellesnotes ci-avant.

    Q61. Est-ce que le message ICMP contient de nouveaux octets de donnes ?

    8.4.4. Evolution du champ TTL

    Q62. Combien de messages UDP sont mis avec la mme valeur de champ TTLdans l'en-tte de paquetIP ?

    Q63. Quelles sont les adresses IP source des paquets ICMP Time Exceeded?

    Comparer ces adresses avec celles donnes lors de l'excution de la commande traceroute.

    Q64. Quel est le type du message ICMP reu lorsque l'hte destinataire est atteint ?

    Q65. Comment calculer les temps affichs par la commande traceroute partir des valeurs donnes

    dans la colonne Timede la fentre des trames captures ?Utiliser les pages de manuels de la commande traceroute pour obtenir la signification desdiffrentes valeurs de temps pour atteindre une destination.

    8.4.5. Variantes

    Il est possible de reprendre les questions ci-dessus en utilisant diffrentes options des commandestracerouteet|ou tcptraceroute.

    Analyse uniquement base de messages ICMP avec l'option -I: traceroute -I www.phrack.org.

    Analyse base de segments TCP en prcisant le numro de port vis :tcptraceroute www.phrack.org80.

    Cette dernire variante est trs utile pour vrifier si un service est ouvert ou non.

    9. Documents de rfrence

    Guide de l'utilisateurLe Wireshark User's Guideest la rfrence la plus complte sur l'utilisation de notre analyseur detrafic favori !

    Protocoles

    Le fichier PDF TCP/IP and tcpdump Pocket Reference Guideest une antische sur les champsdes en-ttes des protocoles essentiels ; un document indispensablepour la pratique de l'analyserseau.

    Travaux pratiques

    Le support Configuration d'une interface de rseau local prsente les oprations deconfiguration d'une interface rseau et propose une exploitation des protocoles TCP/IP et ICMPsans recours un analyseur rseau.

    Le chapitre Using Ethereal - Chapter 4 of Ethereal packet sniffingest un extrait de livre consacr la version antrieure de l'analyseur de trafic rseau.

    Le site Ethereal Labs prsente d'autres travaux pratiques bass sur Ethereal, la versionantrieure de l'analyseur de trafic rseau.

    http://gaia.cs.umass.edu/ethereal-labs/http://www.inetdoc.net/travaux_pratiques/config.interface.lan/http://www.inetdoc.net/travaux_pratiques/config.interface.lan/http://www.inetdoc.net/travaux_pratiques/config.interface.lan/http://www.sans.org/resources/tcpip.pdfhttp://www.sans.org/resources/tcpip.pdfhttp://www.sans.org/resources/tcpip.pdfhttp://gaia.cs.umass.edu/ethereal-labs/http://searchenterpriselinux.techtarget.com/searchEnterpriseLinux/downloads/284_EPS_04.pdfhttp://www.inetdoc.net/travaux_pratiques/config.interface.lan/http://www.sans.org/resources/tcpip.pdfhttp://www.wireshark.org/download/docs/user-guide-a4.pdf