695 lines
30 KiB
Plaintext
695 lines
30 KiB
Plaintext
HPING2(8) HPING2(8)
|
||
|
||
NOM
|
||
hping2 - envoie des paquets TCP/IP (presque) arbitraires à
|
||
des systè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 être utilisé dans le but
|
||
de transférer des fichiers encapsulés dans les protocoles
|
||
supportés. En utilisant hping2 vous êtes capable
|
||
d'effectuer au moins les tâches suivantes :
|
||
|
||
- Tester les règles d'un firewall
|
||
- Scanner des ports de façon avancée
|
||
- Tester les performances réseau en utilisant différents
|
||
protocoles, tailles de paquets, TOS (type de service) et
|
||
fragmentation.
|
||
- Découverte de "Path MTU"
|
||
- Transférer des fichiers même au travers de règles de
|
||
firewall vraiment fascistes.
|
||
- Comme traceroute avec différents protocoles.
|
||
- Utilisation comme Firewalk.
|
||
- Détermination d'OS à distance.
|
||
- Audit de pile TCP/IP.
|
||
- Beaucoup d'autres.
|
||
|
||
C'est également un bon outil didactique pour apprendre
|
||
TCP/IP. hping2 est développé 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
|
||
bition.
|
||
|
||
SITE DE HPING
|
||
site primaire sur http://www.hping.org. Vous pouvez trou
|
||
ver à la fois la version stable et les instructions pour
|
||
télécharger le dernier code source sur
|
||
http://www.hping.org/download.html
|
||
|
||
OPTIONS DE BASE
|
||
-h --help
|
||
Montre l'écran d'aide sur la sortie standard, donc
|
||
vous pouvez rediriger vers less.
|
||
|
||
-v --version
|
||
Montre l'information de version et l'API utilisée
|
||
pour accéder au niveau données (data link layer),
|
||
linux sock packet ou libpcap.
|
||
|
||
-c --count count
|
||
Arrête après avoir envoyé (et reçu) count paquets
|
||
réponse. Après que le dernier paquet a été envoyé
|
||
hping2 attend COUNTREACHED_TIMEOUT secondes les
|
||
réponses du système cible. Vous avez la possibilité
|
||
de régler COUNTREACHED_TIMEOUT en éditant hping2.h
|
||
|
||
-i --interval
|
||
Attend le nombre spécifié de secondes ou de micro
|
||
secondes entre l'envoie de chaque paquet. --inter
|
||
val X fixe wait à X secondes, --interval uX fixe
|
||
wait à X micro secondes. Le défaut est d'attendre
|
||
une seconde entre chaque paquet. En utilisant
|
||
hping2 pour transférer des fichiers fixer cette
|
||
option est trè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 à cause de la conception basée sur les
|
||
signaux).
|
||
|
||
-n --numeric
|
||
Sortie numérique seulement, aucune tentative ne
|
||
sera faite pour chercher les noms symboliques pour
|
||
les adresses système.
|
||
|
||
-q --quiet
|
||
Sortie silencieuse. Rien n'est affiche excepté 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èmes linux et BSD hping2
|
||
utilise l'interface de routage par défaut. Sur
|
||
d'autres systèmes ou quand il n'y a pas d'interface
|
||
de routage par défaut hping2 utilise la première
|
||
interface non loopback. Quoi qu'il en soit vous
|
||
avez la possibilité de forcer hping2 à utiliser
|
||
l'interface dont vous avez besoin en utilisant
|
||
cette option. Note : vous n'avez pas besoin de
|
||
spécifier le nom complet, par exemple -I et va cor
|
||
respondre à 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é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èmes avec hping2. Quand le
|
||
mode de débogage est activé vous obtiendrez plus
|
||
d'informations à propos de la détection des inter
|
||
faces, de l'accès au niveau données, du réglage des
|
||
interfaces, des options d'analyse, de la fragmenta
|
||
tion, du protocole HCMP et d'autres choses.
|
||
|
||
-z --bind
|
||
Lie CTRL+Z au time to live (TTL) ainsi vous serez
|
||
capable d'incrémenter/décré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êter
|
||
hping2
|
||
|
||
SELECTION DE PROTOCOLE
|
||
Le protocole par défaut est TCP, par défaut hping2 enverra
|
||
des entêtes TCP sur le port 0 du système cible avec une
|
||
winsize (ndt : taille de fenêtre) de 64 sans aucun drapeau
|
||
TCP activé. Souvent c'est la meilleure manière de faire un
|
||
'ping caché', utile quand la cible est derrière un fire
|
||
wall qui jette ICMP. De plus un paquet TCP null-flag (ndt
|
||
: sans drapeau) vers le port 0 a de bonnes probabilités de
|
||
ne pas être journalisé.
|
||
|
||
-0 --rawip
|
||
Mode RAW IP, dans ce mode hping2 enverra une entête
|
||
IP avec les données ajoutées avec --signature et/ou
|
||
--file, voir également --ipproto qui vous autorise
|
||
à 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ème cible. Les options
|
||
réglables des entêtes UDP sont les suivantes :
|
||
--baseport, --destport, --keep.
|
||
|
||
-8 --scan
|
||
Mode scan, l'option attend un argument qui décrit
|
||
des groupes de ports à scanner. Les groupes de
|
||
ports sont séparés par des virgules : un nombre
|
||
décrit seulement un port unique, donc 1,2,3 signi
|
||
fie ports 1, 2 et 3. Les intervalles sont spécifiés
|
||
en utilisant une notation début-fin, comme 1-1000,
|
||
qui dit à hping de scanner les ports entre 1 et
|
||
1000 (inclus). Le mot spécial all est un alors pour
|
||
0-65535, pendant que le mot spécial known inclut
|
||
tous les ports listés dans /etc/services.
|
||
Les groupes peuvent être combinés, donc la commande
|
||
suivante scannera les ports entre 1 et 1000 ET le
|
||
port 8888 ET les ports listés dans /etc/services:
|
||
hping --scan 1-1000,8888,known -S target.host.com
|
||
Les groupes peuvent être niés (soustraits) en util
|
||
isant un caractère ! comme préfix, donc la ligne de
|
||
commande suivante scannera tous les ports NON
|
||
listés dans /etc/services dans l'intervalle 1-1024
|
||
: hping --scan '1-1024,!known' -S target.host.com
|
||
Gardez à l'esprit que pendant que hping apparaît
|
||
beaucoup plus comme un scanneur de ports dans ce
|
||
mode, la plupart des options sont toujours
|
||
honorées, donc pour effectuer par exemple un scan
|
||
SYN vous avez besoin de spécifier l'option -S, vous
|
||
pouvez changer la taille de la fenêtre TCP, le TTL,
|
||
contrôler la fragmentation IP comme habituellement,
|
||
et ainsi de suite. La seule différence réelle est
|
||
que le comportement standard de hping est encapsulé
|
||
dans un algorithme de scan.
|
||
Note technique : Le mode scan utilise une concep
|
||
tion basée sur deux processus, avec de la mémoire
|
||
partagée pour la synchronisation. L'algorithlme de
|
||
scan n'est toujours pas optimal, mais déjà assez
|
||
rapide.
|
||
Conseil : à la différence de la plupart des scan
|
||
neurs, hping montre quelques informations
|
||
intéressantes à propos des paquets reçus, les
|
||
champs IP ID, TCP win, TTL, et ainsi de suite,
|
||
n'oubliez pas de regarder ces informations addi
|
||
tionnelles quand vous effectuez un scan! Quelques
|
||
fois elles montrent des détails intéressants.
|
||
|
||
-9 --listen signature
|
||
Mode d'écoute de HPING2, en utilisant cette option
|
||
hping2 attend les paquets qui contiennent signature
|
||
et exporte de la fin de la signature à 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ème cible n'obtiendra pas votre adresse réelle.
|
||
Quoi qu'il en soit les réponses seront envoyées à
|
||
l'adresse usurpé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ées/passifs voir le fichier HPING2-HOWTO.
|
||
|
||
--rand-source
|
||
Cette option active le mode source aléatoire.
|
||
hping enverra des paquets avec des adresses sources
|
||
aléatoires. Il est intéressant d'utiliser cette
|
||
option pour stresser les tables d'étât d'un fire
|
||
wall, et d'autres tables dynamiques basées sur les
|
||
IP dans les piles TCP/IP et les firewall logiciels.
|
||
|
||
--rand-dest
|
||
Cette option active le mode destination aléatoire.
|
||
hping enverra des paquets à des adresses aléatoires
|
||
obtenues en suivant la règle que vous avez
|
||
spécifiée comme système cible. Vous avez besoin de
|
||
spécifier une adresse IP numérique en tant que
|
||
système cible comme 10.0.0.x. Toutes les occur
|
||
rences de x seront remplacées avec un nombre
|
||
alé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'êtes pas sûrs du genre
|
||
d'adresses que votre règle génère essayez
|
||
d'utiliser l'option --debug pour afficher chaque
|
||
nouvelle adresse destination générée.
|
||
Attention : quand cette option est activé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
|
||
tie.
|
||
|
||
-t --ttl time to live
|
||
En utilisant cette option vous pouvez fixer le TTL
|
||
(time to live) des paquets sortant, il est vraisem
|
||
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éatoire mais si la fragmentation est
|
||
activée et que le champ id n'est pas spécifié alors
|
||
il sera égal à getpid() & 0xFF, mettre en oeuvre
|
||
une meilleure solution est dans la liste TODO (ndt
|
||
: à faire).
|
||
|
||
-H --ipproto
|
||
Fixe le protocole IP dans le mode RAW IP.
|
||
|
||
-W --winid
|
||
Le champ id des systèmes Windows* avant Win2k ont
|
||
un byte ordering (ndt : ordre des octets)
|
||
différent, si cette option est activée hping2
|
||
affichera proprement les champs id des réponses de
|
||
ces Windows.
|
||
|
||
-r --rel
|
||
Affiche les incréments du champ id au lieu du champ
|
||
id. Voir le fichier HPING2-HOWTO pour plus d'infor
|
||
mations. Les incréments ne sont pas calculé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 être
|
||
utile afin de tester les performances de la frag
|
||
mentation des piles IP et de tester si certains
|
||
filtres de paquets sont si faibles qu'ils peuvent
|
||
être passés en utilisant de petits fragments
|
||
(anachronique). Par défaut le 'mtu virtuel' (ndt :
|
||
taille des fragments) est de 16 octets. Voir égale
|
||
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ème cible envoie un paquet ICMP time-
|
||
exceeded during reassembly (ndt : délai dépassé
|
||
durant le ré-assemblage).
|
||
|
||
-y --dontfrag
|
||
Fixe le drapeau IP "don't fragment" (ndt : ne pas
|
||
fragmenter), ceci peut être utilisé 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érent de 16 quand la
|
||
fragmentation est activée. Si la taille des paquets
|
||
est supérieure au 'mtu virtuel' alors la fragmenta
|
||
tion est automatiquement activée.
|
||
|
||
-o --tos hex_tos
|
||
Fixe Type Of Service (TOS) (ndt : le type de ser
|
||
vice), pour plus d'informations essayez --tos help.
|
||
|
||
-G --rroute
|
||
Enregistrer la route. Inclut l'option RECORD_ROUTE
|
||
dans chaque paquet envoyé et affiche la route
|
||
présente dans le tampon du paquet retourné. Notez
|
||
que l'entête IP n'est suffisamment large que pour
|
||
neuf routes. Beaucoup de systèmes ignorent ou sup
|
||
priment cette option. Notez également qu'en util
|
||
isant hping vous êtes capable d'utiliser l'enreg
|
||
istrement de la route même si le système cible fil
|
||
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ête IP contenue dans les
|
||
données ICMP, le défaut est 4.
|
||
|
||
--icmp-iphlen
|
||
Fixe la longueur de l'entête IP contenue dans les
|
||
données ICMP, le défaut est 5 (5 mots de 32 bits).
|
||
|
||
--icmp-iplen
|
||
Fixe la longueur du paquet IP de l'entête IP con
|
||
tenue dans les données ICMP, le défaut est la
|
||
taille réelle.
|
||
|
||
--icmp-ipid
|
||
Fixe le champ IP id de l'entête IP contenue dans
|
||
les données ICMP, le défaut est aléatoire.
|
||
|
||
--icmp-ipproto
|
||
Fixe le protocole IP de l'entête IP contenue dans
|
||
les données ICMP, le défaut est TCP.
|
||
|
||
--icmp-cksum
|
||
Fixe la somme de contrôle ICMP, le défaut est la
|
||
somme de contrôle valide.
|
||
|
||
--icmp-ts
|
||
Alias pour --icmptype 13 (pour envoyer des requêtes
|
||
ICMP timestamp).
|
||
|
||
--icmp-addr
|
||
Alias pour --icmptype 17 (pour envoyer des requêtes
|
||
ICMP masque réseau).
|
||
|
||
OPTIONS TCP/UDP
|
||
-s --baseport source port
|
||
hping2 utilise le port source afin de deviner les
|
||
numéros de séquence des réponses. Il commence avec
|
||
un numéro de port source de base, et incrémente ce
|
||
numéro pour chaque paquet envoyé. Quand un paquet
|
||
est reçu alors le numéro de séquence peut être cal
|
||
culé comme port.source.réponse -
|
||
port.source.de.base. Le port source de base par
|
||
défaut est aléatoire, en utilisant cette option
|
||
vous êtes capable de fixer un numéro différent. Si
|
||
vous avez besoin que le port source ne soit pas
|
||
incrémenté pour chaque paquet envoyé utilisez
|
||
l'option -k --keep.
|
||
|
||
-p --destport [+][+]dest port
|
||
Fixe le port destination, le défaut est 0. Si le
|
||
caractère '+' précède le numéro de port destination
|
||
(i.e. +1024) le port destination sera incrémenté
|
||
pour chaque paquet reçu. Si deux '+' précèdent le
|
||
numéro de port destination (i.e. ++1024), le port
|
||
destination sera incrémenté pour chaque paquet
|
||
envoyé. Par défaut le port destination peut être
|
||
modifié 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être TCP. Le défaut est 64.
|
||
|
||
-O --tcpoff
|
||
Fixe un faux offset (ndt : décalage) des données
|
||
TCP. L'offset normal des données est tcphdrlen / 4.
|
||
|
||
-M --tcpseq
|
||
Fixe le numéro de séquence TCP.
|
||
|
||
-L --tcpack
|
||
Fixe le drapeau TCP ack.
|
||
|
||
-Q --seqnum
|
||
Cette option peut être utilisée afin de collecter
|
||
les numéros de séquence générés par le système
|
||
cible. Ceci peut être utile quand vous avez besoin
|
||
d'analyser si les numéros de séquence TCP sont
|
||
pré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ère colonne reporte les numéros de
|
||
séquence, la seconde la différence entre le numéro
|
||
de séquence courant et le dernier. Comme vous pou
|
||
vez le voir les numéros de séquence du système
|
||
cible sont prévisibles.
|
||
|
||
-b --badcksum
|
||
Envoie des paquets avec une mauvaise somme de
|
||
contrôle UDP/TCP
|
||
|
||
--tcp-timestamp
|
||
Active l'option TCP timestamp, et essaye de deviner
|
||
la fréquence de mise à jour du timestamp et
|
||
l'uptime du systè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érera pas des
|
||
paquets de 0 octet mais de entête_de_protocole+40
|
||
octets. hping2 affichera en information la taille
|
||
des paquets comme premiè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
|
||
plir les données du paquet.
|
||
|
||
-e --sign signature
|
||
Remplit d'abord longueur de signature octets de
|
||
données avec signature. Si longueur de signature
|
||
est plus grand que la taille des données alors un
|
||
message d'erreur sera affiché. Si vous ne
|
||
spécifiez pas la taille des données hping utilisera
|
||
la taille de la signature comme taille des données.
|
||
Cette option peut être utilisée sans risque avec
|
||
l'option --file filename, l'espace de données
|
||
restant sera rempli en utilisant le fichier file
|
||
name.
|
||
|
||
-j --dump
|
||
Affiche les paquets en hexadécimal.
|
||
|
||
-J --print
|
||
Affiche les caractères imprimables des paquets
|
||
reçus.
|
||
|
||
-B --safe
|
||
Active le protocole safe, en utilisant cette option
|
||
les paquets perdus dans un transfert de fichier
|
||
seront renvoyés. Par exemple afin d'envoyer le
|
||
fichier /etc/passwd depuis le système A au systè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 été atteinte.
|
||
D'ailleurs cela prévient que l'autre côté accepte
|
||
plus de paquets. S'il vous plaît, pour plus
|
||
d'informations voir le fichier HPING2-HOWTO.
|
||
|
||
-T --traceroute
|
||
Mode traceroute. En utilisant cette option hping2
|
||
incrémentera le ttl pour chaque paquet ICMP time to
|
||
live 0 during transit reçu. Essayez hping2 host
|
||
--traceroute. Cette option implique --bind et
|
||
--ttl 1. Vous pouvez l'emporter sur le ttl à 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ôler simplement un noeud sur la route.
|
||
Par exemple, pour contrô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écifiée hping quittera dès
|
||
que le premier paquet qui n'est pas un ICMP time
|
||
exceeded est reçu. Ceci é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ée si cette option est positionnée.
|
||
|
||
--tcpexitcode
|
||
Quitte avec le champ tcp->th_flag du dernier paquet
|
||
reçu comme code de retour. Utile pour les scripts
|
||
qui ont besoin, par exemple, de savoir si le port
|
||
999 de quelque système répond avec SYN/ACK ou avec
|
||
RST en réponse à un SYN, i.e. le service est lancé
|
||
ou arrêté.
|
||
|
||
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ées capturées dans
|
||
la couche liaison de données en excluant la taille de
|
||
l'entête de liaison de données. Ceci peut ne pas corre
|
||
spondre à la taille du datagramme IP à cause du rembour
|
||
rage bas niveau de la couche liaison de donné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ête IP possède le bit don't
|
||
fragment (ndt : ne pas fragmenter) positionné.
|
||
|
||
seq est le numéro de séquence du paquet, obtenu en util
|
||
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être TCP
|
||
|
||
rtt est le "round trip time" (ndt : temps aller-retour) en
|
||
millisecondes.
|
||
|
||
Si vous exécutez hping en utilisant l'option -V de la
|
||
ligne de commande il affichera des informations supplémen
|
||
taires à 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ête IP.
|
||
|
||
iplen est le champ IP longueur totale.
|
||
|
||
seq et ack sont les numéros de séquence et d'acquittement
|
||
sur 32 bits dans l'entête TCP.
|
||
|
||
sum est la valeur de la somme de contrôle de l'entê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
|
||
moc.net
|
||
|
||
Il est très facile à comprendre. Il commence avec la
|
||
chaîne "ICMP" suivie par la description de l'erreur ICMP,
|
||
dans l'exemple Port Unreachable (ndt : port non accessi
|
||
ble). Le champ ip est l'adresse IP source du datagramme IP
|
||
contenant l'erreur ICMP, le champ name est simplement
|
||
l'adresse numérique résolue en un nom (une requête dns
|
||
PTR) ou UNKNOWN si la résolution a échoué.
|
||
|
||
Le format ICMP de Time exceeded during ou de reassembly
|
||
est un peu différent :
|
||
|
||
TTL 0 during transit from ip=192.168.1.1 name=nano.mar
|
||
moc.net
|
||
|
||
TTL 0 during reassembly from ip=192.70.106.25 name=UNKNOWN
|
||
|
||
La seule différence est la description de l'erreur, elle
|
||
commence avec TTL 0.
|
||
|
||
AUTEUR
|
||
Salvatore Sanfilippo <antirez@invece.org>, avec l'aide des
|
||
personnes mentionné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érer des fichiers, le paquet final sera rembourré
|
||
avec des octets 0x00.
|
||
|
||
Les données sont lues sans tenir compte de l'alignement,
|
||
mais l'alignement est imposé dans les structures de
|
||
données. Ceci ne sera pas un problème sous i386 mais,
|
||
alors que normalement les entêtes TCP/IP sont naturelle
|
||
ment alignées, cela peut créer des problèmes avec divers
|
||
processeurs et des paquets mal-formés si il y a des accès
|
||
non alignés quelque part dans le code (aucun avec un peu
|
||
de chance).
|
||
|
||
Sur Solaris hping ne fonctionne pas sur l'interface loop
|
||
back. Ceci semble être un problème solaris, comme exposé
|
||
dans la liste de diffusion tcpdump-workers, ainsi la libp
|
||
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)
|