Annotation of embedaddon/hping2/docs/french/HPING2-HOWTO.txt, revision 1.1

1.1     ! misho       1: N.B. : ce HOWTO n'est pas terminé, et par endroits très bête. Je laisse cela
        !             2:       ici seulement parce que peut être que c'est mieux que rien.
        !             3: 
        !             4: HPING2 HOWTO
        !             5: 
        !             6: Changes Log
        !             7: -----------
        !             8: Aug 7 1999             vi HPING2-HOWTO.txt
        !             9: Aug 8 1999             __0000, __0001, __0002, __0003
        !            10: Aug 10 1999            __0004
        !            11: 
        !            12: Index
        !            13: -----
        !            14: [cherchez __XXXX afin de sauter au point que vous souhaitez]
        !            15: 
        !            16:        __0000: Avis de copyright
        !            17:        __0001: Qu'est ce que hping ?
        !            18:         __0002: Qu'est ce que j'ai besoin de connaître de TCP/IP pour
        !            19:                 utiliser hping ?
        !            20:        __0003: Premiers pas avec hping
        !            21:        __0004: Le champ IP id et comment scanner des ports TCP en utilisant
        !            22:                 de l'usurpation d'adresse.
        !            23:        __0005: Comment tester des règles de filtrage. (A faire)
        !            24:        __0006: Comment transférer des fichier au travers de firewalls. (A
        !            25:                 faire)
        !            26: 
        !            27:        __000A: Exemple d'utilisation de hping (A faire)
        !            28: 
        !            29: __0000: Avis de copyright, Licence, et tout ce genre de choses
        !            30: 
        !            31:   Copyright (C) Salvatore Sanfilippo, 1999.
        !            32: 
        !            33:   La permission est accordée de faire et distribuer des copies de ce manuel
        !            34:   à condition que l'avis de copyright et cet avis de permission soient
        !            35:   préservés sur toutes les copies.
        !            36: 
        !            37:   Permission est accordée de copier et distribuer des versions modifiées de
        !            38:   ce manuel sous les conditions de copie verbatim, à condition que le
        !            39:   travail dérivé soit distribué sous les termes d'un avis de permission
        !            40:   identique à celui-ci. Les traductions tombent dans la catégorie des
        !            41:   ''versions modifiées.''
        !            42: 
        !            43:   Garantie : Aucune.
        !            44: 
        !            45:   Recommandations : les redistributions commerciales sont autorisées et
        !            46:   encouragées; cependant, il est fortement recommandé que le redistributeur
        !            47:   contacte l'auteur avant redistribution, dans l'intérêt de garder les
        !            48:   choses à jour (vous pouvez m'envoyer une copie de ce que vous faites
        !            49:   pendant que vous y êtes). Les traducteurs sont également encouragés à
        !            50:   contacter l'auteur avant traduction. Le version imprimée aura plus
        !            51:   d'allure.
        !            52:   Recyclez.
        !            53: 
        !            54: __0001 : Qu'est ce que hping ?
        !            55: 
        !            56:   Hping est un logiciel pour tester des piles TCP/IP, pour découvrir des
        !            57:   politiques de firewalls, pour scanner les ports TCP de nombreuses manières
        !            58:   différentes, pour transférer les fichiers au travers de firewalls et
        !            59:   beaucoup d'autres choses. En utilisant hping vous pouvez même faire
        !            60:   beaucoup de choses qui ne concernent pas la sécurité. Par exemples vous
        !            61:   pouvez tester les performances réseau, vérifier si un système tourne,
        !            62:   vérifier si le champ TOS est géré, etc.
        !            63: 
        !            64: __0002 : Qu'est ce que j'ai besoin de connaître de TCP/IP pour utiliser
        !            65:          hping ?
        !            66: 
        !            67:   Si vous connaissez TCP/IP vous trouverez hping très utile, sinon vous
        !            68:   pouvez utiliser hping seulement pour faire des tests connus. Voir __000A
        !            69:   pour quelques exemples.
        !            70: 
        !            71: __0003 : Premiers pas avec hping
        !            72: 
        !            73:   La plus simple utilisation de hping est la suivante :
        !            74: 
        !            75:        #hping host
        !            76: 
        !            77:   Cette commande envoie un paquet TCP sans drapeau au port 0 du système
        !            78:   cible chaque seconde et montre les réponses du système. Par exemple :
        !            79: 
        !            80: # hping www.debian.org
        !            81: ppp0 default routing interface selected (according to /proc)
        !            82: HPING www.debian.org (ppp0 209.81.8.242): NO FLAGS are set, 40 headers + 0 data bytes
        !            83: 40 bytes from 209.81.8.242: flags=RA seq=0 ttl=243 id=63667 win=0 time=369.4 ms
        !            84: 40 bytes from 209.81.8.242: flags=RA seq=1 ttl=243 id=63719 win=0 time=420.0 ms
        !            85: 40 bytes from 209.81.8.242: flags=RA seq=2 ttl=243 id=63763 win=0 time=350.0 ms
        !            86: [Ctrl+C]
        !            87: --- www.debian.org hping statistic ---
        !            88: 3 packets tramitted, 3 packets received, 0% packet loss
        !            89: 
        !            90:   Comme vous pouvez le voir le système répond avec un paquet TCP avec les
        !            91:   drapeaux RST et ACK positionnés. Ainsi vous êtes capable d'effectuer un
        !            92:   'ping TCP', utile quand ICMP est filtré. Par défaut le port 0 est utilisé
        !            93:   parce qu'il serait étrange qu'il soit à l'état LISTEN (ndt : en écoute). 
        !            94:   Si nous envoyons un paquet TCP sans drapeau à un port à l'état LISTEN, de
        !            95:   nombreuses piles TCP/IP ne renverront pas de réponse. Ainsi nous sommes
        !            96:   capables de savoir si un port est dans l'état LISTEN. Par exemple :
        !            97: 
        !            98: # hping www.debian.org -p 80
        !            99: ppp0 default routing interface selected (according to /proc)
        !           100: HPING www.debian.org (ppp0 209.81.8.242): NO FLAGS are set, 40 headers + 0 data bytes
        !           101: [Ctrl+C]
        !           102: --- www.debian.org hping statistic ---
        !           103: 5 packets trasmitted, 0 packets received, 100% packet loss
        !           104: 
        !           105:   Puisque le port 80 de www.debian.org est en mode LISTEN nous n'obtenons
        !           106:   aucune réponse.
        !           107: 
        !           108:   Mais qu'arrive-t-il si nous essayons de 'hpinger' un port bloqué par un
        !           109:   firewall ? Cela dépend de la politique / configuration du firewall. 
        !           110:   Habituellement nous obtenons un paquet ICMP ou rien. Par exemple :
        !           111: 
        !           112: # hping www.yahoo.com -p 79
        !           113: ppp0 default routing interface selected (according to /proc)
        !           114: HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 0 data bytes
        !           115: ICMP Packet filtered from 206.132.254.41  (pos1-0-2488M.hr8.SNV.globalcenter.net)
        !           116: 
        !           117: --- www.yahoo.com hping statistic ---
        !           118: 14 packets tramitted, 0 packets received, 100% packet loss
        !           119: 
        !           120:   Le firewall de yahoo ne permet pas de connexion sur le port 79, donc il
        !           121:   répond avec un paquet ICMP Packet filtered (ICMP unreachable code 13). 
        !           122:   Cependant il y a beaucoup de firewalls qui ignorent simplement le paquet. 
        !           123:   Par exemple :
        !           124: 
        !           125: # hping www.microsoft.com -p 79
        !           126: ppp0 default routing interface selected (according to /proc)
        !           127: HPING www.microsoft.com (ppp0 207.46.130.150): NO FLAGS are set, 40 headers + 0 data bytes
        !           128: 
        !           129: --- www.microsoft.com hping statistic ---
        !           130: 4 packets tramitted, 0 packets received, 100% packet loss
        !           131: 
        !           132:   Aucune réponse de microsoft. Est-ce que le port est bloqué ou en mode
        !           133:   LISTEN ? Découvrir cela est très simple. Nous essayons juste de mettre le
        !           134:   drapeau ACK au lieu d'envoyer un paquet TCP sans drapeau. Si le système
        !           135:   répond, peut-être que ce port est en mode LISTEN (mais il est possible
        !           136:   qu'il y ait une règle qui refuse les paquets TCP sans drapeau mais
        !           137:   autorise les paquets ACK).
        !           138: 
        !           139: # hping www.microsoft.com -A -p 79
        !           140: ppp0 default routing interface selected (according to /proc)
        !           141: HPING www.microsoft.com (ppp0 207.46.130.149): A set, 40 headers + 0 data bytes
        !           142: 
        !           143: --- www.microsoft.com hping statistic ---
        !           144: 3 packets tramitted, 0 packets received, 100% packet loss
        !           145: 
        !           146:   Toujours pas de réponse, ainsi ce port semble être filtré. Quoi qu'il en
        !           147:   soit, il est possible que microsoft utilise un firewall 'intelligent' qui
        !           148:   sait que pour me connecter je dois d'abord envoyer un paquet SYN.
        !           149: 
        !           150: # hping www.microsoft.com -S -p 79
        !           151: ppp0 default routing interface selected (according to /proc)
        !           152: HPING www.microsoft.com (ppp0 207.46.130.149): S set, 40 headers + 0 data bytes
        !           153: 
        !           154: --- www.microsoft.com hping statistic ---
        !           155: 3 packets tramitted, 0 packets received, 100% packet loss
        !           156: 
        !           157:   Ok.. il semble que le port 79 de microsoft est réellement filtré.
        !           158:   Pour clarification nous envoyons quelques paquets ACK au port 80 de
        !           159:   www.debian.org :
        !           160: 
        !           161: # hping www.debian.org -p 80 -A
        !           162: ppp0 default routing interface selected (according to /proc)
        !           163: HPING www.debian.org (ppp0 209.81.8.242): A set, 40 headers + 0 data bytes
        !           164: 40 bytes from 209.81.8.242: flags=R seq=0 ttl=243 id=5590 win=0 time=379.5 ms
        !           165: 40 bytes from 209.81.8.242: flags=R seq=1 ttl=243 id=5638 win=0 time=370.0 ms
        !           166: 40 bytes from 209.81.8.242: flags=R seq=2 ttl=243 id=5667 win=0 time=360.0 ms
        !           167: 
        !           168: --- www.debian.org hping statistic ---
        !           169: 3 packets tramitted, 3 packets received, 0% packet loss
        !           170: 
        !           171:   Nous pouvons voir les réponses même si le port 80 est en mode LISTEN parce
        !           172:   qu'un port en mode LISTEN ne devrait pas répondre à des paquets TCP avec
        !           173:   seulement un drapeau NULL, FIN, Xmas, ou Ymas. ACK et RST sont deux
        !           174:   drapeaux TCP importants qui permettent de tester des ACL (ndt : listes de
        !           175:   contrôle d'accès) et de deviner le champ ip->id en ne laissant pas de
        !           176:   trace dans les journaux (généralement).
        !           177: 
        !           178: __0004 : Le champ IP id et comment scanner des ports TCP en utilisant de
        !           179:          l'usurpation d'adresse.
        !           180: 
        !           181:   Chaque paquet IP est identifié par un champ id de 16 bits. Grâce à ce
        !           182:   champ id les piles IP sont capables de gérer la fragmentation. De nombreux
        !           183:   OS traitent ip->id trivialement : incrémenter ce champ de 1 champ pour
        !           184:   chaque paquet envoyé. En utilisant ce champ id vous êtes au minimum
        !           185:   capable d'estimer le trafic et de scanner en usurpant l'adresse source.
        !           186:   OpenBSD >= 2.5 et beaucoup d'autres mettent en oeuvre un champ id
        !           187:   aléatoire non répétitif ainsi vous ne pouvez pas jouer avec le champ
        !           188:   ip->id. Le champ ip->id des systèmes Windows n'est pas positionné dans le
        !           189:   même ordre (ndt : dans le bon ordre), donc vous devez spécifier l'option
        !           190:   --winid ou -W si vous utilisez hping2 contre un système Windows.
        !           191: 
        !           192:   N.B. : Vous êtes capable de scanner un système avec un champ ip->id
        !           193:          sûre/aléatoire parce que pour spoofer vos paquets vous avez besoin
        !           194:          d'un système tiers avec un champ id incrémental, mais vous n'avez
        !           195:          pas besoin que la cible de votre scan ait un champ id incrémental.
        !           196: 
        !           197:   Comment estimer le trafic d'un système en utilisant le champ ip->id ?
        !           198:   C'est vraiment très simple :
        !           199: 
        !           200: # hping www.yahoo.com -p 80 -A
        !           201: ppp0 default routing interface selected (according to /proc)
        !           202: HPING www.yahoo.com (ppp0 204.71.200.74): A set, 40 headers + 0 data bytes
        !           203: 40 bytes from 204.71.200.74: flags=R seq=0 ttl=53 id=29607 win=0 rtt=329.4 ms
        !           204: 40 bytes from 204.71.200.74: flags=R seq=1 ttl=53 id=31549 win=0 rtt=390.0 ms
        !           205: 40 bytes from 204.71.200.74: flags=R seq=2 ttl=53 id=33432 win=0 rtt=390.0 ms
        !           206: 40 bytes from 204.71.200.74: flags=R seq=3 ttl=53 id=35368 win=0 rtt=380.0 ms
        !           207: 40 bytes from 204.71.200.74: flags=R seq=4 ttl=53 id=37335 win=0 rtt=390.0 ms
        !           208: 40 bytes from 204.71.200.74: flags=R seq=5 ttl=53 id=39157 win=0 rtt=380.0 ms
        !           209: 40 bytes from 204.71.200.74: flags=R seq=6 ttl=53 id=41118 win=0 rtt=370.0 ms
        !           210: 40 bytes from 204.71.200.74: flags=R seq=7 ttl=53 id=43330 win=0 rtt=390.0 ms
        !           211: 
        !           212: --- www.yahoo.com hping statistic ---
        !           213: 8 packets tramitted, 8 packets received, 0% packet loss
        !           214: round-trip min/avg/max = 329.4/377.4/390.0 ms
        !           215: 
        !           216:   Comme vous pouvez le voir le champ id augmente. Le paquet avec le numéro
        !           217:   de séquence 0 possède un champ id égal à 29607, le numéro 1 à 31549, ainsi
        !           218:   le système www.yahoo.com a envoyé 31549-29607 = 1942 paquets en environ
        !           219:   une seconde. En utilisant l'option -r ou --relid, hping affiche le delta
        !           220:   entre les champs id des deux derniers paquets reçus.
        !           221: 
        !           222: # hping www.yahoo.com -P 80 -A -r
        !           223: ppp0 default routing interface selected (according to /proc)
        !           224: HPING www.yahoo.com (ppp0 204.71.200.68): A set, 40 headers + 0 data bytes
        !           225: 40 bytes from 204.71.200.68: flags=R seq=0 ttl=53 id=65179 win=0 rtt=327.1 ms
        !           226: 40 bytes from 204.71.200.68: flags=R seq=1 ttl=53 id=+1936 win=0 rtt=360.0 ms
        !           227: 40 bytes from 204.71.200.68: flags=R seq=2 ttl=53 id=+1880 win=0 rtt=340.0 ms
        !           228: 40 bytes from 204.71.200.68: flags=R seq=3 ttl=53 id=+1993 win=0 rtt=330.0 ms
        !           229: 40 bytes from 204.71.200.68: flags=R seq=4 ttl=53 id=+1871 win=0 rtt=350.0 ms
        !           230: 40 bytes from 204.71.200.68: flags=R seq=5 ttl=53 id=+1932 win=0 rtt=340.0 ms
        !           231: 40 bytes from 204.71.200.68: flags=R seq=6 ttl=53 id=+1776 win=0 rtt=330.0 ms
        !           232: 40 bytes from 204.71.200.68: flags=R seq=7 ttl=53 id=+1749 win=0 rtt=320.0 ms
        !           233: 40 bytes from 204.71.200.68: flags=R seq=8 ttl=53 id=+1888 win=0 rtt=340.0 ms
        !           234: 40 bytes from 204.71.200.68: flags=R seq=9 ttl=53 id=+1907 win=0 rtt=330.0 ms
        !           235: 
        !           236: --- www.yahoo.com hping statistic ---
        !           237: 10 packets tramitted, 10 packets received, 0% packet loss
        !           238: round-trip min/avg/max = 320.0/336.7/360.0 ms
        !           239: 
        !           240:   Évidemment si on vérifie le champ id toutes les demi-secondes plutôt que
        !           241:   toutes les secondes, l'incrément sera diminué de moitié.
        !           242: 
        !           243: # hping www.yahoo.com -P 80 -A -r -i u 500000
        !           244: ppp0 default routing interface selected (according to /proc)
        !           245: HPING www.yahoo.com (ppp0 204.71.200.68): A set, 40 headers + 0 data bytes
        !           246: 40 bytes from 204.71.200.68: flags=R seq=0 ttl=53 id=35713 win=0 rtt=327.0 ms
        !           247: 40 bytes from 204.71.200.68: flags=R seq=1 ttl=53 id=+806 win=0 rtt=310.0 ms
        !           248: 40 bytes from 204.71.200.68: flags=R seq=2 ttl=53 id=+992 win=0 rtt=320.0 ms
        !           249: 40 bytes from 204.71.200.68: flags=R seq=3 ttl=53 id=+936 win=0 rtt=330.0 ms
        !           250: 40 bytes from 204.71.200.68: flags=R seq=4 ttl=53 id=+987 win=0 rtt=310.0 ms
        !           251: 40 bytes from 204.71.200.68: flags=R seq=5 ttl=53 id=+952 win=0 rtt=320.0 ms
        !           252: 40 bytes from 204.71.200.68: flags=R seq=6 ttl=53 id=+918 win=0 rtt=330.0 ms
        !           253: 40 bytes from 204.71.200.68: flags=R seq=7 ttl=53 id=+809 win=0 rtt=320.0 ms
        !           254: 40 bytes from 204.71.200.68: flags=R seq=8 ttl=53 id=+881 win=0 rtt=320.0 ms
        !           255: 
        !           256: --- www.yahoo.com hping statistic ---
        !           257: 9 packets tramitted, 9 packets received, 0% packet loss
        !           258: round-trip min/avg/max = 310.0/320.8/330.0 ms
        !           259: 
        !           260:   N.B. Attention, en utilisant ip->id vous n'êtes capable que d'estimer *le
        !           261:        nombre de paquets envoyés/unité de temps*. Vous ne pouvez pas
        !           262:        toujours comparer différents systèmes. Le champ ip->id concerne
        !           263:        toutes les interfaces d'un système et par exemple si un système
        !           264:        utilise de la traduction d'adresse ou redirige les connexions TCP
        !           265:        vers un autre système (par exemple un firewall utilisé pour cacher un
        !           266:        serveur web) l'incrément du champ ip->id peut résulter en de fausses
        !           267:        augmentations.
        !           268: 
        !           269:   En 'hpingant' les boites windows sans utiliser l'option --winid vous
        !           270:   verrez que les incrément sont des multiples de 256 à cause d'un ordre des
        !           271:   octets inversé. Ceci peut être réellement utile pour déterminer le type
        !           272:   d'OS.
        !           273: 
        !           274: #hping win95 -r
        !           275: HPING win95 (eth0 192.168.4.41): NO FLAGS are set, 40 headers + 0 data bytes
        !           276: 46 bytes from 192.168.4.41: flags=RA seq=0 ttl=128 id=47371 win=0 rtt=0.5 ms
        !           277: 46 bytes from 192.168.4.41: flags=RA seq=1 ttl=128 id=+256 win=0 rtt=0.5 ms
        !           278: 46 bytes from 192.168.4.41: flags=RA seq=2 ttl=128 id=+256 win=0 rtt=0.6 ms
        !           279: 46 bytes from 192.168.4.41: flags=RA seq=3 ttl=128 id=+256 win=0 rtt=0.5 ms
        !           280: 
        !           281: --- win95 hping statistic ---
        !           282: 4 packets tramitted, 4 packets received, 0% packet loss
        !           283: round-trip min/avg/max = 0.5/0.5/0.6 ms
        !           284: 
        !           285:   Les systèmes windows sont "marqués", ainsi pour découvrir si un système
        !           286:   est un Windows vous avez juste besoin d'envoyer quelques paquets.
        !           287: 
        !           288: Comment effectuer des scans SYN spoofés en utilisant un champ id incrémental
        !           289: ? Ce qui suit est le message original (ndt : du moins sa traduction) à
        !           290: bugtraq à propos de la méthode de scan usurpée/indirecte/passive, dessous
        !           291: j'essayerai d'expliquer les détails et comment cela est possible même avec
        !           292: UDP avec quelques restrictions.
        !           293: 
        !           294: ---- le postage à bugtraq à propos des scans usurpés ----
        !           295: 
        !           296:   Salut,
        !           297: 
        !           298:         J'ai découvert une nouvelle méthode de scan de ports TCP.  Au
        !           299:         contraire de toutes les autres elle vous permet de scanner en
        !           300:         utilisant des paquets usurpés (ndt : dont l'adresse IP source est
        !           301:         usurpée), ainsi les systèmes scannés ne peuvent pas voir votre
        !           302:         adresse réelle. Afin de réaliser cela j'utilise trois particularités
        !           303:         bien connues des mises en oeuvre TCP/IP de la plupart des OS.
        !           304: 
        !           305:           (1) * les systèmes répondent SYN|ACK à SYN si le port TCP cible
        !           306:             est ouvert, et RST|ACK si le port TCP cible est fermé.
        !           307: 
        !           308:           (2) * Vous pouvez connaître le nombre de paquets que les systèmes
        !           309:             envoient en utilisant le champ id de l'entête IP. Voir mes
        !           310:             précédents postages 'à propos de l'entête IP' dans cette mailing
        !           311:             liste.
        !           312: 
        !           313:           (3) * les systèmes répondent RST à SYN|ACK, ne répondent rien à
        !           314:             RST.
        !           315: 
        !           316: 
        !           317:         Les joueurs:
        !           318: 
        !           319:           système A - le système malfaisant, l'attaquant.
        !           320:           système B - le système silencieux.
        !           321:           système C - le système victime.
        !           322: 
        !           323:         A est votre système.
        !           324:         B est un système particulier : il ne doit envoyer aucun paquet
        !           325:          pendant que vous scannez C. Il y a énormément de systèmes à 'trafic
        !           326:          nul' sur Internet, spécialement la nuit :)
        !           327:         C est la victime, il doit être vulnérable aux scans SYN.
        !           328: 
        !           329:         J'ai appelé cette méthode de scan 'scan du système muet' (ndt :
        !           330:         l'autre traduction de 'dumb' est bête) en référence aux
        !           331:         caractéristiques du système B.
        !           332: 
        !           333: 
        !           334:         Comment elle fonctionne :
        !           335: 
        !           336:         Le système A surveille le nombre de paquets sortants depuis B en
        !           337:         utilisant le champ id de l'entête IP. Vous pouvez faire ceci
        !           338:         simplement en utilisant hping :
        !           339: 
        !           340: #hping B -r
        !           341: HPING B (eth0 xxx.yyy.zzz.jjj): no flags are set, 40 data bytes
        !           342: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=0 ttl=64 id=41660 win=0 time=1.2 ms
        !           343: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=1 ttl=64 id=+1 win=0 time=75 ms
        !           344: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=2 ttl=64 id=+1 win=0 time=91 ms
        !           345: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=3 ttl=64 id=+1 win=0 time=90 ms
        !           346: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=4 ttl=64 id=+1 win=0 time=91 ms
        !           347: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=5 ttl=64 id=+1 win=0 time=87 ms
        !           348: -cut-
        !           349: ..
        !           350: .
        !           351: 
        !           352:         Comme vous pouvez le voir, les incréments du champ id sont toujours
        !           353:         de 1. Ainsi ce système a la caractéristique requise pour jouer le
        !           354:         rôle de B.
        !           355: 
        !           356:         Maintenant le système A envoie des paquets SYN au port X de C en
        !           357:         usurpant l'adresse source de B.
        !           358:         (avec hping => 0.67 c'est très facile, http://www.kyuzz.org/antirez)
        !           359:         si le port X de C est ouvert, le système C enverra SYN|ACK à B (oui,
        !           360:         le système C ne sait pas que le véritable expéditeur est A). Dans ce
        !           361:         cas le système B répond au SYN|ACK avec un RST.
        !           362:         Si nous envoyons au système C quelques paquets SYN il répondra à B
        !           363:         quelques paquet SYN|ACK, ainsi B répondra à C quelques RST... ainsi
        !           364:         nous verrons que le système B est en train d'envoyer des paquets !
        !           365: 
        !           366: .
        !           367: ..
        !           368: -cut-
        !           369: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=17 ttl=64 id=+1 win=0 time=96 ms
        !           370: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=18 ttl=64 id=+1 win=0 time=80 ms
        !           371: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=19 ttl=64 id=+2 win=0 time=83 ms
        !           372: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=20 ttl=64 id=+3 win=0 time=94 ms
        !           373: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=21 ttl=64 id=+1 win=0 time=92 ms
        !           374: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=22 ttl=64 id=+2 win=0 time=82 ms
        !           375: -cut-
        !           376: ..
        !           377: .
        !           378: 
        !           379:         Le port est ouvert !
        !           380: 
        !           381:         Par contre, si le port X de C est fermé alors en envoyant à C
        !           382:         quelques paquets SYN avec l'adresse usurpée de B, il répondra avec
        !           383:         des paquets RST à B, et B ne répondra pas (voir 3). Ainsi nous
        !           384:         verrons que le système B n'est en train d'envoyer aucun paquet :
        !           385: 
        !           386: .
        !           387: ..
        !           388: -cut-
        !           389: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=52 ttl=64 id=+1 win=0 time=85 ms
        !           390: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=53 ttl=64 id=+1 win=0 time=83 ms
        !           391: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=54 ttl=64 id=+1 win=0 time=93 ms
        !           392: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=55 ttl=64 id=+1 win=0 time=74 ms
        !           393: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=56 ttl=64 id=+1 win=0 time=95 ms
        !           394: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=57 ttl=64 id=+1 win=0 time=81 ms
        !           395: -cut-
        !           396: ..
        !           397: .
        !           398: 
        !           399:         Le port est fermé.
        !           400: 
        !           401:         Tout ceci peut paraître compliqué à réaliser, mais utiliser deux
        !           402:         sessions de hping dans des consoles virtuelles Linux ou sous X rend
        !           403:         cela plus simple.
        !           404:         La première session surveille le système B : hping B -r
        !           405:         La seconde session envoie des paquets SYN spoofés : hping C -a B -S
        !           406: 
        !           407:         Désolé si mon anglais n'est pas clair.
        !           408:         Cependant ce postage n'est pas adéquat pour décrire exhaustivement
        !           409:         cette méthode de scan, ainsi je vais écrire un article à ce sujet,
        !           410:         en particulier comment mettre en oeuvre ceci dans un scanner de
        !           411:         ports (i.e.  nmap), et à propos des caractéristiques des joueurs et
        !           412:         des OS utilisés.
        !           413: 
        !           414: bonne nouvelle année,
        !           415: antirez
        !           416: 
        !           417: ---- EOF ----
        !           418: 
        !           419:   Comme vous pouvez le voir un scan usurpé est trivial à réaliser,
        !           420:   particulièrement en utilisant hping2 vous êtes capable de spécifier un
        !           421:   intervalle en micro secondes (-i uX) ainsi vous n'avez pas besoin que le
        !           422:   système B soit un système totalement passif. Vous pouvez lire l'incrément
        !           423:   du champ id une fois toutes les secondes en envoyant 10 paquets SYN par
        !           424:   seconde. Si vous envoyez un nombre adéquat de paquets SYN par seconde,
        !           425:   l'incrément du champ id attendu est si important que vous êtes à même de
        !           426:   voir si le port est ouvert ou fermé même si le système B envoie d'autres
        !           427:   paquets. Exemple :
        !           428: 
        !           429: # hping awake.host.org -p 80 -A -r
        !           430: ppp0 default routing interface selected (according to /proc)
        !           431: HPING server.alicom.com (ppp0 111.222.333.44): A set, 40 headers + 0 data bytes
        !           432: 40 bytes from 111.222.333.44: flags=R seq=0 ttl=249 id=47323 win=0 rtt=239.7 ms
        !           433: 40 bytes from 111.222.333.44: flags=R seq=1 ttl=249 id=+6 win=0 rtt=630.0 ms
        !           434: 40 bytes from 111.222.333.44: flags=R seq=2 ttl=249 id=+6 win=0 rtt=280.0 ms
        !           435: 40 bytes from 111.222.333.44: flags=R seq=3 ttl=249 id=+8 win=0 rtt=340.0 ms
        !           436: 40 bytes from 111.222.333.44: flags=R seq=4 ttl=249 id=+5 win=0 rtt=440.0 ms
        !           437: 40 bytes from 111.222.333.44: flags=R seq=5 ttl=249 id=+5 win=0 rtt=410.0 ms
        !           438: 40 bytes from 111.222.333.44: flags=R seq=6 ttl=249 id=+8 win=0 rtt=1509.9 ms
        !           439: 40 bytes from 111.222.333.44: flags=R seq=7 ttl=249 id=+4 win=0 rtt=1460.0 ms
        !           440: 40 bytes from 111.222.333.44: flags=R seq=8 ttl=249 id=+7 win=0 rtt=770.0 ms
        !           441: 40 bytes from 111.222.333.44: flags=R seq=9 ttl=249 id=+5 win=0 rtt=230.0 ms
        !           442: ...
        !           443: 
        !           444:   comme vous pouvez le voir, ce système n'est pas inactif, il envoie environ
        !           445:   6 paquets chaque seconde. Maintenant scannez le port 80 de www.yahoo.com
        !           446:   pour voir s'il est ouvert :
        !           447: 
        !           448: root.1# hping -a server.alicom.com -S -p 80 -i u10000 www.yahoo.com
        !           449: ppp0 default routing interface selected (according to /proc)
        !           450: HPING www.yahoo.com (ppp0 204.71.200.74): S set, 40 headers + 0 data bytes
        !           451: 
        !           452: [attendre quelques secondes et presser CTRL+C]
        !           453: 
        !           454: --- www.yahoo.com hping statistic ---
        !           455: 130 packets tramitted, 0 packets received, 100% packet loss
        !           456: round-trip min/avg/max = 0.0/0.0/0.0 ms
        !           457: 
        !           458:   En observant la sortie de 'hping awake.host.org -p 80 -A -r' il est
        !           459:   simple de comprendre que le port 80 de www.yahoo.com est ouvert :
        !           460: 
        !           461: 40 bytes from 111.222.333.44: flags=R seq=59 ttl=249 id=+16 win=0 rtt=380.0 ms
        !           462: 40 bytes from 111.222.333.44: flags=R seq=60 ttl=249 id=+75 win=0 rtt=850.0 ms
        !           463: 40 bytes from 111.222.333.44: flags=R seq=61 ttl=249 id=+12 win=0 rtt=1050.0 ms
        !           464: 40 bytes from 111.222.333.44: flags=R seq=62 ttl=249 id=+1 win=0 rtt=450.0 ms
        !           465: 40 bytes from 111.222.333.44: flags=R seq=63 ttl=249 id=+27 win=0 rtt=230.0 ms
        !           466: 40 bytes from 111.222.333.44: flags=R seq=64 ttl=249 id=+11 win=0 rtt=850.0 ms
        !           467: 
        !           468:   notez que 16+75+12+27+11+1-6 = 136 et que nous avons envoyé 130 paquets. 
        !           469:   Ainsi il est très probable que les incréments soient produits par nos
        !           470:   paquets.
        !           471: 
        !           472:   Conseil : en utilisant un système inactif pour réaliser un scan usurpé il
        !           473:             est utile de ne montrer que les réponses qui montrent un
        !           474:             incrément différent de 1. Essayez
        !           475:             `hping host -r | grep -v "id=+1"'

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>