Hping

From aldeid
Jump to navigation Jump to search

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)
  • -i 3 : toutes les 3 secondes
  • -i u10000 : toutes les 10000 millisecondes (10 paquets par seconde)
-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.

Incomplete.png
INCOMPLETE SECTION OR ARTICLE
This section/article is being written and is therefore not complete.
Thank you for your comprehension.