Hping
Hping
Description
Hping est surtout connu pour ses fonctionnalités de scan de ports. Il permet d’envoyer des paquets TCP à un hôte et d’obtenir un retour. Les flags ainsi retournés (SYN/ACK, RST) permettent de déterminer l’état d’un port sur l’hôte.
Hping peut s’utiliser entre autres, afin de tester des règles de firewall, tester l’état de ports, effectuer des tests de performance sur des réseaux (bande passante), détecter le système d’exploitation installé sur un hôte (fingerprinting d’OS).
Hping est actuellement disponible dans sa version 3.
Installation
Sous Windows (Cygwin)
$ wget http://prdownloads.sourceforge.net/sectools/hping2.win32.tar.gz ?download $ tar xzvf hping2.win32.tar.gz -C /usr/local/bin
Sous Debian
# apt-get install hping3
Les lignes qui suivent sont facultatives. Elles permettent de créer un lien symbolique hping vers hping3 afin d’appeler hping3 par la commande hping.
# cd /usr/sbin # ln hping3 hping
Utilisation
Syntaxe de base
Hping 3 s’utilise avec la syntaxe suivante :
$ hping [options] host
Pour obtenir la liste exhaustive des options disponibles, utilisez les commandes
hping3 –-help
ou
man hping3
Liste des paramètres
Hping permet de générer des paquets TCP en activant certains paramètres (voir tableau qui suit).
Paramètre | Description |
---|---|
-c, --count <int> | Nombre de passages. Stoppe après avoir enovyé et reçu <int> (nombre entier) paquets. |
-i, --interval [u]<int> | Intervalle de temps entre deux passages. Exprimé en secondes ou millisecondes (avec u)
|
-F, --fin | Active le flag FIN |
-S, --syn | Active le flag SYN |
-R, --rst | Active le flag RST |
-P, --push | Active le flag PUSH |
-A, --ack | Active le flag ACK |
-U, --urg | Active le flag URG |
-X, --xmas | Active le flag inutilisé X (christmas) |
-Y, --ymas | Active le flag inutilisé Y |
-I <interface> | Force l’utilisation d’un interface (autre que celle définie dans les tables de routage) |
-p [++]<port> | Port de destination. Le paramètre « ++ » indiqué devant le numéro de port permet une incrémentation automatique du numéro de port. Dans ce cas, le numéro de port correspond au premier port testé. |
-s <source_port> | Port source. Par défaut, le numéro du port source est attribué de manière arbitraire |
-w <window_size> | Taille de fenêtre. Fixée par défaut à 64 |
-M <num_seq> | Définit le numéro TCP de séquence |
-L <num_ack> | Définit le numéro TCP de ack |
Scan de port
Syn Scan
L’exemple qui suit permet de tester l’état du port 80 sur la machine portant l’adresse IP 192.168.10.1, par la technique du Syn Scan (ou Stealth Scan) :
# hping -I eth0 -S 192.168.10.1 -p 80 HPING 192.168.10.1 (eth0 192.168.10.1): S set, 40 headers + 0 data bytes len=46 ip=192.168.10.1 flags=SA DF seq=0 ttl=64 id=11101 win=16080 rtt=2.7 ms len=46 ip=192.168.10.1 flags=SA DF seq=1 ttl=64 id=11102 win=16080 rtt=2.4 ms len=46 ip=192.168.10.1 flags=SA DF seq=2 ttl=64 id=11103 win=16080 rtt=2.4 ms
L’état du port est retourné dans la valeur de flags :
- SA = SYN/ACK : le port est ouvert
- RA = RESET/ACK : le port est fermé
Dans notre exemple, le port est donc ouvert.
Hping propose une option intéressante qui permet de scanner une plage continue de ports :
- Ajout du « ++ » devant le numéro de port, afin d’incrémenter automatiquement le numéro de port à chaque scan.
- Commande « Ctrl+z » pendant le scan afin d’incrémenter manuellement le numéro du port.
Idle Scan
L’idle Scan permet de tester l’état d’un port sur un serveur, de manière furtive. La technique est expliquée ici.
Thank you for your comprehension.