Annotation of embedaddon/hping2/docs/french/SPOOFED_SCAN.txt, revision 1.1
1.1 ! misho 1: Ce qui suit est le postage original (ndt : du moins sa traduction) à bugtraq
! 2: à propos de la méthode de scan usurpée/passive/indirecte. Voir le fichier
! 3: HPING2-HOWTO pour plus d'informations.
! 4:
! 5: antirez
! 6:
! 7: ---
! 8:
! 9: Salut,
! 10:
! 11: J'ai découvert une nouvelle méthode de scan de ports TCP. Au
! 12: contraire de toutes les autres elle vous permet de scanner en
! 13: utilisant des paquets usurpés (ndt : dont l'adresse IP source est
! 14: usurpée), ainsi les systèmes scannés ne peuvent pas voir votre
! 15: adresse réelle. Afin de réaliser cela j'utilise trois particularités
! 16: bien connues des mises en oeuvre TCP/IP de la plupart des OS.
! 17:
! 18: (1) * les systèmes répondent SYN|ACK à SYN si le port TCP cible
! 19: est ouvert, et RST|ACK si le port TCP cible est fermé.
! 20:
! 21: (2) * Vous pouvez connaître le nombre de paquets que les systèmes
! 22: envoient en utilisant le champ id de l'entête IP. Voir mes
! 23: précédents postages 'à propos de l'entête IP' dans cette mailing
! 24: liste.
! 25:
! 26: (3) * les systèmes répondent RST à SYN|ACK, ne répondent rien à
! 27: RST.
! 28:
! 29:
! 30: Les joueurs:
! 31:
! 32: système A - le système malfaisant, l'attaquant.
! 33: système B - le système silencieux.
! 34: système C - le système victime.
! 35:
! 36: A est votre système.
! 37: B est un système particulier : il ne doit envoyer aucun paquet
! 38: pendant que vous scannez C. Il y a énormément de systèmes à 'trafic
! 39: nul' sur Internet, spécialement la nuit :)
! 40: C est la victime, il doit être vulnérable aux scans SYN.
! 41:
! 42: J'ai appelé cette méthode de scan 'scan du système muet' (ndt :
! 43: l'autre traduction de 'dumb' est bête) en référence aux
! 44: caractéristiques du système B.
! 45:
! 46:
! 47: Comment elle fonctionne :
! 48:
! 49: Le système A surveille le nombre de paquets sortants depuis B en
! 50: utilisant le champ id de l'entête IP. Vous pouvez faire ceci
! 51: simplement en utilisant hping :
! 52:
! 53: #hping B -r
! 54: HPING B (eth0 xxx.yyy.zzz.jjj): no flags are set, 40 data bytes
! 55: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=0 ttl=64 id=41660 win=0 time=1.2 ms
! 56: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=1 ttl=64 id=+1 win=0 time=75 ms
! 57: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=2 ttl=64 id=+1 win=0 time=91 ms
! 58: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=3 ttl=64 id=+1 win=0 time=90 ms
! 59: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=4 ttl=64 id=+1 win=0 time=91 ms
! 60: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=5 ttl=64 id=+1 win=0 time=87 ms
! 61: -cut-
! 62: ..
! 63: .
! 64:
! 65: Comme vous pouvez le voir, les incréments du champ id sont toujours
! 66: de 1. Ainsi ce système a la caractéristique requise pour jouer le
! 67: rôle de B.
! 68:
! 69: Maintenant le système A envoie des paquets SYN au port X de C en
! 70: usurpant l'adresse source de B.
! 71: (avec hping => 0.67 c'est très facile, http://www.kyuzz.org/antirez)
! 72: si le port X de C est ouvert, le système C enverra SYN|ACK à B (oui,
! 73: le système C ne sait pas que le véritable expéditeur est A). Dans ce
! 74: cas le système B répond au SYN|ACK avec un RST.
! 75: Si nous envoyons au système C quelques paquets SYN il répondra à B
! 76: quelques paquet SYN|ACK, ainsi B répondra à C quelques RST... ainsi
! 77: nous verrons que le système B est en train d'envoyer des paquets !
! 78:
! 79: .
! 80: ..
! 81: -cut-
! 82: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=17 ttl=64 id=+1 win=0 time=96 ms
! 83: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=18 ttl=64 id=+1 win=0 time=80 ms
! 84: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=19 ttl=64 id=+2 win=0 time=83 ms
! 85: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=20 ttl=64 id=+3 win=0 time=94 ms
! 86: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=21 ttl=64 id=+1 win=0 time=92 ms
! 87: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=22 ttl=64 id=+2 win=0 time=82 ms
! 88: -cut-
! 89: ..
! 90: .
! 91:
! 92: Le port est ouvert !
! 93:
! 94: Par contre, si le port X de C est fermé alors en envoyant à C
! 95: quelques paquets SYN avec l'adresse usurpée de B, il répondra avec
! 96: des paquets RST à B, et B ne répondra pas (voir 3). Ainsi nous
! 97: verrons que le système B n'est en train d'envoyer aucun paquet :
! 98:
! 99: .
! 100: ..
! 101: -cut-
! 102: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=52 ttl=64 id=+1 win=0 time=85 ms
! 103: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=53 ttl=64 id=+1 win=0 time=83 ms
! 104: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=54 ttl=64 id=+1 win=0 time=93 ms
! 105: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=55 ttl=64 id=+1 win=0 time=74 ms
! 106: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=56 ttl=64 id=+1 win=0 time=95 ms
! 107: 60 bytes from xxx.yyy.zzz.jjj: flags=RA seq=57 ttl=64 id=+1 win=0 time=81 ms
! 108: -cut-
! 109: ..
! 110: .
! 111:
! 112: Le port est fermé.
! 113:
! 114: Tout ceci peut paraître compliqué à réaliser, mais utiliser deux
! 115: sessions de hping dans des consoles virtuelles Linux ou sous X rend
! 116: cela plus simple.
! 117: La première session surveille le système B : hping B -r
! 118: La seconde session envoie des paquets SYN spoofés : hping C -a B -S
! 119:
! 120: Désolé si mon anglais n'est pas clair.
! 121: Cependant ce postage n'est pas adéquat pour décrire exhaustivement
! 122: cette méthode de scan, ainsi je vais écrire un article à ce sujet,
! 123: en particulier comment mettre en oeuvre ceci dans un scanner de
! 124: ports (i.e. nmap), et à propos des caractéristiques des joueurs et
! 125: des OS utilisés.
! 126:
! 127: bonne nouvelle année,
! 128: antirez
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>