695 lines
30 KiB
Plaintext
695 lines
30 KiB
Plaintext
![]() |
HPING2(8) HPING2(8)
|
|||
|
|
|||
|
NOM
|
|||
|
hping2 - envoie des paquets TCP/IP (presque) arbitraires <20>
|
|||
|
des syst<73>mes r<>seaux
|
|||
|
|
|||
|
RESUME
|
|||
|
hping2 [ -hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG ] [ -c count ]
|
|||
|
[ -i wait ] [ --fast ] [ -I interface ] [ -9 signature ] [
|
|||
|
-a host ] [ -t ttl ] [ -N ip id ] [ -H ip protocol ] [ -g
|
|||
|
fragoff ] [ -m mtu ] [ -o tos ] [ -C icmp type ] [ -K icmp
|
|||
|
code ] [ -s source port ] [ -p[+][+] dest port ] [ -w tcp
|
|||
|
window ] [ -O tcp offset ] [ -M tcp sequence number ] [ -L
|
|||
|
tcp ack ] [ -d data size ] [ -E filename ] [ -e signature
|
|||
|
] [ --icmp-ipver version ] [ --icmp-iphlen length ] [
|
|||
|
--icmp-iplen length ] [ --icmp-ipid id ] [ --icmp-ipproto
|
|||
|
protocol ] [ --icmp-cksum checksum ] [ --icmp-ts ] [
|
|||
|
--icmp-addr ] [ --tcpexitcode ] [ --tcp-timestamp ] [
|
|||
|
--tr-stop ] [ --tr-keep-ttl ] [ --tr-no-rtt ] [ --rand-
|
|||
|
dest ] [ --rand-source ] hostname
|
|||
|
|
|||
|
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<73>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.
|
|||
|
|
|||
|
C'est <20>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 inhi<68>
|
|||
|
bition.
|
|||
|
|
|||
|
SITE DE HPING
|
|||
|
site primaire sur http://www.hping.org. Vous pouvez trou<6F>
|
|||
|
ver <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
|
|||
|
|
|||
|
OPTIONS DE BASE
|
|||
|
-h --help
|
|||
|
Montre l'<27>cran d'aide sur la sortie standard, donc
|
|||
|
vous pouvez rediriger vers less.
|
|||
|
|
|||
|
-v --version
|
|||
|
Montre l'information de version et l'API utilis<69>e
|
|||
|
pour acc<63>der au niveau donn<6E>es (data link layer),
|
|||
|
linux sock packet ou libpcap.
|
|||
|
|
|||
|
-c --count count
|
|||
|
Arr<72>te apr<70>s avoir envoy<6F> (et re<72>u) 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<69>
|
|||
|
de r<>gler COUNTREACHED_TIMEOUT en <20>ditant hping2.h
|
|||
|
|
|||
|
-i --interval
|
|||
|
Attend le nombre sp<73>cifi<66> de secondes ou de micro
|
|||
|
secondes entre l'envoie de chaque paquet. --inter<65>
|
|||
|
val X fixe wait <20> X secondes, --interval uX fixe
|
|||
|
wait <20> 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 HPING2-HOWTO pour
|
|||
|
plus d'informations.
|
|||
|
|
|||
|
--fast Alias pour -i u10000. Hping enverra 10 paquets par
|
|||
|
seconde.
|
|||
|
|
|||
|
--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).
|
|||
|
|
|||
|
-n --numeric
|
|||
|
Sortie num<75>rique seulement, aucune tentative ne
|
|||
|
sera faite pour chercher les noms symboliques pour
|
|||
|
les adresses syst<73>me.
|
|||
|
|
|||
|
-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.
|
|||
|
|
|||
|
-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 cor<6F>
|
|||
|
respondre <20> eth0 ethernet0 myet1 et cetera. Si
|
|||
|
aucune interface ne correspond hping2 essayera
|
|||
|
d'utiliser lo.
|
|||
|
|
|||
|
-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
|
|||
|
|
|||
|
-D --debug
|
|||
|
Active le mode de d<>bogage, c'est utile quand vous
|
|||
|
rencontrez quelques probl<62>mes avec hping2. Quand le
|
|||
|
mode de d<>bogage est activ<69> vous obtiendrez plus
|
|||
|
d'informations <20> propos de la d<>tection des inter<65>
|
|||
|
faces, de l'acc<63>s au niveau donn<6E>es, du r<>glage des
|
|||
|
interfaces, des options d'analyse, de la fragmenta<74>
|
|||
|
tion, du protocole HCMP et d'autres choses.
|
|||
|
|
|||
|
-z --bind
|
|||
|
Lie CTRL+Z au 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.
|
|||
|
|
|||
|
-Z --unbind
|
|||
|
D<>-lie CTRL+Z ainsi vous serez capable d'arr<72>ter
|
|||
|
hping2
|
|||
|
|
|||
|
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 fire<72>
|
|||
|
wall 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>.
|
|||
|
|
|||
|
-0 --rawip
|
|||
|
Mode RAW IP, dans ce mode hping2 enverra une ent<6E>te
|
|||
|
IP avec les donn<6E>es ajout<75>es avec --signature et/ou
|
|||
|
--file, voir <20>galement --ipproto qui vous autorise
|
|||
|
<20> fixer le champ protocole IP.
|
|||
|
|
|||
|
-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 --icmptype --icmpcode
|
|||
|
|
|||
|
-2 --udp
|
|||
|
Mode UDP, par d<>faut hping2 enverra des paquets UDP
|
|||
|
vers le port 0 du syst<73>me cible. Les options
|
|||
|
r<>glables des ent<6E>tes UDP sont les suivantes :
|
|||
|
--baseport, --destport, --keep.
|
|||
|
|
|||
|
-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<>crit seulement un port unique, donc 1,2,3 signi<6E>
|
|||
|
fie 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 all est un alors pour
|
|||
|
0-65535, pendant que le mot sp<73>cial known inclut
|
|||
|
tous les ports list<73>s dans /etc/services.
|
|||
|
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:
|
|||
|
hping --scan 1-1000,8888,known -S target.host.com
|
|||
|
Les groupes peuvent <20>tre ni<6E>s (soustraits) en util<69>
|
|||
|
isant un caract<63>re ! comme pr<70>fix, donc la ligne de
|
|||
|
commande suivante scannera tous les ports NON
|
|||
|
list<73>s dans /etc/services dans l'intervalle 1-1024
|
|||
|
: hping --scan '1-1024,!known' -S target.host.com
|
|||
|
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<6F>es, donc pour effectuer par exemple un scan
|
|||
|
SYN vous avez besoin de sp<73>cifier l'option -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<66>rence r<>elle est
|
|||
|
que le comportement standard de hping est encapsul<75>
|
|||
|
dans un algorithme de scan.
|
|||
|
Note technique : Le mode scan utilise une concep<65>
|
|||
|
tion 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.
|
|||
|
Conseil : <20> la diff<66>rence de la plupart des scan<61>
|
|||
|
neurs, 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 addi<64>
|
|||
|
tionnelles quand vous effectuez un scan! Quelques
|
|||
|
fois elles montrent des d<>tails int<6E>ressants.
|
|||
|
|
|||
|
-9 --listen signature
|
|||
|
Mode d'<27>coute de HPING2, en utilisant cette option
|
|||
|
hping2 attend les paquets qui contiennent signature
|
|||
|
et exporte de la fin de la signature <20> la fin du
|
|||
|
paquet. Par exemple si hping2 --listen TEST lit un
|
|||
|
paquet qui contient 234-09sdflkjs45-TESThello_world
|
|||
|
il affichera hello_world.
|
|||
|
|
|||
|
OPTIONS IP
|
|||
|
-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 HPING2-HOWTO.
|
|||
|
|
|||
|
--rand-source
|
|||
|
Cette option active le mode source al<61>atoire.
|
|||
|
hping enverra des paquets avec des adresses sources
|
|||
|
al<61>atoires. Il est int<6E>ressant d'utiliser cette
|
|||
|
option pour stresser les tables d'<27>t<EFBFBD>t d'un fire<72>
|
|||
|
wall, et d'autres tables dynamiques bas<61>es sur les
|
|||
|
IP dans les piles TCP/IP et les firewall logiciels.
|
|||
|
|
|||
|
--rand-dest
|
|||
|
Cette option active le mode destination al<61>atoire.
|
|||
|
hping enverra des paquets <20> des adresses al<61>atoires
|
|||
|
obtenues en suivant la r<>gle que vous avez
|
|||
|
sp<73>cifi<66>e comme syst<73>me cible. Vous avez besoin de
|
|||
|
sp<73>cifier une adresse IP num<75>rique en tant que
|
|||
|
syst<73>me cible comme 10.0.0.x. Toutes les occur<75>
|
|||
|
rences de 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 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 --debug pour afficher chaque
|
|||
|
nouvelle adresse destination g<>n<EFBFBD>r<EFBFBD>e.
|
|||
|
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
|
|||
|
--interface pour s<>lectionner l'interface de sor<6F>
|
|||
|
tie.
|
|||
|
|
|||
|
-t --ttl time to live
|
|||
|
En utilisant cette option vous pouvez fixer le TTL
|
|||
|
(time to live) des paquets sortant, il est vraisem<65>
|
|||
|
blable que vous utiliserez ceci avec les options
|
|||
|
--traceroute ou --bind Dans le doute essayez
|
|||
|
`hping2 some.host.com -t 1 --traceroute'.
|
|||
|
|
|||
|
-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> getpid() & 0xFF, mettre en oeuvre
|
|||
|
une meilleure solution est dans la liste TODO (ndt
|
|||
|
: <20> faire).
|
|||
|
|
|||
|
-H --ipproto
|
|||
|
Fixe le protocole IP dans le mode RAW IP.
|
|||
|
|
|||
|
-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.
|
|||
|
|
|||
|
-r --rel
|
|||
|
Affiche les incr<63>ments du champ id au lieu du champ
|
|||
|
id. Voir le fichier HPING2-HOWTO pour plus d'infor<6F>
|
|||
|
mations. 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.
|
|||
|
|
|||
|
-f --frag
|
|||
|
D<>coupe les paquets en fragments, ceci peut <20>tre
|
|||
|
utile afin de tester les performances de la frag<61>
|
|||
|
mentation 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>gale<6C>
|
|||
|
ment l'option --mtu.
|
|||
|
|
|||
|
-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 ICMP time-
|
|||
|
exceeded during reassembly (ndt : d<>lai d<>pass<73>
|
|||
|
durant le r<>-assemblage).
|
|||
|
|
|||
|
-y --dontfrag
|
|||
|
Fixe le drapeau IP "don't fragment" (ndt : ne pas
|
|||
|
fragmenter), ceci peut <20>tre utilis<69> pour effectuer
|
|||
|
un MTU path discovery (ndt : d<>couverte de la
|
|||
|
valeur minimale de la "taille maximale des paquets"
|
|||
|
sur le chemin).
|
|||
|
|
|||
|
-g --fragoff fragment offset value
|
|||
|
Fixe l'offset du fragment.
|
|||
|
|
|||
|
-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 fragmenta<74>
|
|||
|
tion est automatiquement activ<69>e.
|
|||
|
|
|||
|
-o --tos hex_tos
|
|||
|
Fixe Type Of Service (TOS) (ndt : le type de ser<65>
|
|||
|
vice), pour plus d'informations essayez --tos help.
|
|||
|
|
|||
|
-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<73>mes ignorent ou sup<75>
|
|||
|
priment cette option. Notez <20>galement qu'en util<69>
|
|||
|
isant hping vous <20>tes capable d'utiliser l'enreg<65>
|
|||
|
istrement de la route m<>me si le syst<73>me cible fil<69>
|
|||
|
tre 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.
|
|||
|
|
|||
|
OPTIONS ICMP
|
|||
|
-C --icmptype type
|
|||
|
Fixe le type ICMP, le d<>faut est ICMP echo request.
|
|||
|
|
|||
|
-K --icmpcode code
|
|||
|
Fixe le code ICMP, le d<>faut est 0 (implique
|
|||
|
--icmp).
|
|||
|
|
|||
|
--icmp-ipver
|
|||
|
Fixe la version IP de l'ent<6E>te IP contenue dans les
|
|||
|
donn<6E>es ICMP, le d<>faut est 4.
|
|||
|
|
|||
|
--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).
|
|||
|
|
|||
|
--icmp-iplen
|
|||
|
Fixe la longueur du paquet IP de l'ent<6E>te IP con<6F>
|
|||
|
tenue dans les donn<6E>es ICMP, le d<>faut est la
|
|||
|
taille r<>elle.
|
|||
|
|
|||
|
--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.
|
|||
|
|
|||
|
--icmp-ipproto
|
|||
|
Fixe le protocole IP de l'ent<6E>te IP contenue dans
|
|||
|
les donn<6E>es ICMP, le d<>faut est TCP.
|
|||
|
|
|||
|
--icmp-cksum
|
|||
|
Fixe la somme de contr<74>le ICMP, le d<>faut est la
|
|||
|
somme de contr<74>le valide.
|
|||
|
|
|||
|
--icmp-ts
|
|||
|
Alias pour --icmptype 13 (pour envoyer des requ<71>tes
|
|||
|
ICMP timestamp).
|
|||
|
|
|||
|
--icmp-addr
|
|||
|
Alias pour --icmptype 17 (pour envoyer des requ<71>tes
|
|||
|
ICMP masque r<>seau).
|
|||
|
|
|||
|
OPTIONS TCP/UDP
|
|||
|
-s --baseport source port
|
|||
|
hping2 utilise le port source afin de deviner les
|
|||
|
num<75>ros de s<>quence des r<>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<75>ro de s<>quence peut <20>tre cal<61>
|
|||
|
cul<75> comme 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 -k --keep.
|
|||
|
|
|||
|
-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<75>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<6F>. Par d<>faut le port destination peut <20>tre
|
|||
|
modifi<66> interactivement en utilisant CTRL+z.
|
|||
|
|
|||
|
--keep Garde constant le port source, voir --baseport pour
|
|||
|
plus d'informations.
|
|||
|
|
|||
|
-w --win
|
|||
|
Fixe la taille de la fen<65>tre TCP. Le d<>faut est 64.
|
|||
|
|
|||
|
-O --tcpoff
|
|||
|
Fixe un faux offset (ndt : d<>calage) des donn<6E>es
|
|||
|
TCP. L'offset normal des donn<6E>es est tcphdrlen / 4.
|
|||
|
|
|||
|
-M --tcpseq
|
|||
|
Fixe le num<75>ro de s<>quence TCP.
|
|||
|
|
|||
|
-L --tcpack
|
|||
|
Fixe le drapeau TCP ack.
|
|||
|
|
|||
|
-Q --seqnum
|
|||
|
Cette option peut <20>tre utilis<69>e afin de collecter
|
|||
|
les num<75>ros de s<>quence g<>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 :
|
|||
|
|
|||
|
#hping2 win98 --seqnum -p 139 -S -i u1 -I eth0
|
|||
|
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
|
|||
|
|
|||
|
La premi<6D>re colonne reporte les num<75>ros de
|
|||
|
s<>quence, la seconde la diff<66>rence entre le num<75>ro
|
|||
|
de s<>quence courant et le dernier. Comme vous pou<6F>
|
|||
|
vez le voir les num<75>ros de s<>quence du syst<73>me
|
|||
|
cible sont pr<70>visibles.
|
|||
|
|
|||
|
-b --badcksum
|
|||
|
Envoie des paquets avec une mauvaise somme de
|
|||
|
contr<74>le UDP/TCP
|
|||
|
|
|||
|
--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.
|
|||
|
|
|||
|
-F --fin
|
|||
|
Fixe le drapeau TCP FIN.
|
|||
|
|
|||
|
-S --syn
|
|||
|
Fixe le drapeau TCP SYN.
|
|||
|
|
|||
|
-R --rst
|
|||
|
Fixe le drapeau TCP RST.
|
|||
|
|
|||
|
-P --push
|
|||
|
Fixe le drapeau TCP PUSH.
|
|||
|
|
|||
|
-A --ack
|
|||
|
Fixe le drapeau TCP ACK.
|
|||
|
|
|||
|
-U --urg
|
|||
|
Fixe le drapeau TCP URG.
|
|||
|
|
|||
|
-X --xmas
|
|||
|
Fixe le drapeau TCP Xmas.
|
|||
|
|
|||
|
-Y --ymas
|
|||
|
Fixe le drapeau TCP Ymas.
|
|||
|
|
|||
|
OPTIONS COMMUNES
|
|||
|
-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 : HPING www.yahoo.com (ppp0 204.71.200.67): NO
|
|||
|
FLAGS are set, 40 headers + 40 data bytes
|
|||
|
|
|||
|
-E --file filename
|
|||
|
Utilise le contenu du fichier filename pour rem<65>
|
|||
|
plir les donn<6E>es du paquet.
|
|||
|
|
|||
|
-e --sign signature
|
|||
|
Remplit d'abord longueur de signature octets de
|
|||
|
donn<6E>es avec signature. Si longueur de signature
|
|||
|
est plus grand que la taille des donn<6E>es alors un
|
|||
|
message d'erreur sera affich<63>. 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 --file filename, l'espace de donn<6E>es
|
|||
|
restant sera rempli en utilisant le fichier file<6C>
|
|||
|
name.
|
|||
|
|
|||
|
-j --dump
|
|||
|
Affiche les paquets en hexad<61>cimal.
|
|||
|
|
|||
|
-J --print
|
|||
|
Affiche les caract<63>res imprimables des paquets
|
|||
|
re<72>us.
|
|||
|
|
|||
|
-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 :
|
|||
|
[host_a]
|
|||
|
# hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd
|
|||
|
[host_b]
|
|||
|
# hping2 host_a --listen signature --safe --icmp
|
|||
|
|
|||
|
-u --end
|
|||
|
Si vous utilisez l'option --file filename, cela
|
|||
|
vous dit quand la fin du fichier a <20>t<EFBFBD> atteinte.
|
|||
|
D'ailleurs cela pr<70>vient que l'autre c<>t<EFBFBD> accepte
|
|||
|
plus de paquets. S'il vous pla<6C>t, pour plus
|
|||
|
d'informations voir le fichier HPING2-HOWTO.
|
|||
|
|
|||
|
-T --traceroute
|
|||
|
Mode traceroute. En utilisant cette option hping2
|
|||
|
incr<63>mentera le ttl pour chaque paquet ICMP time to
|
|||
|
live 0 during transit re<72>u. Essayez 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. --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 hping2 host --traceroute --ttl 5 --tr-keep-
|
|||
|
ttl.
|
|||
|
|
|||
|
--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.
|
|||
|
|
|||
|
--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.
|
|||
|
|
|||
|
--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>.
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
len est la taille, en octets, des donn<6E>es captur<75>es dans
|
|||
|
la couche liaison de donn<6E>es en excluant la taille de
|
|||
|
l'ent<6E>te de liaison de donn<6E>es. Ceci peut ne pas corre<72>
|
|||
|
spondre <20> la taille du datagramme IP <20> cause du rembour<75>
|
|||
|
rage bas niveau de la couche liaison de donn<6E>es.
|
|||
|
|
|||
|
ip est l'adresse ip source.
|
|||
|
|
|||
|
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 DF l'ent<6E>te IP poss<73>de le bit don't
|
|||
|
fragment (ndt : ne pas fragmenter) positionn<6E>.
|
|||
|
|
|||
|
seq est le num<75>ro de s<>quence du paquet, obtenu en util<69>
|
|||
|
isant le port source pour les paquets TCP/UDP, le champ
|
|||
|
s<>quence pour les paquets ICMP.
|
|||
|
|
|||
|
id est le champ IP ID.
|
|||
|
|
|||
|
win est la taille de la fen<65>tre TCP
|
|||
|
|
|||
|
rtt est le "round trip time" (ndt : temps aller-retour) en
|
|||
|
millisecondes.
|
|||
|
|
|||
|
Si vous ex<65>cutez hping en utilisant l'option -V de la
|
|||
|
ligne de commande il affichera des informations suppl<70>men<65>
|
|||
|
taires <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
|
|||
|
|
|||
|
tos est le champ type de service de l'ent<6E>te IP.
|
|||
|
|
|||
|
iplen est le champ IP longueur totale.
|
|||
|
|
|||
|
seq et ack sont les num<75>ros de s<>quence et d'acquittement
|
|||
|
sur 32 bits dans l'ent<6E>te TCP.
|
|||
|
|
|||
|
sum est la valeur de la somme de contr<74>le de l'ent<6E>te TCP.
|
|||
|
|
|||
|
urp est la valeur du pointeur urgent TCP.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
FORMAT DE SORTIE ICMP
|
|||
|
Un exemple de sortie ICMP est :
|
|||
|
|
|||
|
ICMP Port Unreachable from ip=192.168.1.1 name=nano.mar<61>
|
|||
|
moc.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 accessi<73>
|
|||
|
ble). 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<>solue en un nom (une requ<71>te dns
|
|||
|
PTR) ou UNKNOWN si la r<>solution a <20>chou<6F>.
|
|||
|
|
|||
|
Le format ICMP de Time exceeded during ou de reassembly
|
|||
|
est un peu diff<66>rent :
|
|||
|
|
|||
|
TTL 0 during transit from ip=192.168.1.1 name=nano.mar<61>
|
|||
|
moc.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.
|
|||
|
|
|||
|
AUTEUR
|
|||
|
Salvatore Sanfilippo <antirez@invece.org>, avec l'aide des
|
|||
|
personnes mentionn<6E>es dans le fichier AUTHORS et sur
|
|||
|
http://www.hping.org/authors.html
|
|||
|
|
|||
|
BOGUES
|
|||
|
M<>me en utilisant les options --end et --safe pour
|
|||
|
transf<73>rer des fichiers, le paquet final sera rembourr<72>
|
|||
|
avec des octets 0x00.
|
|||
|
|
|||
|
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<6E>tes TCP/IP sont naturelle<6C>
|
|||
|
ment 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<67>s quelque part dans le code (aucun avec un peu
|
|||
|
de chance).
|
|||
|
|
|||
|
Sur Solaris hping ne fonctionne pas sur l'interface loop<6F>
|
|||
|
back. Ceci semble <20>tre un probl<62>me solaris, comme expos<6F>
|
|||
|
dans la liste de diffusion tcpdump-workers, ainsi la libp<62>
|
|||
|
cap ne peut rien faire pour la supporter correctement.
|
|||
|
|
|||
|
VOIR AUSSI
|
|||
|
ping(8), traceroute(8), ifconfig(8), nmap(1)
|
|||
|
|
|||
|
TRADUCTEUR
|
|||
|
Denis Ducamp <Denis.Ducamp@groar.org>
|
|||
|
|
|||
|
2001 Aug 14 HPING2(8)
|