Étude et définition des différentes attaques de scan et de déni de service

Le 10/08/2006 par Jean-Philippe Gaulier -- Version 0.1

Introduction

De nombreuses options peuvent être utilisées sur l'ensemble du protocole dit "TCP/IP". Sous ce drapeau anonyme se cache IP, TCP, UDP et ICMP. Si, dans la majorité des cas, ces options sont présentes pour faciliter la gestion du réseau, certaines configurations permettent à un assaillant de prendre connaissance de la configuration réseau de votre poste, voire de le priver de ressources lorsque ce dernier ne sait pas gérer un comportement anormal de la pile. Ce document relate un certain nombre de ces configurations mesquines, afin que vous puissiez les comprendre.

Scan de port

Le scan de port permet à un attaquant de se renseigner sur les ports ouverts et fermés de la machine cible. Ceci est possible par l'interrogation de la pile TCP/IP et l'analyse des réponses fournis.

TCP Port Scan

Le port scanning consiste à interroger un port de la machine cible. En fonction de la réponse reçue, on peut déduire si ce port est ouvert ou non. L'ensemble des ports (<65536) peut être interrogé, perturbant ainsi le trafic de la cible.

TCP Port Scan

IP (proto 6, length: 40) 192.168.10.2.1024 > 10.1.1.1.0: Syn win 32768
IP (proto 6, length: 40) 192.168.10.2.1024 > 10.1.1.1.1: Syn win 32768

UDP Port Scan

Le port scanning consiste à interroger un port de la machine cible. En fonction de la réponse reçue, on peut déduire si ce port est ouvert ou non. L'ensemble des ports (<65536) peut être interrogé, perturbant ainsi le trafic de la cible.

UDP Port Scan

IP (proto 17, length: 46) 192.168.10.2.1024 > 10.1.1.1.65532: UDP, length 18
IP (proto 17, length: 46) 192.168.10.2.1024 > 10.1.1.1.65533: UDP, length 18
IP (proto 17, length: 46) 192.168.10.2.1024 > 10.1.1.1.65534: UDP, length 18

Xmas Tree

Le Xmas Tree, pour Christmas Tree, arbre de noël permet à un attaquant d'interroger une machine quant aux ports ouverts. Pour ce faire, il positionne les trois drapeaux FIN, URG et PUSH à 1. Ce nom est issus de l'alternance des drapeaux positionnés dans le paquet (00101001), qui donne l'impression d'une guirlande électrique, en suivant l'ordre des bits.

Lorsque l'on envoie un paquet vers un port avec les bons drapeaux positionnés, deux cas résultants sont possible :

Si un paquet avec le flag RST est envoyé, cela signifie que le port de l'hôte de destination est fermé.

Xmas Tree

Source          Destination     Summary 
-------------------------------------------------------------------------------------- [192.168.0.8] [192.168.0.7] TCP: D=618 S=36793 FIN URG PUSH SEQ=3378228596 LEN=0 WIN=1024 [192.168.0.7] [192.168.0.8] TCP: D=36793 S=618 RST ACK=3378228596 WIN=0

Dans le cas contraire, si aucun paquet n'est renvoyé, c'est que le port est ouvert.

Xmas Tree

	Source          Destination    Summary 
-------------------------------------------------------------------------------------- [192.168.0.8] [192.168.0.7] TCP: D=79 S=36793 FIN URG PUSH SEQ=3378228596 LEN=0 WIN=2048

Ping Sweep

L'attaque Ping Sweep permet de s'assurer de la disponibilité d'un certain nombre d `équipement sur un réseau. Elle permet de découvrir quels sont les matériels actifs présent. Pour se faire, elle envoie des ICMP Echo Request vers un pool d'adresse. Si le matériel répond, c'est qu'il est présent. Dans le cas contraire, le paquet continuera à airer sur le réseau jusqu'à la fin de son TTL.

Ping Sweep

IP (proto 1, length: 50) 192.168.10.1 > 10.1.1.1: icmp 30: echo request seq 0
IP (proto 1, length: 50) 192.168.10.1 > 10.1.1.2: icmp 30: echo request seq 0
IP (proto 1, length: 50) 192.168.10.1 > 10.1.1.3: icmp 30: echo request seq 0

Attaque DDOS

Une attaque DDOS, pour Distributed Deny Of Service, a pour but de stopper toute actité ou réponse possible sur/de l'hôte cible. Ces attaques concernent les couches 2, 3 et 4 de la pile TCP/IP.

Evasive UDP

Cette attaque génère un flot de datagrammes UDP, de tailles variables, avec des addresses IP aléatoires. Ceci est en mesure de dérouter la cible et l'amener à une déconnexion du réseau suite à un ralentissement important de son trafic.

Evasive UDP

 
IP (proto 17, length: 50) 35.84.142.243.1024 > 10.1.1.1.512: UDP, length 22
IP (proto 17, length: 50) 105.70.167.80.1024 > 10.1.1.1.512: UDP, length 22
IP (proto 17, length: 50) 143.193.139.102.1024 > 10.1.1.1.512: UDP, length 22

Land

L'attaque Land s'appuie sur une mauvase gestion des droits d'accès au réseau. La machine attaquée s'autorise à recevoir des paquets externes avec son adresse IP. C'est ce qu'on appelle du spoofing (technique d'usurpation d'identité ou d'adresse). Le système ciblé, s'il est faillible, risque dans ce cas de se voir bloqué (utilisation 100% CPU, crash mémoire, ...) ou perdre sa couche réseau.
Pour se faire, on commence par scanner tous les ports de la machine que l'on souhaite attaquer. Par la suite, On envoie une requête avec l'IP source identique à l'IP destination, sur chaque port ouvert, avec le drapeau SYN activé.

Land

IP (proto 6, length: 40) 10.1.1.1.80 > 10.1.1.1.80: Syn  
IP (proto 6, length: 40) 10.1.1.1.80 > 10.1.1.1.80: Syn  
IP (proto 6, length: 40) 10.1.1.1.80 > 10.1.1.1.80: Syn  

ARP Flood

Une attaque qui se base sur ARP ne concerne que le réseau local. Ici, nous cherchons à atteindre la limite de cache et de manipulation du matériel que l'on attaque en l'innondant de nombreuses adresses MAC usurpées associées à des adresses IP . On peut envoyer soit des requêtes (code 01), soit des réponses (code 02).

ARP Flood

11:31:31.013478 arp reply 10.5.0.1 is-at 0a:05:00:00:00:01
11:31:31.014469 arp reply 10.5.0.2 is-at 0a:05:00:00:00:02
11:31:31.015468 arp reply 10.5.0.3 is-at 0a:05:00:00:00:03

Ping Of Death

Le ping de la mort est un packet IP construit avec une taille supérieure à 65.535 octets, ce qui est normalement illégal. Certaines applications acceptent cependant des paquets malformés, ce qui peut les amener à saturation.

Ping Of Death

IP (id 1, flags [+], proto 1, length: 1428) 192.168.10.1 > 10.1.1.1: icmp 1408: echo request seq 1
IP (id 1, flags [+], proto 1, length: 1428) 192.168.10.1 > 10.1.1.1: icmp
[...] Répété 45 fois
IP (id 1, flags [none], proto 1, length: 1428) 192.168.10.1 > 10.1.1.1: icmp

Attention, cette option génère 47 paquet par boucle.

Random Unreachable Host

Cette attaque fait parvenir un ICMP Host Unreachable à l'hôte cible. Si cette attaque est bien ciblée, elle permet d'isoler la cible du réseau, ralentissant ses connexions. Pour ce faire, l'attaquant envoie des adresses IP aléatoires.

Random Unreachable Host

IP truncated-ip - 10 bytes missing! (proto 1, length: 66) 192.168.10.1 > 10.1.1.1: icmp 46: host 100.66.128.66 unreachable
IP truncated-ip - 10 bytes missing! (proto 1, length: 66) 192.168.10.1 > 10.1.1.1: icmp 46: host 75.194.233.152 unreachable
IP truncated-ip - 10 bytes missing! (proto 1, length: 66) 192.168.10.1 > 10.1.1.1: icmp 46: host 49.84.82.12 unreachable

Reset Flood

Lors de cette attaque, on génère un grand nombre de RST afin de terminer les séquences sur la cible. Pour cela, il faut acquitter le paquet avec le bon numéro de séquence.

Reset Flood

IP (proto 6, length: 40) 192.168.10.1.1024 > 10.1.1.1.80: Rst
IP (proto 6, length: 40) 192.168.10.2.1024 > 10.1.1.1.80: Rst
IP (proto 6, length: 40) 192.168.10.3.1024 > 10.1.1.1.80: Rst

Smurf

L'attaque Smurf consiste à usurper une adresse IP source et à envoyer un ICMP Echo Request sur une adresse de diffusion d'un réseau. Toutes les machines de ce réseau se pensant concernées répondront à cet appel. Ceci a deux effets. Le premier est de saturer la machine dont on aura usurpé l'adresse IP, le deuxième est de ralentir, voir saturer le traffic sur le réseau.

Smurf

IP (proto 1, length: 50) 192.168.10.1 > 10.1.1.1: icmp 30: echo request seq 0
IP (proto 1, length: 50) 192.168.10.2 > 10.1.1.1: icmp 30: echo request seq 0
IP (proto 1, length: 50) 192.168.10.3 > 10.1.1.1: icmp 30: echo request seq 0

Attention, cette attaque doit être soigneusement paramétrée, sinon elle est complètement inutile (comme le montre la trace pcap).

Syn Flood

L'attaque SynFlood initie un grand nombre de connexion en commençant une poignée de main. La victime répond alors par un Syn/Ack en vue de continuer cet échange. Ce dernier ne recevra jamais de réponse. Ceci a pour effet d'augmenter la taille des sessions ouverte sur l'équipement cible, jusqu'à asfixie de la cible.

Syn Flood

IP (proto 6, length: 40) 192.168.10.1.1024 > 10.1.1.1.80: Syn win 32768
IP (proto 6, length: 40) 192.168.10.2.1024 > 10.1.1.1.80: Syn win 32768
IP (proto 6, length: 40) 192.168.10.3.1024 > 10.1.1.1.80: Syn win 32768

Teardrop

Pour générer une attaque Teardrop, on envoie des paquets IP volontairement fragmentés et construit de telle manière que lors de leur réassemblage, ils se superposeront au lieu de s'imbriquer. Cela a pour résultat le crash ou le décrochage du matériel cible.

Teardrop

IP (id 1, offset 0, flags [+], proto 17, length: 44) 192.168.10.1.1024 > 10.1.1.1.512: UDP, length 16
IP (id 1, offset 8, flags [none], proto 17, length: 44) 192.168.10.1 > 10.1.1.1: udp
IP (id 2, offset 0, flags [+], proto 17, length: 44) 192.168.10.1.1024 > 10.1.1.1.512: UDP, length 16
IP (id 2, offset 8, flags [none], proto 17, length: 44) 192.168.10.1 > 10.1.1.1: udp
IP (id 3, offset 0, flags [+], proto 17, length: 44) 192.168.10.1.1024 > 10.1.1.1.512: UDP, length 16
IP (id 3, offset 8, flags [none], proto 17, length: 44) 192.168.10.1 > 10.1.1.1: udp

UDP Flood

Cette attaque consiste à inonder la cible de requête UDP, à partir d'adresses IP multiples de manières à empêcher l'hôte de pouvoir créer de nouvelles requêtes vers son véritable trafic. Il faut rappeler que le protocole UDP est prioritaire sur le protocole TCP. De ce fait, la cible peut subir un déni de service.

UDP Flood

IP (proto 17, length: 50) 192.168.10.1.1024 > 10.1.1.1.512: UDP, length 14
IP (proto 17, length: 50) 192.168.10.2.1024 > 10.1.1.1.512: UDP, length 14
IP (proto 17, length: 50) 192.168.10.3.1024 > 10.1.1.1.512: UDP, length 14

Unreachable Host

Cette attaque fait parvenir un ICMP Host Unreachable à l'hôte cible. Si cette attaque est bien ciblée, elle permet d'isoler la cible du réseau, ralentissant ses connexions. Pour ce faire, l'attaquant doit choisir soigneusement l'adresse du matériel soit disant indisponible.

Unreachable Host

IP truncated-ip - 10 bytes missing! (proto 1, length: 66) 192.168.10.1 > 10.1.1.1: icmp 46: host 10.0.0.1 unreachable
IP truncated-ip - 10 bytes missing! (proto 1, length: 66) 192.168.10.1 > 10.1.1.1: icmp 46: host 10.0.0.1 unreachable
IP truncated-ip - 10 bytes missing! (proto 1, length: 66) 192.168.10.1 > 10.1.1.1: icmp 46: host 10.0.0.1 unreachable


Bibliographie

$LastChangedDate: 2008-03-22 18:15:58 +0100 (sam, 22 mar 2008) $