Idle scan

Idle scan

Un idle scan est une méthode de balayage de port TCP qui, grâce à des utilitaires tels que Nmap et Hping, utilise l'envoi de paquets possédant une adresse IP usurpée.

Cet exploit complexe permet à la fois de balayer les ports d'une machine ainsi que de mettre en évidence les liaisons de confiance (basées sur les IP) entre les machines. L'attaque consiste en l'envoi de paquets forgés vers une machine spécifique – la cible – dans le but d'obtenir des informations à propos d'elle mais via une autre machine – le zombi. Découvert par Salvatore Sanfilippo (aussi connu sous le nom de « Antirez ») en 1998[1], l'idle scan a été utilisé par de nombreux black hats lors de la préparation d'une attaque afin d'identifier discrètement les ports ouverts sur une machine cible.

Bien qu'il ait été nommé « dumb scan » à l'origine, le terme « idle scan » a été inventé en 1999, après la publication d'une preuve de concept nommée « idlescan », par Filipe Almeida (aussi connu sous le pseudonyme de « LiquidK »). Ce type de scan peut également être appelé « zombi scan ». Toutes les appellations étant dues à la nature de l'une des machines impliquées dans l'attaque.

Sommaire

Principe

L'idle scan exploite le fait que l'on peut, sous certaines conditions, prédire les numéros d'identification IP (IPID). L'attaquant doit d'abord rechercher une machine avec une séquence d'IPID prévisible. Par exemple, le numéro d'identification sera incrémenté de 1 à chaque fois. Les dernières versions de Linux, Solaris et OpenBSD ne sont pas des cibles appropriées puisque les algorithmes de génération d'IPID ont été corrigés[2]. Les machines choisies pour être utilisées à ce niveau sont parfois appelées « zombis ». Une fois qu'une machine zombi a été trouvée, la première étape est de déterminer le numéro IPID actuel de la machine : en envoyant un pacquet SYN/ACK au zombi, le pirate recevra un paquet RST portant le numéro de séquence.

L'étape suivante consiste en l'envoi d'un paquet SYN à la machine cible, en usurpant l'adresse IP du zombi. Si le port de la machine cible est ouvert, celle-ci répondra au zombi avec un paquet SYN/ACK. Le zombi va donc envoyer un paquet RST à la cible car il n'est pas réellement l'émetteur du premier paquet SYN. Puisque la machine zombi a dû envoyer le paquet RST, elle incrémente son IPID. C'est ce qui permet à l'attaquant de découvrir si le port de la cible est ouvert. La dernière étape est donc la vérification de l'IPID, en envoyant à nouveau un paquet SYN/ACK au zombi. Si l'IPID contenu dans le paquet RST reçu en réponse a été incrémenté deux fois, on est certain que le port cible est ouvert. En revanche si l'IPID n'est incrémenté qu'une fois, alors l'attaquant saura que ce port est fermé ou filtré.

Idle scan sur un port ouvert
Idle scan sur un port ouvert

Démonstration avec Hping

La méthode de Hping pour l'idle scan permet d'observer un exemple de la réalisation de ce type de scan à un bas niveau. Dans cet exemple, l'hôte cible (172.16.0.100) va être scanné en utilisant un hôte idle (172.16.0.105). Un port ouvert et un port fermé seront testés pour voir comment se déroule chaque scénario.

Premièrement, pour établir que l'hôte idle est bien un zombi, il faut envoyer des paquets en utilisant hping2 et observer si les numéros de séquence sont bien incrémentés de 1 à chaque fois. Si l'évolution des numéros de séquence est aléatoire, alors l'hôte n'est pas un zombi potentiel.

[root@localhost hping2-rc3]# ./hping2 -S 172.16.0.105
HPING 172.16.0.105 (eth0 172.16.0.105): S set, 40 headers + 0 data bytes
len=46 ip=172.16.0.105 ttl=128 id=1371 sport=0 flags=RA seq=0 win=0 rtt=0.3 ms
len=46 ip=172.16.0.105 ttl=128 id=1372 sport=0 flags=RA seq=1 win=0 rtt=0.2 ms
len=46 ip=172.16.0.105 ttl=128 id=1373 sport=0 flags=RA seq=2 win=0 rtt=0.3 ms
len=46 ip=172.16.0.105 ttl=128 id=1374 sport=0 flags=RA seq=3 win=0 rtt=0.2 ms
len=46 ip=172.16.0.105 ttl=128 id=1375 sport=0 flags=RA seq=4 win=0 rtt=0.2 ms
len=46 ip=172.16.0.105 ttl=128 id=1376 sport=0 flags=RA seq=5 win=0 rtt=0.2 ms
len=46 ip=172.16.0.105 ttl=128 id=1377 sport=0 flags=RA seq=6 win=0 rtt=0.2 ms
len=46 ip=172.16.0.105 ttl=128 id=1378 sport=0 flags=RA seq=7 win=0 rtt=0.2 ms
len=46 ip=172.16.0.105 ttl=128 id=1379 sport=0 flags=RA seq=8 win=0 rtt=0.4 ms

Port ouvert

Pour tester un port de la machine cible, on envoie un paquet usurpant l'adresse IP du zombi. Dans ce cas le port 22 (ssh).

# hping2 --spoof 172.16.0.105 -S 172.16.0.100 -p 22 -c 1
HPING 172.16.0.100 (eth0 172.16.0.100): S set, 40 headers + 0 data bytes

--- 172.16.0.100 hping statistic ---
1 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Puisque l'adresse du paquet a été usurpée, aucune réponse n'est reçue et hping signale que 100% des paquets ont été perdus. La cible a directement répondu à l'hôte idle avec un paquet SYN/ACK. Maintenant, il faut observer l'IPID du zombi pour voir s'il a été incrémenté.

# hping2 -S 172.16.0.105 -p 445 -c 1
HPING 172.16.0.105 (eth0 172.16.0.105): S set, 40 headers + 0 data bytes
len=46 ip=172.16.0.105 ttl=128 DF id=1381 sport=445 flags=SA seq=0 win=64320 rtt=0.3 ms

--- 172.16.0.105 hping statistic ---
1 packets tramitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.3 ms

Notez que l'IPID du proxy a augmenté de id=1379 à id=1381. Le paquet numéro 1380 a été utilisé quand le zombi a répondu au paquet SYN/ACK de la cible par un paquet RST.

Port fermé

Maintenant, on utilise le même procédé sur un port qui est probablement fermé. Ici le port 23 (telnet).

Il est nécessaire de vérifier l'IPID actuel du zombi avant de commencer.

# hping2 -S 172.16.0.105 -p 445 -c 1
HPING 172.16.0.105 (eth0 172.16.0.105): S set, 40 headers + 0 data bytes
len=46 ip=172.16.0.105 ttl=128 DF id=1382 sport=445 flags=SA seq=0 win=64320 rtt=2.1 ms

--- 172.16.0.105 hping statistic ---
1 packets tramitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 2.1/2.1/2.1 ms

Puis, on envoie le paquet de test à la cible.

# hping2 --spoof 172.16.0.105 -S 172.16.0.100 -p 23 -c 1
HPING 172.16.0.100 (eth0 172.16.0.100): S set, 40 headers + 0 data bytes

--- 172.16.0.100 hping statistic ---
1 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Et enfin on vérifie à nouveau l'IPID du zombi.

# hping2 -S 172.16.0.105 -p 445 -c 1
HPING 172.16.0.105 (eth0 172.16.0.105): S set, 40 headers + 0 data bytes
len=46 ip=172.16.0.105 ttl=128 DF id=1383 sport=445 flags=SA seq=0 win=64320 rtt=0.3 ms

--- 172.16.0.105 hping statistic ---
1 packets tramitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.3 ms

Remarquez que cette fois l'IPID a augmenté seulement d'une unité (de id=1382 à id=1383) car le port était fermé. Lorsque le paquet avec l'IP usurpée a été envoyé à la cible, celle-ci a répondu au zombi par un paquet RST. L'hôte idle n'a donc pas répondu à ce paquet et son IPID a été incrémenté lors de sa réponse à l'attaquant.

Démonstration avec Nmap

La première chose à faire est de trouver une machine zombi sur le réseau.

# nmap -sP 192.168.1.0/24

Cette commande fait effectuer à Nmap un balayage d'une plage d'adresse IP et montre les hôtes qui sont en ligne.

Une fois le zombi trouvé, il faut envoyer les paquets avec l'adresse IP usurpée :

# nmap -P0 -p <port> -sI <zombi IP> <target IP>

Efficacité

Bien que beaucoup de systèmes d'exploitation ne peuvent plus être utilisés comme zombis dans cette attaque ; quelques systèmes populaires sont toujours vulnérables[3]. Lorsqu'un scan est réussi, il n'y a aucune trace de l'adresse IP de l'attaquant dans le pare-feu de la cible ou dans le log du système de détection d'intrusion. Le scan étant effectué depuis la machine zombi, cela offre la possibilité de contourner un pare-feu, puisque le zombi peut posséder plus de droits que la machine de l'attaquant.

Notes et références

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Idle scan de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Idle scan — The idle scan is a TCP port scan method that through utility software tools such as Nmap and Hping allow sending spoofed packets to a computer. This sophisticated exploit is dual hatted as a port scanner and maps out trusted IP relationships… …   Wikipedia

  • System Idle Process — Бездействие системы (System Idle Process) процесс ядра операционной системы семейства Windows, представляющий собой отдельный поток (или несколько потоков на многоядерных системах), работающий тогда, когда процессор не выполняет других потоков.… …   Википедия

  • Port-Scanning — Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP/IP oder UDP arbeitendes System anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines Systems selbst mit einem… …   Deutsch Wikipedia

  • Port scanning — Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP/IP oder UDP arbeitendes System anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines Systems selbst mit einem… …   Deutsch Wikipedia

  • Portscan — Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP/IP oder UDP arbeitendes System anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines Systems selbst mit einem… …   Deutsch Wikipedia

  • Portscanner — Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP oder UDP arbeitendes System über das Internetprotokoll anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines… …   Deutsch Wikipedia

  • Portscanning — Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP/IP oder UDP arbeitendes System anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines Systems selbst mit einem… …   Deutsch Wikipedia

  • Port scanner — A port scanner is a piece of software designed to search a network host for open ports. This is often used by administrators to check the security of their networks and by crackers to compromise it.To portscan a host is to scan for listening… …   Wikipedia

  • Nmap — Nmap …   Wikipédia en Français

  • Hping — Infobox Software name = hping caption = developer = Salvatore Sanfilippo (Antirez) latest release version = hping3 20051105 latest release date = November 5, 2005 platform = CLI operating system = Cross platform genre = Computer security license …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”