767 lines
24 KiB
Groff
767 lines
24 KiB
Groff
![]() |
.TH HPING2 8 "2001 Aug 14"
|
|||
|
.\" french translation by Denis Ducamp <Denis.Ducamp@groar.org>
|
|||
|
.SH NOM
|
|||
|
hping2 \- envoie des paquets TCP/IP (presque) arbitraires <20> des syst<73>mes r<>seaux
|
|||
|
.SH RESUME
|
|||
|
.B hping2
|
|||
|
[
|
|||
|
.B \-hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG
|
|||
|
] [
|
|||
|
.B \-c
|
|||
|
.I count
|
|||
|
] [
|
|||
|
.B \-i
|
|||
|
.I wait
|
|||
|
] [
|
|||
|
.B \-\-fast
|
|||
|
] [
|
|||
|
.B \-I
|
|||
|
.I interface
|
|||
|
] [
|
|||
|
.B \-9
|
|||
|
.I signature
|
|||
|
] [
|
|||
|
.B \-a
|
|||
|
.I host
|
|||
|
] [
|
|||
|
.B \-t
|
|||
|
.I ttl
|
|||
|
] [
|
|||
|
.B \-N
|
|||
|
.I ip id
|
|||
|
] [
|
|||
|
.B \-H
|
|||
|
.I ip protocol
|
|||
|
] [
|
|||
|
.B \-g
|
|||
|
.I fragoff
|
|||
|
] [
|
|||
|
.B \-m
|
|||
|
.I mtu
|
|||
|
] [
|
|||
|
.B \-o
|
|||
|
.I tos
|
|||
|
] [
|
|||
|
.B \-C
|
|||
|
.I icmp type
|
|||
|
] [
|
|||
|
.B \-K
|
|||
|
.I icmp code
|
|||
|
] [
|
|||
|
.B \-s
|
|||
|
.I source port
|
|||
|
] [
|
|||
|
.B \-p[+][+]
|
|||
|
.I dest port
|
|||
|
] [
|
|||
|
.B \-w
|
|||
|
.I tcp window
|
|||
|
] [
|
|||
|
.B \-O
|
|||
|
.I tcp offset
|
|||
|
] [
|
|||
|
.B \-M
|
|||
|
.I tcp sequence number
|
|||
|
] [
|
|||
|
.B \-L
|
|||
|
.I tcp ack
|
|||
|
] [
|
|||
|
.B \-d
|
|||
|
.I data size
|
|||
|
] [
|
|||
|
.B \-E
|
|||
|
.I filename
|
|||
|
] [
|
|||
|
.B \-e
|
|||
|
.I signature
|
|||
|
] [
|
|||
|
.B \-\-icmp\-ipver
|
|||
|
.I version
|
|||
|
] [
|
|||
|
.B \-\-icmp\-iphlen
|
|||
|
.I length
|
|||
|
] [
|
|||
|
.B \-\-icmp\-iplen
|
|||
|
.I length
|
|||
|
] [
|
|||
|
.B \-\-icmp\-ipid
|
|||
|
.I id
|
|||
|
] [
|
|||
|
.B \-\-icmp\-ipproto
|
|||
|
.I protocol
|
|||
|
] [
|
|||
|
.B \-\-icmp\-cksum
|
|||
|
.I checksum
|
|||
|
] [
|
|||
|
.B \-\-icmp\-ts
|
|||
|
] [
|
|||
|
.B \-\-icmp\-addr
|
|||
|
] [
|
|||
|
.B \-\-tcpexitcode
|
|||
|
] [
|
|||
|
.B \-\-tcp-timestamp
|
|||
|
] [
|
|||
|
.B \-\-tr-stop
|
|||
|
] [
|
|||
|
.B \-\-tr-keep-ttl
|
|||
|
] [
|
|||
|
.B \-\-tr-no-rtt
|
|||
|
] [
|
|||
|
.B \-\-rand-dest
|
|||
|
] [
|
|||
|
.B \-\-rand-source
|
|||
|
]
|
|||
|
hostname
|
|||
|
.br
|
|||
|
.ad
|
|||
|
.SH DESCRIPTION
|
|||
|
hping2 est un outil r<>seau capable d'envoyer des paquets TCP/IP sur
|
|||
|
commande et d'afficher les r<>ponses de la cible comme le programme ping le
|
|||
|
fait avec les r<>ponses ICMP. hping2 traite la fragmentation, les contenus de
|
|||
|
paquets et les tailles arbitraires, et peut <20>tre utilis<69> dans le but de
|
|||
|
transf<EFBFBD>rer des fichiers encapsul<75>s dans les protocoles support<72>s. En
|
|||
|
utilisant hping2 vous <20>tes capable d'effectuer au moins les t<>ches
|
|||
|
suivantes :
|
|||
|
|
|||
|
- Tester les r<>gles d'un firewall
|
|||
|
- Scanner des ports de fa<66>on avanc<6E>e
|
|||
|
- Tester les performances r<>seau en utilisant diff<66>rents protocoles, tailles de paquets, TOS (type de service) et fragmentation.
|
|||
|
- D<>couverte de "Path MTU"
|
|||
|
- Transf<73>rer des fichiers m<>me au travers de r<>gles de firewall vraiment fascistes.
|
|||
|
- Comme traceroute avec diff<66>rents protocoles.
|
|||
|
- Utilisation comme Firewalk.
|
|||
|
- D<>termination d'OS <20> distance.
|
|||
|
- Audit de pile TCP/IP.
|
|||
|
- Beaucoup d'autres.
|
|||
|
|
|||
|
.I C'est <EFBFBD>galement un bon outil didactique pour apprendre TCP/IP.
|
|||
|
hping2 est d<>velopp<70> et maintenu par antirez@invece.org et est sous la
|
|||
|
version 2 de la licence GPL. Le d<>veloppement est ouvert donc vous pouvez
|
|||
|
m'envoyer des patches, suggestions et affronts sans inhibition.
|
|||
|
.SH SITE DE HPING
|
|||
|
site primaire sur
|
|||
|
.BR http://www.hping.org .
|
|||
|
Vous pouvez trouver <20> la fois la version stable et
|
|||
|
les instructions pour t<>l<EFBFBD>charger le dernier code source sur
|
|||
|
http://www.hping.org/download.html
|
|||
|
.SH OPTIONS DE BASE
|
|||
|
.TP
|
|||
|
.I -h --help
|
|||
|
Montre l'<27>cran d'aide sur la sortie standard, donc vous pouvez rediriger
|
|||
|
vers less.
|
|||
|
.TP
|
|||
|
.I -v --version
|
|||
|
Montre l'information de version et l'API utilis<69>e pour acc<63>der au niveau
|
|||
|
donn<EFBFBD>es (data link layer),
|
|||
|
.I linux sock packet
|
|||
|
ou
|
|||
|
.IR libpcap .
|
|||
|
.TP
|
|||
|
.I -c --count count
|
|||
|
Arr<EFBFBD>te apr<70>s avoir envoy<6F> (et re<72>u)
|
|||
|
.I count
|
|||
|
paquets r<>ponse. Apr<70>s que le dernier paquet a <20>t<EFBFBD> envoy<6F> hping2 attend
|
|||
|
COUNTREACHED_TIMEOUT secondes les r<>ponses du syst<73>me cible. Vous avez la
|
|||
|
possibilit<EFBFBD> de r<>gler COUNTREACHED_TIMEOUT en <20>ditant hping2.h
|
|||
|
.TP
|
|||
|
.I -i --interval
|
|||
|
Attend le nombre sp<73>cifi<66> de secondes ou de micro secondes entre l'envoie de
|
|||
|
chaque paquet.
|
|||
|
--interval X fixe
|
|||
|
.I wait
|
|||
|
<EFBFBD> X secondes, --interval uX fixe
|
|||
|
.I wait
|
|||
|
<EFBFBD> X micro secondes. Le d<>faut est d'attendre une seconde entre chaque
|
|||
|
paquet. En utilisant hping2 pour transf<73>rer des fichiers fixer cette option
|
|||
|
est tr<74>s important pour augmenter le taux de transfert. M<>me en utilisant
|
|||
|
hping2 pour effectuer des scans passifs/avec usurpation d'adresse vous
|
|||
|
devriez fixer cette option, voir
|
|||
|
.B HPING2-HOWTO
|
|||
|
pour plus d'informations.
|
|||
|
.TP
|
|||
|
.I --fast
|
|||
|
Alias pour -i u10000. Hping enverra 10 paquets par seconde.
|
|||
|
.TP
|
|||
|
.I --faster
|
|||
|
Alias pour -i u1. Plus rapide que --fast ;) (mais pas aussi rapide que votre
|
|||
|
ordinateur peut envoyer des paquets <20> cause de la conception bas<61>e sur les
|
|||
|
signaux).
|
|||
|
.TP
|
|||
|
.I -n --numeric
|
|||
|
Sortie num<75>rique seulement, aucune tentative ne sera faite pour chercher les
|
|||
|
noms symboliques pour les adresses syst<73>me.
|
|||
|
.TP
|
|||
|
.I -q --quiet
|
|||
|
Sortie silencieuse. Rien n'est affiche except<70> les lignes de r<>sume au
|
|||
|
moment du d<>marrage et quand c'est fini.
|
|||
|
.TP
|
|||
|
.I -I --interface interface name
|
|||
|
Par d<>faut sur les syst<73>mes linux et BSD hping2 utilise l'interface de
|
|||
|
routage par d<>faut. Sur d'autres syst<73>mes ou quand il n'y a pas d'interface
|
|||
|
de routage par d<>faut hping2 utilise la premi<6D>re interface non loopback.
|
|||
|
Quoi qu'il en soit vous avez la possibilit<69> de forcer hping2 <20> utiliser
|
|||
|
l'interface dont vous avez besoin en utilisant cette option. Note : vous
|
|||
|
n'avez pas besoin de sp<73>cifier le nom complet, par exemple -I et va
|
|||
|
correspondre <20> eth0 ethernet0 myet1 et cetera. Si aucune interface ne
|
|||
|
correspond hping2 essayera d'utiliser lo.
|
|||
|
.TP
|
|||
|
.I -V --verbose
|
|||
|
Active la sortie verbeuse. Les r<>ponses TCP seront affich<63>es comme suit :
|
|||
|
|
|||
|
len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
|
|||
|
tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0
|
|||
|
.TP
|
|||
|
.I -D --debug
|
|||
|
Active le mode de d<>bogage, c'est utile quand vous rencontrez quelques
|
|||
|
probl<EFBFBD>mes avec hping2. Quand le mode de d<>bogage est activ<69> vous obtiendrez
|
|||
|
plus d'informations <20> propos
|
|||
|
.B de la d<EFBFBD>tection des interfaces, de l'acc<63>s au niveau donn<EFBFBD>es, du
|
|||
|
.B r<EFBFBD>glage des interfaces, des options d'analyse, de la fragmentation, du
|
|||
|
.B protocole HCMP
|
|||
|
et d'autres choses.
|
|||
|
.TP
|
|||
|
.I -z --bind
|
|||
|
Lie CTRL+Z au
|
|||
|
.B time to live (TTL)
|
|||
|
ainsi vous serez capable d'incr<63>menter/d<>cr<63>menter le ttl des paquets
|
|||
|
sortant en pressant CTRL+Z une ou deux fois.
|
|||
|
.TP
|
|||
|
.I -Z --unbind
|
|||
|
D<EFBFBD>-lie CTRL+Z ainsi vous serez capable d'arr<72>ter hping2
|
|||
|
.SH SELECTION DE PROTOCOLE
|
|||
|
Le protocole par d<>faut est TCP, par d<>faut hping2 enverra des ent<6E>tes TCP
|
|||
|
sur le port 0 du syst<73>me cible avec une winsize (ndt : taille de fen<65>tre) de
|
|||
|
64 sans aucun drapeau TCP activ<69>. Souvent c'est la meilleure mani<6E>re de
|
|||
|
faire un 'ping cach<63>', utile quand la cible est derri<72>re un firewall qui
|
|||
|
jette ICMP. De plus un paquet TCP null-flag (ndt : sans drapeau) vers le port
|
|||
|
0 a de bonnes probabilit<69>s de ne pas <20>tre journalis<69>.
|
|||
|
.TP
|
|||
|
.I -0 --rawip
|
|||
|
Mode RAW IP, dans ce mode hping2 enverra une ent<6E>te IP avec les donn<6E>es
|
|||
|
ajout<EFBFBD>es avec --signature et/ou --file, voir <20>galement --ipproto qui vous
|
|||
|
autorise <20> fixer le champ protocole IP.
|
|||
|
.TP
|
|||
|
.I -1 --icmp
|
|||
|
Mode ICMP, par d<>faut hping2 enverra un paquet ICMP echo-request, vous
|
|||
|
pouvez fixer un autre type/code ICMP en utilisant les options
|
|||
|
.B --icmptype --icmpcode
|
|||
|
.TP
|
|||
|
.I -2 --udp
|
|||
|
Mode UDP, par d<>faut hping2 enverra des paquets UDP vers le port 0 du
|
|||
|
syst<EFBFBD>me cible. Les options r<>glables des ent<6E>tes UDP sont les suivantes :
|
|||
|
.B --baseport, --destport, --keep.
|
|||
|
.TP
|
|||
|
.I -8 --scan
|
|||
|
Mode scan, l'option attend un argument qui d<>crit des groupes de ports <20>
|
|||
|
scanner. Les groupes de ports sont s<>par<61>s par des virgules : un nombre
|
|||
|
d<EFBFBD>crit seulement un port unique, donc 1,2,3 signifie ports 1, 2 et 3. Les
|
|||
|
intervalles sont sp<73>cifi<66>s en utilisant une notation d<>but-fin, comme
|
|||
|
1-1000, qui dit <20> hping de scanner les ports entre 1 et 1000 (inclus). Le
|
|||
|
mot sp<73>cial
|
|||
|
.B all
|
|||
|
est un alors pour 0-65535, pendant que le mot sp<73>cial
|
|||
|
.B known
|
|||
|
inclut tous les ports list<73>s dans /etc/services.
|
|||
|
.br
|
|||
|
Les groupes peuvent <20>tre combin<69>s, donc la commande suivante scannera les
|
|||
|
ports entre 1 et 1000 ET le port 8888 ET les ports list<73>s dans
|
|||
|
/etc/services:
|
|||
|
.B hping --scan 1-1000,8888,known -S target.host.com
|
|||
|
.br
|
|||
|
Les groupes peuvent <20>tre ni<6E>s (soustraits) en utilisant un caract<63>re ! comme
|
|||
|
pr<EFBFBD>fix, donc la ligne de commande suivante scannera tous les ports NON
|
|||
|
list<EFBFBD>s dans /etc/services dans l'intervalle 1-1024 :
|
|||
|
.B hping --scan '1-1024,!known' -S target.host.com
|
|||
|
.br
|
|||
|
Gardez <20> l'esprit que pendant que hping appara<72>t beaucoup plus comme un
|
|||
|
scanneur de ports dans ce mode, la plupart des options sont toujours
|
|||
|
honor<EFBFBD>es, donc pour effectuer par exemple un scan SYN vous avez besoin de
|
|||
|
sp<EFBFBD>cifier l'option
|
|||
|
.BR -S ,
|
|||
|
vous pouvez changer la taille de la fen<65>tre TCP, le TTL, contr<74>ler la
|
|||
|
fragmentation IP comme habituellement, et ainsi de suite. La seule
|
|||
|
diff<EFBFBD>rence r<>elle est que le comportement standard de hping est encapsul<75>
|
|||
|
dans un algorithme de scan.
|
|||
|
.br
|
|||
|
.B Note technique
|
|||
|
: Le mode scan utilise une conception bas<61>e sur deux
|
|||
|
processus, avec de la m<>moire partag<61>e pour la synchronisation.
|
|||
|
L'algorithlme de scan n'est toujours pas optimal, mais d<>j<EFBFBD> assez rapide.
|
|||
|
.br
|
|||
|
.B Conseil
|
|||
|
: <20> la diff<66>rence de la plupart des scanneurs, hping montre quelques
|
|||
|
informations int<6E>ressantes <20> propos des paquets re<72>us, les champs IP ID, TCP
|
|||
|
win, TTL, et ainsi de suite, n'oubliez pas de regarder ces informations
|
|||
|
additionnelles quand vous effectuez un scan! Quelques fois elles montrent des
|
|||
|
d<EFBFBD>tails int<6E>ressants.
|
|||
|
.TP
|
|||
|
.I -9 --listen signature
|
|||
|
Mode d'<27>coute de HPING2, en utilisant cette option hping2 attend les paquets
|
|||
|
qui contiennent
|
|||
|
.I signature
|
|||
|
et exporte de la fin de la
|
|||
|
.I signature
|
|||
|
<EFBFBD> la fin du paquet. Par exemple si hping2 --listen TEST lit un paquet qui
|
|||
|
contient
|
|||
|
.B 234-09sdflkjs45-TESThello_world
|
|||
|
il affichera
|
|||
|
.BR hello_world .
|
|||
|
.SH OPTIONS IP
|
|||
|
.TP
|
|||
|
.I -a --spoof hostname
|
|||
|
Utiliser cette option dans le but de fixer une fausse adresse source, cette
|
|||
|
option assure que le syst<73>me cible n'obtiendra pas votre adresse r<>elle.
|
|||
|
Quoi qu'il en soit les r<>ponses seront envoy<6F>es <20> l'adresse usurp<72>e, ainsi
|
|||
|
vous ne serez pas capable de les voir. Afin de voir comment il est possible
|
|||
|
d'effectuer des scans avec des adresses usurp<72>es/passifs voir le fichier
|
|||
|
.BR HPING2-HOWTO .
|
|||
|
|
|||
|
.TP
|
|||
|
.I --rand-source
|
|||
|
Cette option active le
|
|||
|
.BR "mode source al<61>atoire" .
|
|||
|
hping enverra des paquets avec des adresses sources al<61>atoires. Il est
|
|||
|
int<EFBFBD>ressant d'utiliser cette option pour stresser les tables d'<27>t<EFBFBD>t d'un
|
|||
|
firewall, et d'autres tables dynamiques bas<61>es sur les IP dans les piles
|
|||
|
TCP/IP et les firewall logiciels.
|
|||
|
.TP
|
|||
|
.I --rand-dest
|
|||
|
Cette option active le
|
|||
|
.BR "mode destination al<61>atoire" .
|
|||
|
hping enverra des paquets <20> des adresses al<61>atoires obtenues en suivant la
|
|||
|
r<EFBFBD>gle que vous avez sp<73>cifi<66>e comme syst<73>me cible. Vous avez besoin de
|
|||
|
sp<EFBFBD>cifier une adresse IP num<75>rique en tant que syst<73>me cible comme
|
|||
|
.BR "10.0.0.x" .
|
|||
|
Toutes les occurrences de
|
|||
|
.B x
|
|||
|
seront remplac<61>es avec un nombre al<61>atoire dans l'intervalle 0-255. Ainsi
|
|||
|
pour obtenir des adresses IP internet dans l'espace IPv4 complet utilisez
|
|||
|
quelque chose comme
|
|||
|
.BR "hping x.x.x.x --rand-dest" .
|
|||
|
Si vous n'<27>tes pas s<>rs du genre d'adresses que votre r<>gle g<>n<EFBFBD>re essayez
|
|||
|
d'utiliser l'option
|
|||
|
.B --debug
|
|||
|
pour afficher chaque nouvelle adresse destination g<>n<EFBFBD>r<EFBFBD>e.
|
|||
|
.br
|
|||
|
.B Attention
|
|||
|
: quand cette option est activ<69>e hping ne peut pas d<>tecter la bonne
|
|||
|
interface
|
|||
|
de sortie pour les paquets, ainsi vous devez utiliser l'option
|
|||
|
.B --interface
|
|||
|
pour s<>lectionner l'interface de sortie.
|
|||
|
.TP
|
|||
|
.I -t --ttl time to live
|
|||
|
En utilisant cette option vous pouvez fixer le
|
|||
|
.B TTL (time to live)
|
|||
|
des paquets sortant, il est vraisemblable que vous utiliserez ceci avec les
|
|||
|
options
|
|||
|
.B --traceroute
|
|||
|
ou
|
|||
|
.B --bind
|
|||
|
Dans le doute essayez
|
|||
|
.BR "" "`" "hping2 some.host.com -t 1 --traceroute" "'."
|
|||
|
.TP
|
|||
|
.I -N --id
|
|||
|
Fixe le champ ip->id . La valeur du champ id par d<>faut est al<61>atoire mais
|
|||
|
si la fragmentation est activ<69>e et que le champ id n'est pas sp<73>cifi<66> alors
|
|||
|
il sera <20>gal <20>
|
|||
|
.BR "getpid() & 0xFF" ,
|
|||
|
mettre en oeuvre une meilleure solution est dans la liste TODO (ndt : <20> faire).
|
|||
|
.TP
|
|||
|
.I -H --ipproto
|
|||
|
Fixe le protocole IP dans le mode RAW IP.
|
|||
|
.TP
|
|||
|
.I -W --winid
|
|||
|
Le champ id des syst<73>mes Windows* avant Win2k ont un byte ordering (ndt :
|
|||
|
ordre des
|
|||
|
octets) diff<66>rent, si cette option est activ<69>e hping2 affichera proprement
|
|||
|
les champs id des r<>ponses de ces Windows.
|
|||
|
.TP
|
|||
|
.I -r --rel
|
|||
|
Affiche les incr<63>ments du champ id au lieu du champ id. Voir le fichier
|
|||
|
.B HPING2-HOWTO
|
|||
|
pour plus d'informations. Les incr<63>ments ne sont pas calcul<75>s comme
|
|||
|
id[N]-id[N-1] mais en utilisant une compensation de pertes de paquets. Voir
|
|||
|
le fichier relid.c pour plus d'informations.
|
|||
|
.TP
|
|||
|
.I -f --frag
|
|||
|
D<EFBFBD>coupe les paquets en fragments, ceci peut <20>tre utile afin de tester les
|
|||
|
performances de la fragmentation des piles IP et de tester si certains
|
|||
|
filtres de paquets sont si faibles qu'ils peuvent <20>tre pass<73>s en utilisant
|
|||
|
de petits fragments (anachronique). Par d<>faut le 'mtu virtuel' (ndt :
|
|||
|
taille des fragments) est de 16 octets. Voir <20>galement l'option
|
|||
|
.IR --mtu .
|
|||
|
.TP
|
|||
|
.I -x --morefrag
|
|||
|
Fixe le drapeau IP "more fragments" (ndt : d'autres fragments), utilisez
|
|||
|
cette option si vous voulez que le syst<73>me cible envoie un paquet
|
|||
|
.B ICMP time-exceeded during reassembly
|
|||
|
(ndt : d<>lai d<>pass<73> durant le r<>-assemblage).
|
|||
|
.TP
|
|||
|
.I -y --dontfrag
|
|||
|
Fixe le drapeau IP "don't fragment" (ndt : ne pas fragmenter), ceci peut
|
|||
|
<EFBFBD>tre utilis<69> pour effectuer un
|
|||
|
.B MTU path discovery
|
|||
|
(ndt : d<>couverte de la valeur minimale de la "taille maximale des paquets"
|
|||
|
sur le chemin).
|
|||
|
.TP
|
|||
|
.I -g --fragoff fragment offset value
|
|||
|
Fixe l'offset du fragment.
|
|||
|
.TP
|
|||
|
.I -m --mtu mtu value
|
|||
|
Fixe un 'mtu virtuel' diff<66>rent de 16 quand la fragmentation est activ<69>e. Si
|
|||
|
la taille des paquets est sup<75>rieure au 'mtu virtuel' alors la fragmentation
|
|||
|
est automatiquement activ<69>e.
|
|||
|
.TP
|
|||
|
.I -o --tos hex_tos
|
|||
|
Fixe
|
|||
|
.B Type Of Service (TOS)
|
|||
|
(ndt : le type de service), pour plus d'informations essayez
|
|||
|
.BR "--tos help" .
|
|||
|
.TP
|
|||
|
.I -G --rroute
|
|||
|
Enregistrer la route. Inclut l'option RECORD_ROUTE dans chaque paquet envoy<6F>
|
|||
|
et affiche la route pr<70>sente dans le tampon du paquet retourn<72>. Notez que
|
|||
|
l'ent<6E>te IP n'est suffisamment large que pour neuf routes. Beaucoup de
|
|||
|
syst<EFBFBD>mes ignorent ou suppriment cette option. Notez <20>galement qu'en
|
|||
|
utilisant hping vous <20>tes capable d'utiliser l'enregistrement de la route
|
|||
|
m<EFBFBD>me si le syst<73>me cible filtre ICMP. Enregistrer la route est une option
|
|||
|
IP, non pas une option ICMP, ainsi vous pouvez utiliser l'option
|
|||
|
d'enregistrement de la route m<>me dans les modes TCP et UDP.
|
|||
|
.SH OPTIONS ICMP
|
|||
|
.TP
|
|||
|
.I -C --icmptype type
|
|||
|
Fixe le type ICMP, le d<>faut est
|
|||
|
.BR "ICMP echo request" .
|
|||
|
.TP
|
|||
|
.I -K --icmpcode code
|
|||
|
Fixe le code ICMP, le d<>faut est 0 (implique --icmp).
|
|||
|
.TP
|
|||
|
.I --icmp-ipver
|
|||
|
Fixe la version IP de l'ent<6E>te IP contenue dans les donn<6E>es ICMP, le d<>faut
|
|||
|
est 4.
|
|||
|
.TP
|
|||
|
.I --icmp-iphlen
|
|||
|
Fixe la longueur de l'ent<6E>te IP contenue dans les donn<6E>es ICMP, le d<>faut
|
|||
|
est 5 (5 mots de 32 bits).
|
|||
|
.TP
|
|||
|
.I --icmp-iplen
|
|||
|
Fixe la longueur du paquet IP de l'ent<6E>te IP contenue dans les donn<6E>es ICMP,
|
|||
|
le d<>faut est la taille r<>elle.
|
|||
|
.TP
|
|||
|
.I --icmp-ipid
|
|||
|
Fixe le champ IP id de l'ent<6E>te IP contenue dans les donn<6E>es ICMP, le d<>faut
|
|||
|
est al<61>atoire.
|
|||
|
.TP
|
|||
|
.I --icmp-ipproto
|
|||
|
Fixe le protocole IP de l'ent<6E>te IP contenue dans les donn<6E>es ICMP, le
|
|||
|
d<EFBFBD>faut est TCP.
|
|||
|
.TP
|
|||
|
.I --icmp-cksum
|
|||
|
Fixe la somme de contr<74>le ICMP, le d<>faut est la somme de contr<74>le valide.
|
|||
|
.TP
|
|||
|
.I --icmp-ts
|
|||
|
Alias pour --icmptype 13 (pour envoyer des requ<71>tes ICMP timestamp).
|
|||
|
.TP
|
|||
|
.I --icmp-addr
|
|||
|
Alias pour --icmptype 17 (pour envoyer des requ<71>tes ICMP masque r<>seau).
|
|||
|
.SH OPTIONS TCP/UDP
|
|||
|
.TP
|
|||
|
.I -s --baseport source port
|
|||
|
hping2 utilise le port source afin de deviner les num<75>ros de s<>quence des
|
|||
|
r<EFBFBD>ponses. Il commence avec un num<75>ro de port source de base, et incr<63>mente
|
|||
|
ce num<75>ro pour chaque paquet envoy<6F>. Quand un paquet est re<72>u alors le
|
|||
|
num<EFBFBD>ro de s<>quence peut <20>tre calcul<75> comme
|
|||
|
.IR "port.source.r<>ponse - port.source.de.base" .
|
|||
|
Le port source de base par d<>faut est al<61>atoire, en utilisant cette option
|
|||
|
vous <20>tes capable de fixer un num<75>ro diff<66>rent. Si vous avez besoin que le
|
|||
|
port source ne soit pas incr<63>ment<6E> pour chaque paquet envoy<6F> utilisez
|
|||
|
l'option
|
|||
|
.IR "-k --keep" .
|
|||
|
.TP
|
|||
|
.I -p --destport [+][+]dest port
|
|||
|
Fixe le port destination, le d<>faut est 0. Si le caract<63>re '+' pr<70>c<EFBFBD>de le
|
|||
|
num<EFBFBD>ro de port destination (i.e. +1024) le port destination sera incr<63>ment<6E>
|
|||
|
pour chaque paquet re<72>u. Si deux '+' pr<70>c<EFBFBD>dent le num<75>ro de port destination
|
|||
|
(i.e. ++1024), le port destination sera incr<63>ment<6E> pour chaque paquet
|
|||
|
envoy<EFBFBD>.
|
|||
|
Par d<>faut le port destination peut <20>tre modifi<66> interactivement en
|
|||
|
utilisant
|
|||
|
.B CTRL+z.
|
|||
|
.TP
|
|||
|
.I --keep
|
|||
|
Garde constant le port source, voir
|
|||
|
.I --baseport
|
|||
|
pour plus d'informations.
|
|||
|
.TP
|
|||
|
.I -w --win
|
|||
|
Fixe la taille de la fen<65>tre TCP. Le d<>faut est 64.
|
|||
|
.TP
|
|||
|
.I -O --tcpoff
|
|||
|
Fixe un faux offset (ndt : d<>calage) des donn<6E>es TCP. L'offset normal des
|
|||
|
donn<EFBFBD>es est tcphdrlen / 4.
|
|||
|
.TP
|
|||
|
.I -M --tcpseq
|
|||
|
Fixe le num<75>ro de s<>quence TCP.
|
|||
|
.TP
|
|||
|
.I -L --tcpack
|
|||
|
Fixe le drapeau TCP ack.
|
|||
|
.TP
|
|||
|
.I -Q --seqnum
|
|||
|
Cette option peut <20>tre utilis<69>e afin de collecter les num<75>ros de s<>quence
|
|||
|
g<EFBFBD>n<EFBFBD>r<EFBFBD>s par le syst<73>me cible. Ceci peut <20>tre utile quand vous avez besoin
|
|||
|
d'analyser si les num<75>ros de s<>quence TCP sont pr<70>visibles. Exemple de
|
|||
|
sortie :
|
|||
|
|
|||
|
.B #hping2 win98 --seqnum -p 139 -S -i u1 -I eth0
|
|||
|
.nf
|
|||
|
HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes
|
|||
|
2361294848 +2361294848
|
|||
|
2411626496 +50331648
|
|||
|
2545844224 +134217728
|
|||
|
2713616384 +167772160
|
|||
|
2881388544 +167772160
|
|||
|
3049160704 +167772160
|
|||
|
3216932864 +167772160
|
|||
|
3384705024 +167772160
|
|||
|
3552477184 +167772160
|
|||
|
3720249344 +167772160
|
|||
|
3888021504 +167772160
|
|||
|
4055793664 +167772160
|
|||
|
4223565824 +167772160
|
|||
|
.fi
|
|||
|
|
|||
|
La premi<6D>re colonne reporte les num<75>ros de s<>quence, la seconde la
|
|||
|
diff<EFBFBD>rence entre le num<75>ro de s<>quence courant et le dernier. Comme vous
|
|||
|
pouvez le voir les num<75>ros de s<>quence du syst<73>me cible sont pr<70>visibles.
|
|||
|
.TP
|
|||
|
.I -b --badcksum
|
|||
|
Envoie des paquets avec une mauvaise somme de contr<74>le UDP/TCP
|
|||
|
.TP
|
|||
|
.I --tcp-timestamp
|
|||
|
Active l'option TCP timestamp, et essaye de deviner la fr<66>quence de mise <20>
|
|||
|
jour du timestamp et l'uptime du syst<73>me distant.
|
|||
|
.TP
|
|||
|
.I -F --fin
|
|||
|
Fixe le drapeau TCP FIN.
|
|||
|
.TP
|
|||
|
.I -S --syn
|
|||
|
Fixe le drapeau TCP SYN.
|
|||
|
.TP
|
|||
|
.I -R --rst
|
|||
|
Fixe le drapeau TCP RST.
|
|||
|
.TP
|
|||
|
.I -P --push
|
|||
|
Fixe le drapeau TCP PUSH.
|
|||
|
.TP
|
|||
|
.I -A --ack
|
|||
|
Fixe le drapeau TCP ACK.
|
|||
|
.TP
|
|||
|
.I -U --urg
|
|||
|
Fixe le drapeau TCP URG.
|
|||
|
.TP
|
|||
|
.I -X --xmas
|
|||
|
Fixe le drapeau TCP Xmas.
|
|||
|
.TP
|
|||
|
.I -Y --ymas
|
|||
|
Fixe le drapeau TCP Ymas.
|
|||
|
.SH OPTIONS COMMUNES
|
|||
|
.TP
|
|||
|
.I -d --data data size
|
|||
|
Fixe la taille du corps du paquet. Attention, en utilisant --data 40 hping2
|
|||
|
ne g<>n<EFBFBD>rera pas des paquets de 0 octet mais de ent<6E>te_de_protocole+40
|
|||
|
octets. hping2 affichera en information la taille des paquets comme premi<6D>re
|
|||
|
ligne de sortie, comme ceci :
|
|||
|
.B HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes
|
|||
|
.TP
|
|||
|
.I -E --file filename
|
|||
|
Utilise le contenu du fichier
|
|||
|
.B filename
|
|||
|
pour remplir les donn<6E>es du paquet.
|
|||
|
.TP
|
|||
|
.I -e --sign signature
|
|||
|
Remplit d'abord
|
|||
|
.I longueur de signature
|
|||
|
octets de donn<6E>es avec
|
|||
|
.IR signature .
|
|||
|
Si
|
|||
|
.I longueur de signature
|
|||
|
est plus grand que la taille des donn<6E>es alors un message d'erreur sera
|
|||
|
affich<EFBFBD>.
|
|||
|
Si vous ne sp<73>cifiez pas la taille des donn<6E>es hping utilisera la taille de
|
|||
|
la signature comme taille des donn<6E>es.
|
|||
|
Cette option peut <20>tre utilis<69>e sans risque avec l'option
|
|||
|
.IR "--file filename" ,
|
|||
|
l'espace de donn<6E>es restant sera rempli en utilisant le fichier
|
|||
|
.IR filename .
|
|||
|
.TP
|
|||
|
.I -j --dump
|
|||
|
Affiche les paquets en hexad<61>cimal.
|
|||
|
.TP
|
|||
|
.I -J --print
|
|||
|
Affiche les caract<63>res imprimables des paquets re<72>us.
|
|||
|
.TP
|
|||
|
.I -B --safe
|
|||
|
Active le protocole safe, en utilisant cette option les paquets perdus dans
|
|||
|
un transfert de fichier seront renvoy<6F>s. Par exemple afin d'envoyer le
|
|||
|
fichier /etc/passwd depuis le syst<73>me A au syst<73>me B vous pouvez utiliser ce
|
|||
|
qui suit :
|
|||
|
.nf
|
|||
|
.I [host_a]
|
|||
|
.B # hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd
|
|||
|
.I [host_b]
|
|||
|
.B # hping2 host_a --listen signature --safe --icmp
|
|||
|
.fi
|
|||
|
.TP
|
|||
|
.I -u --end
|
|||
|
Si vous utilisez l'option
|
|||
|
.IR "--file filename" ,
|
|||
|
cela vous dit quand la fin du fichier a <20>t<EFBFBD> atteinte. D'ailleurs cela
|
|||
|
pr<EFBFBD>vient que l'autre c<>t<EFBFBD> accepte plus de paquets. S'il vous pla<6C>t, pour
|
|||
|
plus d'informations voir le fichier
|
|||
|
.BR HPING2-HOWTO .
|
|||
|
.TP
|
|||
|
.I -T --traceroute
|
|||
|
Mode traceroute. En utilisant cette option hping2 incr<63>mentera le ttl pour
|
|||
|
chaque paquet
|
|||
|
.B ICMP time to live 0 during transit
|
|||
|
re<EFBFBD>u. Essayez
|
|||
|
.BR "hping2 host --traceroute" .
|
|||
|
Cette option implique --bind et --ttl 1. Vous pouvez l'emporter sur le ttl <20>
|
|||
|
1 en utilisant l'option --ttl. Depuis 2.0.0 stable il affiche les
|
|||
|
informations de RTT.
|
|||
|
.I --tr-keep-ttl
|
|||
|
garde le ttl fixe en mode traceroute, ainsi vous pouvez contr<74>ler simplement
|
|||
|
un noeud sur la route. Par exemple, pour contr<74>ler comment le 5<>me noeud
|
|||
|
change ou comment son RTT change vous pouvez essayer
|
|||
|
.BR "hping2 host --traceroute --ttl 5 --tr-keep-ttl" .
|
|||
|
.TP
|
|||
|
.I --tr-stop
|
|||
|
Si cette option est sp<73>cifi<66>e hping quittera d<>s que le premier paquet qui
|
|||
|
n'est pas un ICMP time exceeded est re<72>u. Ceci <20>mule mieux le comportement
|
|||
|
de traceroute.
|
|||
|
.TP
|
|||
|
.I --tr-no-rtt
|
|||
|
Ne montre pas l'information RTT en mode traceroute. L'information du RTT des
|
|||
|
ICMP time exceeded n'est m<>me pas calcul<75>e si cette option est positionn<6E>e.
|
|||
|
.TP
|
|||
|
.I --tcpexitcode
|
|||
|
Quitte avec le champ tcp->th_flag du dernier paquet re<72>u comme code de
|
|||
|
retour. Utile pour les scripts qui ont besoin, par exemple, de savoir si le
|
|||
|
port 999 de quelque syst<73>me r<>pond avec SYN/ACK ou avec RST en r<>ponse <20> un
|
|||
|
SYN, i.e. le service est lanc<6E> ou arr<72>t<EFBFBD>.
|
|||
|
.SH FORMAT DE SORTIE TCP
|
|||
|
Le format standard de sortie TCP est le suivant :
|
|||
|
|
|||
|
len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
|
|||
|
|
|||
|
.B len
|
|||
|
est la taille, en octets, des donn<6E>es captur<75>es dans la couche liaison de
|
|||
|
donn<EFBFBD>es en excluant la taille de l'ent<6E>te de liaison de donn<6E>es. Ceci peut
|
|||
|
ne pas correspondre <20> la taille du datagramme IP <20> cause du rembourrage bas
|
|||
|
niveau de la couche liaison de donn<6E>es.
|
|||
|
|
|||
|
.B ip
|
|||
|
est l'adresse ip source.
|
|||
|
|
|||
|
.B flags
|
|||
|
sont les drapeaux TCP, R pour RESET, S pour SYN, A pour ACK, F pour FIN, P
|
|||
|
pour PUSH, U pour URGENT, X pour 0x40 non standard, Y pour 0x80 non
|
|||
|
standard.
|
|||
|
|
|||
|
Si la r<>ponse contient
|
|||
|
.B DF
|
|||
|
l'ent<6E>te IP poss<73>de le bit don't fragment (ndt : ne pas fragmenter)
|
|||
|
positionn<EFBFBD>.
|
|||
|
|
|||
|
.B seq
|
|||
|
est le num<75>ro de s<>quence du paquet, obtenu en utilisant le port source pour
|
|||
|
les paquets TCP/UDP, le champ s<>quence pour les paquets ICMP.
|
|||
|
|
|||
|
.B id
|
|||
|
est le champ IP ID.
|
|||
|
|
|||
|
.B win
|
|||
|
est la taille de la fen<65>tre TCP
|
|||
|
|
|||
|
.B rtt
|
|||
|
est le "round trip time" (ndt : temps aller-retour) en millisecondes.
|
|||
|
|
|||
|
Si vous ex<65>cutez hping en utilisant l'option
|
|||
|
.B -V
|
|||
|
de la ligne de commande il affichera des informations suppl<70>mentaires <20>
|
|||
|
propos du paquet, par exemple :
|
|||
|
|
|||
|
len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
|
|||
|
tos=0 iplen=40 seq=0 ack=1223672061 sum=e61d urp=0
|
|||
|
|
|||
|
.B tos
|
|||
|
est le champ type de service de l'ent<6E>te IP.
|
|||
|
|
|||
|
.B iplen
|
|||
|
est le champ IP longueur totale.
|
|||
|
|
|||
|
.B seq et ack
|
|||
|
sont les num<75>ros de s<>quence et d'acquittement sur 32 bits dans l'ent<6E>te
|
|||
|
TCP.
|
|||
|
|
|||
|
.B sum
|
|||
|
est la valeur de la somme de contr<74>le de l'ent<6E>te TCP.
|
|||
|
|
|||
|
.B urp
|
|||
|
est la valeur du pointeur urgent TCP.
|
|||
|
|
|||
|
.SH FORMAT DE SORTIE UDP
|
|||
|
|
|||
|
Le format standard de sortie est :
|
|||
|
|
|||
|
len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms
|
|||
|
|
|||
|
La signification des champs est la m<>me que celle de la sortie TCP pour les
|
|||
|
champs de m<>me nom.
|
|||
|
|
|||
|
.SH FORMAT DE SORTIE ICMP
|
|||
|
|
|||
|
Un exemple de sortie ICMP est :
|
|||
|
|
|||
|
ICMP Port Unreachable from ip=192.168.1.1 name=nano.marmoc.net
|
|||
|
|
|||
|
Il est tr<74>s facile <20> comprendre. Il commence avec la cha<68>ne "ICMP" suivie
|
|||
|
par la description de l'erreur ICMP, dans l'exemple Port Unreachable (ndt :
|
|||
|
port non accessible). Le champ ip est l'adresse IP source du datagramme IP
|
|||
|
contenant l'erreur ICMP, le champ name est simplement l'adresse num<75>rique
|
|||
|
r<EFBFBD>solue en un nom (une requ<71>te dns PTR) ou UNKNOWN si la r<>solution a
|
|||
|
<EFBFBD>chou<EFBFBD>.
|
|||
|
|
|||
|
Le format ICMP de Time exceeded during ou de reassembly est un peu
|
|||
|
diff<EFBFBD>rent :
|
|||
|
|
|||
|
TTL 0 during transit from ip=192.168.1.1 name=nano.marmoc.net
|
|||
|
|
|||
|
TTL 0 during reassembly from ip=192.70.106.25 name=UNKNOWN
|
|||
|
|
|||
|
La seule diff<66>rence est la description de l'erreur, elle commence avec TTL
|
|||
|
0.
|
|||
|
|
|||
|
.SH AUTEUR
|
|||
|
Salvatore Sanfilippo <antirez@invece.org>, avec l'aide des personnes
|
|||
|
mentionn<EFBFBD>es dans le fichier AUTHORS et sur http://www.hping.org/authors.html
|
|||
|
.SH BOGUES
|
|||
|
M<EFBFBD>me en utilisant les options --end et --safe pour transf<73>rer des fichiers,
|
|||
|
le paquet final sera rembourr<72> avec des octets 0x00.
|
|||
|
.PP
|
|||
|
Les donn<6E>es sont lues sans tenir compte de l'alignement, mais l'alignement
|
|||
|
est impos<6F> dans les structures de donn<6E>es.
|
|||
|
Ceci ne sera pas un probl<62>me sous i386 mais, alors que normalement les
|
|||
|
ent<EFBFBD>tes TCP/IP sont naturellement align<67>es, cela peut cr<63>er des probl<62>mes
|
|||
|
avec divers processeurs et des paquets mal-form<72>s si il y a des acc<63>s non
|
|||
|
align<EFBFBD>s quelque part dans le code (aucun avec un peu de chance).
|
|||
|
.PP
|
|||
|
Sur Solaris hping ne fonctionne pas sur l'interface loopback. Ceci semble
|
|||
|
<EFBFBD>tre un probl<62>me solaris, comme expos<6F> dans la liste de diffusion
|
|||
|
tcpdump-workers, ainsi la libpcap ne peut rien faire pour la supporter
|
|||
|
correctement.
|
|||
|
.SH VOIR AUSSI
|
|||
|
ping(8), traceroute(8), ifconfig(8), nmap(1)
|
|||
|
.SH TRADUCTEUR
|
|||
|
Denis Ducamp <Denis.Ducamp@groar.org>
|