Le 10/08/2006 par Jean-Philippe Gaulier -- Version 0.1
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.
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.
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.
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
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.
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
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é.
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.
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
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.
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
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.
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.
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
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é.
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
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).
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
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.
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: icmpAttention, cette option génère 47 paquet par boucle.
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.
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
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.
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
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.
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).
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.
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
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.
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
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.
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
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.
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
$LastChangedDate: 2008-03-22 18:15:58 +0100 (sam, 22 mar 2008) $