The Hping2 idle Host Scan

Erik J. Karmeling

February 26, 2001

Traduit de l’anglais par dzeta (dzeta@netcourrier.com)

 

NdT : Ce texte demande pour pouvoir être compris clairement et sans amalgame, une bonne connaissance de l’IP spoofing et plus particulièrement du blind-spoofing (aucune de ces techniques ne sont décrites dans ce texte et si vous ne les connaissez vous risquez de vous mélanger) et également des connaissances basiques de la suite de protocole TCP/IP. Certains mots n’ont volontairement pas été traduits ainsi que les titres. Pour toute question, que ce soit pour des mots anglais que vous ne comprenez pas, ou sur le texte en général, n’hésitez pas à m’envoyer un mail.

 

Introduction

J’ai lu récemment un article scientifique américain au sujet de la recherche sur les nouvelles planètes. Il résumait la difficulté des astronomes a déterminer si une étoile avait des planètes en orbites. Ces difficultés résultaient des longues distances, des limitations technologiques, et du fait que les planètes émettent très peu de lumières. Inévitablement, les scientifiques ont réalisé qu’ils avaient besoin d’une nouvelle méthode pour détecter la présence de planètes à l’extérieur de notre propre système solaire.   

 

La détection de planète Doppler est la méthode qui fût élaborée. En utilisant cette méthode, les astronomes analyse les variations dans la lumière étant émis par une étoile. Si la lumière semble se déplacer du bleu vers la section rouge du spectre, il y a possibilité qu’un corps planétaire soit en orbite autour de l’étoile. Une planète va exercer une certaine influence gravitationnelle sur une étoile, ce qui fait que l’étoile, et la lumière qu’elle émet, vont faire des va-et-vient ainsi qu’un fort tremblement. C’est une méthode de détection assez ingénieuse, et à prouvé son importance dans l’astronomie moderne.

 

La chose qui m’intéresse réellement au sujet de cet article était le fait que les scientifiques pouvait déterminer les caractéristiques d’une planète avec une large certitude, sans avoir réellement pu voir la planète elle même. La masse d’un corps en orbite et sa distance par rapport au soleil, peut être déterminée en analysant l’impact qu’elle a sur l’étoile, laquelle est en orbite. J’ai trouvé ce type d’analyse assez intéressant, et était surpris de trouver qu’il y avait une méthode d’analyse théoriquement équivalente dans la communauté des pirates informatiques. Il y a une méthode de détermination des caractéristiques d’un ordinateur cible, en analysant le comportement d’une troisième partie, et l’effet que la cible a dessus. C’est ce que l’on appelle l’idle host scanning. Bien que beaucoup plus simple à comprendre que la détection de planète Doppler, en son sein, cette méthode  est en effet très similaire.

 

Overview of Idle Host Scanning

 

Laissez-moi commencer par vous donner une brève explication de l’idle host scanning. C’est une intelligente combinaison de différentes techniques d’informations assemblées, qui sont en gros utilisés sur l’Internet aujourd’hui. Cela combine l’IP spoofing et réseau, ou host scanning, dans une manière efficace d’opérer un sondage anonyme sur des services. Ceci est similaire en plusieurs points à la méthode scientifique décrite plus haut, et est encore mieux décrit en construisant une comparaison directe entre les astronomes, et ceux qui voudraient utiliser un idle host scan : l’objet désiré des astronomes est la découverte d’une planète invisible, celui du pirate, la découverte d’un hôte connecté. Le scientifique va opérer une analyse directe des propriétés de la lumière de l’étoile dans le but de glaner des informations sur les planètes en orbites. Un pirate va analyser le comportement de l’idle host dans le but de trouver des informations sur la cible. Les deux méthodes, à cause de la nature indirecte des informations techniques assemblées, vont main dans la main.

 

Comme avec tout type de scan, la partie attaquante à le désir de rassembler des informations sur les caractéristiques du réseau, ou sur des ordinateurs connectés à internet. L’information peut être ce que les services de l’hôte offre, sur quels ports ces services tournent, ou encore le système d’exploitation de la cible. Typiquement, de tels scans sont précurseurs d’autres sondages beaucoup plus conséquent ou d’une attaque totale. L’attrait d’un idle host scan pour le pirate, est qu’un scan de ce type peut être accompli de façon anonyme.

 

Ceci nous amène à la véritable nature insidieuse de cette méthode de scan. Avec le relatif anonymat qui peut être maintenu pendant l’utilisation de cette méthode, à travers l’utilisation d’un troisième ordinateur ne se doutant de rien, ce type de sondage de réseau est très difficile a tracer. En effet, retrouver l’attaquant pour l’administrateur réseau relève du haut vol : non seulement il aura besoin de contacter l’innocente troisième partie, mais les logs devront être aussi comparés, dans l’espoir que la véritable origine du scan puisse être révélé. Vous pouvez juste espérez que l’adresse d’origine n’était pas celle d’un système compromis, que le pirate ai utilisé comme plate-forme de lancement. Ce type de scan pose une menace définitive pour les réseaux et ordinateurs reliés au net, et offre une prometteuse méthode de rassemblement d’information de façon anonyme pour les pirates.

 

Breakdown of the scan

 

Un petit réseau témoin à été employé pour recueillir des informations pour cet article. Ce qui suit est l’information sur les hôtes impliqués, et l’ordre par lequel l’attaque d’échantillon à eu lieu. Cette information sont le cassage du concept d’idle host scan et n’inclut pas les détails spécifiques. La partie de ce document traite a l’aide d’Hping ce type de scan a un niveau beaucoup plus élevé.

 

  Serveur pirate Idle serveur Serveur cible
OS Red hat linux 6.2 Windows NT 4 SP Windows 98
IP adresse 192.168.0.4 192.168.0.5 192.168.0.6

Etape 1. La première étape pour le pirate est d’envoyer à l’idle host des paquets avec aucun flag de configuré, au port 0. Typiquement, ce type de paquet va nous mettre dans l’attente d’un RST de la part de l’idle host.

 

Attaquant          >>>> packet >>>>          Idle host

192.168.0.4                                               192.168.0.5

 

Etape 2. La deuxième phase dans cette attaque se produit quand l’Idle host  reconnaît les paquets avec un RST attaché pour l’attaquant.

 

Attaquant          <<<< RST <<<<            Idle host

192.168.0.4                                             192.168.0.5

 

Etape 3. Dans la troisième partie de l’attaque, l’attaquant envoie des paquets SYN spoofés à la cible, avec l’adresse original spécifiquement ouvrée comme Idle host.

 

Attacker          >>>> SYN (spoofed as 192.168.0.5) >>>>          cible

192.168.0.4                                                                                   192.168.0.6

 

Etape 4. Une fois que la cible à répondus aux paquets spoofés, et envoyés la réponse à l’idle host, la quatrième phase est complète.

Idle host          <<<< ACK <<<<            cible

192.168.0.5                                            192.168.0.6

 

Etape 5. La cinquième étape dans ce scan est la plus complexe. Avec la session continuant de tourner de l’attaquant vers l’idle host, l’attaquant espère voir le reflet des ISN ( initial sequence number) dans les  paquets RST que l’idle host renvoie. Ceci impliquerait que l’idle host envoie des paquets RST à la cible pour un ACK inattendu (NdT :il n’y a pas d’ACK dans des paquets RST). Ces paquets RST vont augmenter leurs ISN, donc augmenter les ISN dans les paquets RST que l’idle host envoie a l’attaquant.

 

Idle host          >>> RST (séq de num est effectuée) >>>           cible 192.168.0.5                                                                                   192.168.0.6

 

V

 

V

RST(évidence d’activité par des ISN artificiellement gonflés)

V

 

V

 

V
Attaquant

192.168.0.4

 

Du point de vue de l’attaquant, cet exemple de scan est hautement réussi. On le reflète dans le fait que la génération d’ISN de l’idle host a l’attaquant a été affecté. L’attaquant saurait à ce moment, que la cible répondait à des paquets SYN spoofés, envoyés à un port particulier. Ceci signifierait que la cible offre un service sur ce port.

 

Cette méthode de scan dépend lourdement d’une des caractéristiques de l’idle host. Cette caractéristique étant, une prédiction du schéma des numéros de séquence générés. IHS (idle host scanning) dépend de l’analyse de l’activité à un niveau du paquet, et utilises le numéro de sequence IP comme référence. Il serait pratiquement impossible de mesurer le niveau d’activité d’un serveur si il produisait de véritable numéro de séquence randomizés, indépendamment du niveau d’activité.

 

En 1989, Steven Bellovin a tracé les grandes lignes du danger des numéros de séquence prévisible, dans son article « Security problems in the TCP/IP protocole suite ». Etant donné le temps qui a passé depuis la parution de cette article, il est intéressant de noter qu’il existe toujours des systèmes d’exploitation qui montrent ce comportement. J’aimerais préciser que cette importante faille de sécurité, qui dépendait  de cette caractéristique, se sont produits dans le passé. L’attaque de Kevin Mitnick-Tsutomu Shimomura en reste le meilleur exemple.

 

Enter Hping

 

Hping est une application développé par Salvatore SanFilippo, un programmeur italien. Il est aussi connu sous le nom Antirez. Mr SanFilippo est accrédité de la découverte et du développement de cette méthode de scan . Cette découverte  à été retracée dans un post fait sur bugtrap le 18 décembre 1998. Une copie de l’ensemble du document est disponible à <http://www.kyuzz.org/antirez/papers/dumbscan.html>

 

Comme son nom l’indique, Hping est un programme pour exécuter un type de ping. D’après les propres mots de Salvatore SanFilippo, Hping  est un logiciel pour l’audition de pile TCP/IP, découvrir les rules d’un firewall, scanner le port TCP dans de nombreux modes, transférés des fichiers à travers un firewall et beaucoup d’autres choses. Bien que Hping ait la capacité d’utiliser le protocole ICMP comme pour un ping conventionnel, ce texte traitera uniquement d’Hping sur le protocole TCP. Hping à la capacité de délivrer un paquet, ou des paquets, sur les protocoles les plus communément utilisés aujourd’hui.

 

Hping est un soft GPL qui tourne sous GNU/linux, FreeBSD, and OpenBSD, aussi bien que sur d’autres systèmes d’exploitation. L’url pour Hping est <http://www.kyuzz.org/antirez/hping>. Le code source de cette application est inclue dans le package.

 

Ce document n’est pas une analyse d’Hping, mais plutôt de regarder la manière dont un Idle host scan peut être accompli avec Hping. Ce n’est pas seulement un outil d’Idle host scanning, mais aussi un  outil très utile à l’administration de réseau. Pour ceux qui sont intéressés par la grande variété de fonctions que Hping supporte vous êtes  encouragés à lire la documentation qui vient avec le code source.

 

Bien que mon expérience avec Hping soit assez limitées aux scan test suivant, je suis convaincu de sa souplesse comme outil d’administrateur réseau. Quelques exemples seraient le test des rules d’un firewall, évaluation de vulnérabilité, et d’autres tâches de sécurité associé au réseau. Hping a transformé  sa voie dans la collection des ports FreeBSD, ce qui indiqueraient qu’un certain nombre de gens l’utilise a des fins administratives. Malheureusement, l’état de la question dans la sécurité de l’information aujourd’hui, est que les outils les plus puissants disponible gratuitement sont utilisés aussi bien a but légitime qu’a but malfaisant. Inutile de dire qu’Hping est un puissant outil d’attaque.

 

The Hping Idle Host Scan

 

Les informations suivantes sont une copie directe d’un Hping idle host scan, réalisée sur un réseau d’essai. Dans le but de fournir une meilleure compréhension aux données qui suivent, j’ai inclus la définition des switchs utilisés par Hping dans ce type de scan particulier. Un texte complet des options Hping est disponible avec la documentation de Hping.

 

Une autre chose a noter est que ce type de balayage est plus facilement accompli avec X-Windows, ou 2 sessions Hping peuvent être lancé sur le même bureau. 2 sessions Hping peuvent être lancés simultanément : ceci est due au fait que dans la même tranche de temps, le pirate peut utiliser Hping pour surveiller un hôte, alors qu’il envoie des paquets spoofés a un autre.

 

Ces informations sont directement copiées depuis le répertoire d’aide d’Hping. N’importe quelle information de la documentation, ou n’importe quel output directe d’Hping lui-même est intentionnellement laissé dans sa forme originale.

 

usage: hping host [options]

 

-r --rel relativize id field (to estimate host traffic)

-W --winid use win* id byte ordering

-a --spoof spoof source address

-S --syn set SYN flag

-p --destport [+][+] destination port(default 0) ctrl+z inc/dec

 

Les données suivantes partent de la perspective d’ une partie attaquante dans un idle host scanning. Cela montrera non seulement le point de vue du pirate dans cette attaque, mais aussi de quelle manière cette attaque apparaît sur la machine cible. Il faut noter que la cible est protégée par un host-based firewall.

 

Ci-dessous est présenté la première étape dans l’attaque, l’initiation d’une session Hping avec l’idle host.

 

[root@test sbin]# ./hping 192.168.0.5 -r

eth0 default routing interface selected (according to /proc)

HPING 192.168.0.5 (eth0 192.168.0.5): NO FLAGS are set,

  40 headers + 0 data bytes

46 bytes from 192.168.0.5: flags=RA seq=0 ttl=128 id=6416 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=1 ttl=128 id=+256 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=2 ttl=128 id=+256 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=3 ttl=128 id=+256 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=4 ttl=128 id=+256 win=0 rtt=0.3 ms

 

--- 192.168.0.5 hping statistic ---

5 packets tramitted, 5 packets received, 0% packet loss

round-trip min/avg/max = 0.2/0.2/0.3 ms

 

Comme on peut l’observer, l’output depuis la plus simple commande Hping est très similaire aux output ICMP conventionnel. Le commutateur -r est utilisé dans cette connexion initiale, qui dialogue avec Hping pour ne montrer qu’a l’attaquant, la difference qu’il y a dans le champ id. Ainsi, par opposition  a la visualisation de la totalité du scan, parfois dur pour contrôler la valeur d’identification, Hping nous montre seulement la différence dans ce champ.

 

Il y a deux points importants a mentionner ici. Le premier étant, celui du début du processus de détermination d’un hote idle, ou actif. En analysant le champ id, l’attaquant peut dire si l’hôte envoie des paquets vers et depuis internet. Si la valeur du champ id change fréquemment, et non d’une façon prévisible, l’attaquant supposera que l’hôte en question effectue des échanges de paquets. Si la génération d’id de l’hôte est très active, l’hôte devrait être inapproprié pour ce type de scan. L’output au-dessus, nous montre toutefois que nous avons un hôte véritablement inactif. Ceci nous fait un candidat principal comme tiers dans ce balayage. S’il vous plait, gardez a l’esprit que n’importe quel dispositif relié a l’Internet avec une pile TCP/IP peut être utilisé de cette manière Ceci inclut les stations de travail, imprimantes et les routeurs, pour n’en nommer que quelques uns.

Le second point est que la valeur dans le champ id, augmente d’un standard + 256 pour chaque paquets envoyés. Selon la documentation Hping, Ceci est un indicateur d’un hôte windows. Hping s’est déjà prouvé comme un outil de rassemblement d’information valable, puisque l’attaquant a déjà déterminé que l’idle host utilisait un système d’exploitation microsoft.

 

Les output ci-dessous, sont exactement les mêmes que la session Hping, mais avec le switch -W utilisé  but de compenser le comportement +256 de windows. Remarquez la différence dans les output suivant, causés par l’option -W.

 

[root@test sbin]# ./hping 192.168.0.5 -r -W

eth0 default routing interface selected (according to /proc)

HPING 192.168.0.5 (eth0 192.168.0.5): NO FLAGS are set,

  40 headers + 0 data bytes

46 bytes from 192.168.0.5: flags=RA seq=0 ttl=128 id=4126 win=0 rtt=0.4 ms

46 bytes from 192.168.0.5: flags=RA seq=1 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=2 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=3 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=4 ttl=128 id=+1 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=5 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=6 ttl=128 id=+1 win=0 rtt=0.2 ms

 

--- 192.168.0.5 hping statistic ---

7 packets tramitted, 7 packets received, 0% packet loss

round-trip min/avg/max = 0.2/0.3/0.4 ms

 

Il est plus facile de manipuler les données ci-dessus  que les précédentes, parce que le champ id a été maintenant normalisé avec la compensation pour les comportements MS-windows +256. En observant les champs id, l’attaquant peut déterminer si l’hôte est en train d’envoyer des paquets. En conséquence, le pirate serait capable de tirer la conclusion depuis les données ci-dessus, que cette hôte idle. Supposant que l’attaquant a déjà obtenu l’adresse IP de la cible destinée, il peut procéder ainsi a l’idle host scan.

 

Ce qui suit est l’output d’un pirate envoyant des paquets SYN spoofés a un hôte cible. L’adresse originelle spoofées est celle de l’idle Windows NT hôte comme définit plus tôt. La cible est un hôte windows 98 qui n’offre aucun service sauf http¨sur le port 80. Gardez a l ‘esprit que l’attaquant ne connaît pas ceci et enverra premièrement des paquets FTP sur le port 21.

 

[root@test sbin]# ./hping -a 192.168.0.5 -S -p 21 192.168.0.6

eth0 default routing interface selected (according to /proc)

HPING 192.168.0.6 (eth0 192.168.0.6): S set, 40 headers + 0 data bytes

 

--- 192.168.0.6 hping statistic ---

8 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

 

Vous aurez remarqué que 100% des paquets sont perdus ici, la troisième étape dans l’attaque. La raison de ceci est évidente. Quand la partie effectuant le scan envoie des paquets spoofés avec l’adresse originelle a la station Windows NT, la réponse de la machine Windows 98 sera pour l’idle host. Ceci causerait la perte totale des paquets, du coté de l’attaquant. Cependant, en mettant a jour sa session de surveillance initiale avec l’hôte windows NT, il n’a pas perdu la capacité de voir l’impact des ses paquets SYN spoofés.

 

Ici donc, nous sommes  en présence d’un tournant dans un idle host scanning. Si l’attaquant a une session Hping continue avec l’idle host, l’attaquant devrait être capable de déterminer si la cible a envoyé des paquets comme réponse, a l’idle host, en surveillant les valeurs dans le champ id de l’output Hping. Ci-dessous est décrit l’output depuis une session idle host avec la station de travail Windows NT. Si il y avait un changement marqué dans les valeurs id, l’attaquant supposerai que le service FTP¨est disponible.

 

[root@test sbin]# ./hping 192.168.0.5 -r -W

eth0 default routing interface selected (according to /proc)

HPING 192.168.0.5 (eth0 192.168.0.5): NO FLAGS are set,

  40 headers + 0 data bytes

46 bytes from 192.168.0.5: flags=RA seq=0 ttl=128 id=4141 win=0 rtt=0.4 ms

46 bytes from 192.168.0.5: flags=RA seq=1 ttl=128 id=+1 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=2 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=3 ttl=128 id=+1 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=4 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=5 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=6 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=7 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=8 ttl=128 id=+1 win=0 rtt=0.2 ms

 

--- 192.168.0.5 hping statistic ---

9 packets tramitted, 9 packets received, 0% packet loss

round-trip min/avg/max = 0.2/0.3/0.4 ms

 

Veuillez noter que la valeur id ne change pas dans cette session Hping avec l’idle host. Considérant que les valeurs sont restées uniformes pour la tranche de temps données que les paquets spoofés ont été envoyés, on pourrait supposer que l’hôte windows 98 n’offre pas de services FTP. Si l’hote cible offre des services FTP sur le port 21, la transaction se serait déroulait comme suit.

 

             · La cible aurait du recevoir les paquets SYN spoofés.

             · Il aurait ainsi répondu aux paquets avec une limite SYN/ACK  pour le NT idle host.

             · L’hôte windows NT aurait ainsi reçu des paquets SYN|ACK, et répond convenablement avec un RST, car il n’a pas fait de demande FTP.

 

Si ceci était le cas, la génération des paquets RST auraient changées les valeurs dans le schéma de numérotation id de l’hote. Puisque ce n’était pas le cas selon les données précédentes, le pirate peut supposer que le service FTP n’est pas disponible sur la cible Windows 98.

 

Afin de fournir des informations détaillées sur ce qu’un scan Hping spoofés sur un service indisponible ressemble depuis le point de vue de la cible, regardez les informations suivantes. Ce log a été obtenu par ZoneAlarm, un host-based firewall disponible gratuitement, pour windows. Souvenez-vous, le seul service qu’une machine Windows 98 offre, est http sur le port 80. Le firewall est configuré pour stopper les requêtes, pour tous les ports autres que le 80. Ceci devrait être reflété dans l’output log suivant, qui montre le traffic refusé sur la cible.

 

ZoneAlarm Basic Logging Client v2.1.44

Windows 98-4.10.2222- A -SP

type,date,time,source,destination,transport

FWIN,2001/01/30,14:12:10 -5:00 GMT,192.168.0.5:3014,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:12 -5:00 GMT,192.168.0.5:3015,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:12 -5:00 GMT,192.168.0.5:3016,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:14 -5:00 GMT,192.168.0.5:3017,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:14 -5:00 GMT,192.168.0.5:3018,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:16 -5:00 GMT,192.168.0.5:3019,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:16 -5:00 GMT,192.168.0.5:3020,192.168.0.6:21,TCP

FWIN,2001/01/30,14:12:18 -5:00 GMT,192.168.0.5:3021,192.168.0.6:21,TCP

 

Ces informations expliquent pourquoi il n’y avait aucun changement marqué de valeur id, de la part de la station de travail Windows NT. Le firewall sur cet ordinateur refuse le trafic d’arrivée sur le service FTP. Or l’intérêt est que l’adresse originale pour la requête FTP est révèle dans le log ci-dessus, comme l’adresse de l’idle host, et non de la partie attaquante. En faisant confiance aveuglément aux logs de cette machine, l’administrateur de cet ordinateur peut potentiellement accusé une mauvaise personne de scanner leur FTP.

 

L’output suivant va refléter un Hping idle host scan, qui est réussi dans le sens ou la cible montre qu’elle a un service disponible en répondant a l’idle host. Le pirate peut, avec confiance, supposer que la cible offre un service sur le port 80, si il a obtenu cet output.

 

L’attaquant envoie des paquets SYN spoofés au port 80 de la cible. *

 

[root@test sbin]# ./hping -a 192.168.0.5 -S -p 80 192.168.0.6

eth0 default routing interface selected (according to /proc)

HPING 192.168.0.6 (eth0 192.168.0.6): S set, 40 headers + 0 data bytes

 

--- 192.168.0.6 hping statistic ---

7 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

 

En attendant, l’attaquant avait surveillé l’idle host avec une autre session Hping.

 

root@test sbin]# ./hping 192.168.0.5 -r -W

eth0 default routing interface selected (according to /proc)

HPING 192.168.0.5 (eth0 192.168.0.5): NO FLAGS are set,

  40 headers + 0 data bytes

46 bytes from 192.168.0.5: flags=RA seq=0 ttl=128 id=4170 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=1 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=2 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=3 ttl=128 id=+1 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=4 ttl=128 id=+2 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=5 ttl=128 id=+2 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=6 ttl=128 id=+2 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=7 ttl=128 id=+2 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=8 ttl=128 id=+2 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=9 ttl=128 id=+2 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=10 ttl=128 id=+2 win=0 rtt=0.3 ms

46 bytes from 192.168.0.5: flags=RA seq=11 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=12 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=13 ttl=128 id=+1 win=0 rtt=0.2 ms

46 bytes from 192.168.0.5: flags=RA seq=14 ttl=128 id=+1 win=0 rtt=0.2 ms

 

--- 192.168.0.5 hping statistic ---

15 packets tramitted, 15 packets received, 0% packet loss

round-trip min/avg/max = 0.2/0.2/0.3 ms

 

La chose la plus importante a noter au sujet des données ci-dessus, est le changement dans le champ id de l’idle host. Armés des informations ci-dessus, le pirate peut supposer que les 7 paquets SYN spoofés qui ont été envoyés a la cible, ont été reconnus avec 7 paquets ACK. Les paquets ACK ont été envoyés a l’idle host, qui en retour a envoyé 7 paquets RST. Ces 7 paquets RST ont occupé les nombres id, qui ont été reflété  dans l’output de la session de surveillance. Avec 7 paquets spoofés envoyés, et l’impact sur les valeurs id de l’idle host etant approximativement de 7, les données sont fortement révélatrice d’un service offert sur la cible. Le fait le plus intéressant, est que le pirate, originairement 192.168.0.4, a simplement réussi a scanné la cible 192.168.0.6, anonymement tel que 192.168.0.5.

 

Comme toute méthode ou outil pour le scan d’hôte ou de réseau, ceci peut être utilisé comme un outil de réseau de mapping. Evidemment le manque de réaction dans les sequence id de l’idle host devrait indiqué l’absence de service. Le service peut etre firewalled, non disponible, ou configuré avec n’importe quel outil de la troisième partie pour limiter sa connectivité. Ces données sont valables pour un pirate, du fait qu’elles peuvent profiler des réseaux entier en cataloguant ce qui n’est pas disponible, que ce soit des hôtes, ou des services.

 

Hping advancement, and others tools.

 

Actuellement, la plus récente version d’Hping, Hping2-beta54, a atteint la fin de sa vie. Salvatore SanFilippo, et d’autres volontaires, recodent Hping du tout ou tout. Selon son site Web, Hping3 sera nettement supérieur a l’actuel version. Il y aura des améliorations d’installation, des outputs plus lisibles, et sera scriptable. Le statut actuel du projet peut être suivi a : <http://www.kyuzz.org/antirez/hping3.html>

 

Hping n’est pas le seul outil qui peut exécuter un idle host scan. « Idlescan » est un outil, qui à été élaboré sur le concept d’un Hping idle host scan. Il a simplifié le concept de l’utilisation d’idle host sur Internet, pour scanner des services. Il ne comporte pas toutefois la large variété d’options qu’Hping possède, mais pour les attaquants qui sont seulement intéressés dans l’exécution de ce type de scan, cela fait un outil de scan tout prêt très tentant. Celui-ci est aussi un programme disponible gratuitement, et l’url ou il peut être obtenu est dans la section reference de ce document.

 

Common defense

 

Puisque l’idle host scanning est une combinaison d’information rassemblant des techniques et méthodes de piratage, défendre des réseaux de tels scans nécessite une approche multiple. La défense pour une telle attaque devrait être cassé en 2 catégories différentes. La première catégorie consiste aux niveaux des mécanismes de défense du serveur. La seconde est au niveau de la défense du réseau. Le renforcement de la sécurité au niveau serveur s’assurera qu’une machine sous votre extension administrative ne puisse pas être utilisées comme une tierce partie dans ce type de scan. Au niveau du réseau, vous vous assurez que l’idle host scanning ne provient pas de votre réseau. En outre, des signatures de ce type de scan peuvent être alertées au bon moment, et les traiter convenablement.

 

Defense Section 1 - Host level

 

La prédiction de la génération des numéros de sequences pour la part de l’idle host est l’une des premières variables dans ce type d’attaque. Par conséquent, la randomization de ces numéros devraient être une défense appropriées. Selon l’article précédemment référence de Steven Bellovin’s, utilisant la cryptographie dans la génération des numéros de sequence est une manière efficace de s’assurer que les numéros de séquence sont véritablement aléatoires et non prévisible. Le meilleur exemple est que ceci à déjà été implémenté dans OpenBSD, qui utilise un algorithme pour modifier ses ISN quand il communique. En raison de ce perfectionnement de sécurité, un ordinateur faisant tourner OpenBSD fait un idle host peu attractif.

 

OpenBSD se tient seulement comme exemple de la plupart des OS d’aujourd’hui, qui emploie aussi la génération cryptographique des numéros de sequence, ou peut être patché pour fonctionner ainsi. Avec les conditions ci-dessus, un serveur basé sur la sécurité, gestion des logs, et un host-based firewall sont nécessaire dans le but de s’assurer qu’un hôte n’est pas utilisé dans ce type de scan. Cela nous amène a l’étape suivante dans la défense des systèmes contre ce type de scan, l’implémentation de la sécurité network-based appropriée.

 

Defense Section 2 - Network Level

 

Puisque l’ip spoofing est une partie intégral de l’idle host scan, suivre les contre-mesures a l’IP spoofing selon le CERT advisory CA-1995-01, est hautement conseillé. Ce qui est énoncé :

         « La meilleure méthode pour empêcher le problème de l’IP spoofing est d’installer un routeur filtrant, qui restreint l’entrée a votre interface externe ( connu comme l’ input filter) en refusant un paquet si il a une adresse source de votre réseau interne. En outre, vous devriez filtrer les paquets sortant qui ont une adresse source différente de votre réseau interne dans le but d’empêcher une attaque d’IP source spoofing provenant de votre site. »

 

Les informations ci-dessus fournit clairement les directives pour empêcher un idle scan extérieur depuis votre réseau, qui pourtant semble faire défaut a fournir une explication sur la façon de repousser les paquets spoofés entrants pour ce type de scan. Il est probable que les paquets spoofés dans un scan de ce type proviennent de l’Internet, et non pas de votre propre réseau. L’implémentation de filtres entrant le fais toutefois ; combat de façon convaincante tout autres types d’IP spoofing attaques. Quoiqu’il ne puisse durcir votre système contre un Idle host scan, c’est une bonne idée d’utiliser cette contre-mesure.

 

Ceci nous amène a la section suivante du conseil, qui tente une approche de solution, qui pourtant ne le définit toujours pas complètement.

 

         « Nous proposons que vous employez TCP wrappers pour autoriser l’accès depuis seulement quelques machines sélectionnées. Bien que ce ne soit pas une solution complète, cela réduit votre susceptibilité aux attaques. Alternativement, changez la configuration de votre gateway Internet afin que rlogin et rsh depuis l’Internet vers l’ (les) hôte(s) soient bloquées. Si ceci n’est pas possible, désactivez les services rlogin et rsh sur tout vos hôtes. »

 

L’utilisation de TCP wrappers, et d’autres tiers outils, peuvent être une solution très compréhensible pour se défendre contre beaucoup de types de scan et d’attaques Je crois qu’une combinaison des pratiques fournira une solution acceptable pour la défense network-based  dans ce scénario. La défense numéro 1 est le zèle de la part de l’administrateur. Ceci inclus la lecture des logs, et la réponse aux scan et attaques avec les procédures ultérieures appropriées. En somme, s’assurer que les systèmes sont a jour avec des patches et hotfixes, est impératif.

 

L’implémentation d’un IDS (intrusion detection system) au niveau du réseau a aussi son importance. Il y en pas mal de commercial, et d’autres gratuits. Leurs capacités s’étendent de l’analyse passive du traffic, a toutes les défenses actives possibles. Ceci sera laissé comme un exercice pour le lecteur, pour décider quel IDS devrait fournir une solution approprié pour votre environnement. Un bon point de départ pour ceci : <http://www.sans.org/newlook/resources/IDFAQ/ID_FAQ.ht>

 

Puisque l’idle host scanning est une combinaison de plusieurs différentes attaques, défendre un système contre un tel type de scan peut être approché de multiples point de vue différent. Dans une tentative de durcissement contre l’idle host scanning, les systèmes et les administrateurs réseaux doivent être dynamique dans leurs choix et implémentation de mesures défensives.

 

Conclusion

 

Certains défendent le fait que le scan de réseau ne fait peu, voir aucun mal. En effet, d’un point de vue scientifique, les astronomes utilisent des informations rassemblant différents techniques, dans le but de rechercher des données d’une planète très éloignée. Les pirates utilisent simplement des méthodes et procédures alternatives pour rassembler des informations sur des ordinateurs, ceux qui les intéressent. Bien sur, la différence primaire entre ces deux méthodes, est qu’une planète étant étudiées depuis la terre, n’est pas sous la menace d’une attaque. Ce qui serait le cas, si quelqu’un utilisant la procédure décrite ci-dessus devait scanner votre réseau.

 

Dans les jours d’aujourd’hui ou le constant changement des réseaux interconnectés, il est de plus en plus difficile de maintenir la confidentialité, la disponibilité, et l’intégrité de nos ressources informatiques. Ceci est particulièrement vrai dans un monde ou les pirates trouvent constamment de nouveaux moyens de recueillir de l’information, sonder, et attaquer nos réseaux. L’idle host scan, utilisant Hping, comme défini dans ce document, n’est pas en soi une attaque active. C’est une information, recueillant les techniques qui sont probablement utilisées comme une manière anonyme de scanner nos réseaux, et dresser son intelligence pour un assaut imminent.

 

References

 

[1] Marcy, Jeffrey. Butler, Paul. "Giant Planets Orbiting Faraway Stars." Scientific American, Volume 9, Number 1, 1998. March 1998.
URL:
<http://www.sciam.com/1998/0398cosmos/0398marcy.html> (February 12, 2001)

[2] CERT Advisory CA-1995-01. "IP Spoofing Attacks and Hijacked Terminal Connections." September 23, 1997.
URL:
<http://www.cert.org/advisories/CA-1995-01.html> (January 21, 2001)

[3] CERT Advisory CA-1996-21. "TCP SYN Flooding and IP Spoofing Attacks." November 29, 2000.
URL:
<http://www.cert.org/advisories/CA-1996-21.html> (January 21, 2001)

4] Securiteam. "A New Stealth Port Scanning Method." December 23, 1998.
URL: <http://www.securiteam.com/securitynews/A_new_stealth_port_scanning_method.html> (February 12, 2001)

 

 

5] Bellovin, Steven M., "Security Problems in the TCP/IP Protocol Suite." Computer Communications Review, 2:19, pp. 32-48, April 1989.
URL: <http://www.research.att.com/~smb/papers/ipext.ps> (February 19, 2001)

 

6] de Raadt, Theo. Hallqvist, Niklas. Grabowski, Artur. Keromytis, Angelos D.. Provos, Niels. "Cryptography in OpenBSD: An Overview." Usenix 1999.
URL: <http://www.openbsd.org/papers/crypt-paper.ps> (February 19, 2001)

 

[7] SanFilippo, Salvatore. "Original Bugtaq Posting." December 18, 1998.
URL:
<http://www.kyuzz.org/antirez/papers/dumbscan.html> (February 25, 2001)

[8] SanFilippo, Salvatore. "HPING2-HOWTO.txt." August 10, 1999.

[9] SANS Institute. "Intrusion Detection FAQ." Version 1.42.
URL: <http://www.sans.org/newlook/resources/IDFAQ/ID_FAQ.htm> (February 25, 2001)

Links to Downloadable Source Code

Hping2-Beta54 Source Code - <http://www.kyuzz.org/antirez/hping-src/>

Idlescan-v0.1 Source Code - <http://www.hackers-pt.org/ptstuff/>

TCP Wrapper Source Code - <ftp://ftp.porcupine.org/pub/security/index.html>