SRT3/TIC/UADB Sécurité 2020/2021
TP2 : Ethical Hacking-Simulation d’attaques
1. Objectif
L’objectif de ce travail pratique est de simuler des attaques sur un réseau informatique. Nous nous
intéresserons aux attaques de types déni de service (DoS). Pour se faire, de nombreux outils existent
permettant de simuler une attaque DoS. Nous considérerons un attaquant utilisant un système Kali
Linux avec l’outil hping3 en ligne de commande pour mener une attaque sur le serveur web d’une
machine cible.
Vous aller
• Utiliser nmap pour scanner les ports ouverts sur une machine ;
• Lacer des attaques de type DoS (exemple flooding et ping-flood) avec hping ;
• Analyser le trafic avec Wareshark.
• GNS3 pour simuler une architecture réseau.
Indications
Installer sur une machine un système windows qui va être la machine cible de
l’attaque.
Installer un serveur appache dans cette machine windows.
Installer sur une machine un système Kali Linux qui va faire office d’attaquant.
Installer Wareshark.
Installer Advanced IP Scanner.
2. Simulation d’attaques (ethical hacking)
2.1 Introduction
Tout ordinateur connecté à un réseau informatique est potentiellement vulnérable à une attaque.
Les méthodes d’attaques sont de plus en plus nombreuses et perfectionnées, elles peuvent se traduire
par des vols d’informations confidentielles, des destructions de données numériques, des coupures de
services .... Dans ce TP, nous nous intéresserons aux attaques par Déni de Service (DoS), qui sont
assez répandues. Ces attaques peuvent s’avérer très pénalisantes pour une entreprise car elle vise à
rendre indisponible une ressource ou un service du réseau. Ainsi, il est possible de générer une
consommation excessive CPU par la simple émission de plusieurs centaines de milliers requêtes par
seconde avec un outil tel que hping3 en ligne de commande.
2.2 Les outils d’attaques
Il existe de nombreux outils servant à perpétrer des attaques de types dénis de services selon le
système, que l’on soit sous Windows, Linux ou autres systèmes d’exploitation. Cependant, Linux reste
le système comportant le plus d’outils plus particulièrement Kali Linux.
2.2.1 Présentation de Kali-Linux
• Kali Linux est une distribution Linux sortie en 2013, basée sur la distribution Debian.
• Kali Linux est le successeur de Backtrack sorti en 2006, qui était basé sur Slackware
jusqu’à la version 3 puis Ubuntu depuis la version 4.
• Objectif de Kali Linux : fournir une distribution regroupant l’ensemble des outils
nécessaires à l’audit de sécurité d’un réseau donné.
• Kali fonctionne en mode installation complète : installé au niveau du disque dur (par
machine physique ou virtuelle).
Dr B. DIOUF 1/15
SRT3/TIC/UADB Sécurité 2020/2021
Kali Linux est reconnue par les professionnels de la sécurité informatique comme complète et efficace
pour des tests de l’efficacité des mesures de sécurité d’un réseau. Elle contient plus de 300 outils pour
le hacker qui peut les utiliser pour voler, détruire et corrompre des documents d’un ordinateur cible.
Cependant, dans le cadre de ce TP, ces outils devront être utilisés dans une perspective de tester et
découvrir les failles existantes afin d’augmenter la sécurité de nos systèmes. C’est ce qu’on appelle
piratage éthique (ethical hacking).
Kali Linux contient entre autres outils :
• Reconnaissance (Information Gathering)
• Analyse des vulnérabilités (Vulnerability Analysis)
• Attaque d’un réseau sans-fil (Wireless Attacks)
• Application Web (Web Applications)
• Outils d’exploitation (Exploitation Tools)
• Analyse criminelle (Forensics Tools)
• Outils de stress (Stress Testing)
• Analyse réseau et forge de trafic réseau (Sniffing & Spoofing)
• Attaque de mots de passe (Password Attacks)
• Persistance de l’accès (Maintaining Access)
• Ingénierie inverse (Reverse Engineering)
• Piratage matériel (Hardware Hacking)
• …
2.3 L’outil de simulation d’attaques hping
Vous allez mettre en œuvre une attaque SYN Flood en direction d’un serveur web apache. Ce
dernier présente l'avantage de fonctionner sous différentes plates-formes telles que Windows et Linux,
ce qui va vous permettre de réaliser des tests variés. Lors du premier test, vous allez utiliser apache sur
une machine Linux. Le but sera de rendre ce serveur indisponible lors de la demande de page web par
des clients. Pour ce faire, vous allez utiliser l'outil hping. Le programme hping est bien plus puissant
que la simple commande ping. Il ne se contente pas d’envoyer des paquets ICMP, il gère aussi les
paquets TCP, UDP et RAW-IP et permet en plus de modifier certains champs des entêtes de ces
paquets suivant différents paramètres :
Intervalle entre les paquets,
adresse source,
adresse destination,
taille des paquets,
flags,
etc.
Il comporte aussi un traceroute et des capacités à détecter les systèmes d’exploitation d’une cible.
Dr B. DIOUF 2/15
SRT3/TIC/UADB Sécurité 2020/2021
Quelques commandes utiles :
hping [Link] -1 : le ping classique ;
hping [Link] -a [Link] : l’option -a définit l’adresse source du
ping et donc l’adresse qui recevra les réponses en provenance de la cible ;
hping [Link] -i u10 : pour envoyer 1 paquet toutes les 10 us ;
Cet outil peut s’avérer très puissant et peut être utilisé par exemple pour effectuer une attaque
SYN flood, Ping flood et Smurf.
Exemple d’attaques SYN flood
hping [Link] -S -fast : pour envoyer 10 paquets par seconde contenant le
flag SYN
hping [Link] -S -fast -a [Link] : pour effectuer la même
attaque en faisant passer la machine [Link] pour l’attaquant
Exemple d’attaques PING flood
hping [Link] -1 -fast : pour envoyer 10 pings par seconde
hping [Link] -1 -fast -a [Link] : pour effectuer la même
attaque en faisant passer la machine [Link] pour l’attaquant.
Exemple d’attaque Smurf
hping [Link] -1 -fast -a [Link] : pour envoyer 10 pings par
seconde au broadcast qui répondra à la cible [Link].
Hping peut être utilisé dans beaucoup de situations pour analyser et effectuer des audits de réseaux
informatiques ainsi que leurs configurations.
hping3
C’est un outil réseau capable d’envoyer des paquets TCP/IP sur ligne de commande et d’afficher
les réponses de la cible comme le programme ping le fait avec les réponses ICMP. Hping3 est un
analyseur et/ou assembleur de paquets TCP/IP orienté ligne de commande. L’interface est inspirée de
la commande Unix ping. Hping3 permet d'envoyer des fichiers entre un canal couvert et de
nombreuses autres fonctionnalités :
o Test des règles d’un pare-feu (Firewall testing) ;
o Attaque de type Déni de Service ;
o Scan de ports de façon avancée (Advanced port scanning) ;
o Test de performances réseau en utilisant différents protocoles, tailles de paquets, TOS (type
de service) et fragmentation ;
o Découverte de "Path MTU" ;
o Comme traceroute avec différents protocoles supportés ;
o Transférer des fichiers même au travers de règles de firewall vraiment fascistes ;
o Empreinte de système d'exploitation à distance ;
o Estimation du temps de disponibilité à distance ;
o Audit de pile TCP/IP ;
o Utilisation comme Firewalk ;
Dr B. DIOUF 3/15
SRT3/TIC/UADB Sécurité 2020/2021
o Détermination d'OS à distance ;
o Test firewalling rules ;
o Test IDS ;
o Test et Prototype des systèmes IDS ;
o Network Scanning Tool ;
o etc.
Vous allez utiliser Kali Linux qui intègre déjà l’outil hping.
Bien utilisé, Hping permet d'effectuer un DoS avec par exemple la commande suivante : hping3 -i u10
[Link] -p 80 -S qui envoi à l'adresse [Link], sur le port 80.
Syntaxe de Hping3
Syntaxe complète :
hping3 [-hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG] [-c count] [-i wait] [--
fast] [-I interface] [-9 signature] [-a host] [-t ttl] [-N ip id] [-
H ip protocol] [-g fragoff] [-m mtu] [-o tos] [-C icmp type] [-K
icmp code] [-s source port] [-p[+][+] dest port] [-w tcp window] [-O
tcp offset] [-M tcp sequence number] [-L tcp ack] [-E filename] [-
e signature] [--icmp-ipver version] [--icmp-iphlen length] [--icmp-
iplen length] [--icmp-ipid id] [--icmp-ipproto protocol] [--icmp-
cksum checksum] [--icmp-ts] [--icmp-addr] [--tcpexitcode] [--tcp-
mss] [--tcp-timestamp] [--tr-stop] [--tr-keep-ttl] [--tr-no-rtt] [--
rand-dest] [--rand-source] [--beep] hostname
Syntaxe des options de hping3 :
• hping3 = nom de l’application.
• -c 100000 = nombre de paquets à envoyer.
• -d 120 = taille de chaque paquet à envoyer en direction de la machine cible.
• -S = on envoie des paquets SYN seulement.
• -w 64 = taille de la fenêtre.
• -p 21 = port de destination (ex : 21 qui est celui de FTP). Vous pouvez utiliser n’importe
quel port à la place.
• --flood = envoie de paquets le plus rapidement possible, sans afficher les réponses
entrantes. C’est le mode flooding.
• --rand-source = utiliser un adresse IP source quelconque (choisie au hasard). Vous
pouvez aussi utiliser -a ou –spoof pour cacher le nom d’hôte.
• [Link] = adresse IP de destination (ou de la machine cible). Vous pouvez
aussi mettre l’url du site web ici. Ex : [Link] (comme entrée dans le fichier /etc/hosts).
• Regarder la page man et hping3 howto pour plus de détails.
2.4 Autres outils de simulation d’attaques
D’autres outils existent pour simuler des attaques comme :
Ettercap : analyseur de réseau qui permet aussi de mettre en place des attaques DoS par
surcharge ou par ARP-poisoning, mais cette fois de façon graphique.
Dr B. DIOUF 4/15
SRT3/TIC/UADB Sécurité 2020/2021
Dsniff : suite d’outils destinée aux attaques de type Man-in-the-Middle (MiM) qui permet entre
autres de mettre en pratique l’ARP-spoof aussi appelé ARP-poisoning.
LOIC (Low Orbit Ion Canon) ou sa version améliorée HOIC (High OIC): utilisés pour des
attaques DoS et DDoS contre un site web ou un serveur en envoyant des requêtes UDP, TCP ou
HTTP.
Slowloris : script écrit en Perl par Robert "RSnake" Hansen qui permet à une seule machine de
faire tomber un serveur web en utilisant une bande passante minimale et des effets de bords sur
des services et des ports sans rapport.
2.5 Manipulations et tests
2.5.1 Manip 1 :
Vous allez faire la manipulation sur deux machines virtuelles : l’une sur Windows et l’autre Kali
Linux. Pour cela vous considérerez la machine Windows comme cible et Kali Linux comme
l’attaquant. L’objectif c’est de rendre indisponible le serveur Apache qui tourne sur la machine
Windows.
Etape 1. Etant donné que le test va se faire en local, vérifier d’abord que vos deux machines (cible
et attaquant) sont dans le même réseau. Vous pouvez utiliser pour cela l’outil « Advanced IP Scanner
». Une capture des informations sur les deux machines donne ce qui suit :
Pour notre cas, le réseau local où on se trouve a pour adresse IP « [Link] » et pour masque «
[Link] ». Les adresses pouvant être exploitées par les machines hôtes sont : « [Link] » à
« [Link] ». Parmi les équipements connectés, la machine d’adresse « [Link] » sera
choisie comme cible de l’attaque.
Etape 2. Avant de réaliser une attaque, la première étape consiste à scanner les ports ouverts au
niveau de la cible pour en chercher les vulnérabilités. Pour la deuxième étape du processus de
l’attaque, utiliser l’outil Nmap pour scanner le réseau cible plus particulièrement la machine devant
être attaquée. Nmap va vous permettre de détecter les ports ouverts et identifier les services hébergés.
Vous allez scanner les ports sur la machine cible avec Nmap. Noter que Nmap est intégré dans Kali
Linux.
Une fois que vous ayez identifié la machine cible, lancer Nmap au niveau de la machine attaquant
(sur Kali Linux) afin de déterminer les ports qui y ont ouverts. La syntaxe est la suivante :
nmap <adresse IP de la cible> pour scanner les ports disponibles.
Vous devriez avoir un message qui ressemble à ceci :
Dr B. DIOUF 5/15
SRT3/TIC/UADB Sécurité 2020/2021
Cette commande effectue le scan des ports 1 à 200 de la machine [Link].
Après avoir scanné les ports vous pouvez constater, dans cet exemple, que trois ports sont ouverts
et disponibles que sont : http, msrpc et netbios-ssn. Ces services pourront par conséquent être
contactés par l’attaquant. Si vous avez installé correctement le serveur apache sur la machine cible,
vous devriez voir http parmi les services ouverts.
Vous allez choisir d’attaquer le serveur http avec le port 80.
Connecter vous au « localhost » avant de mener l’attaque. Vous aurez :
Ce qui montre que la connexion marche correctement. Vous pouvez aussi essayer de connecter à
internet. Ça devrait marcher aussi.
Etape 3. Utiliser maintenant l’outil hping3 pour lancer une attaque de type flooding avec la
commande :
> hping3 –-flood –p 80 –S « adresse IP de la cible ».
Vous aurez quelque chose comme suit :
Etape 4. Utiliser l’outil Wireshark pour sniffer le trafic afin de visualiser la surcharge de paquet sur
la machine cible :
Dr B. DIOUF 6/15
SRT3/TIC/UADB Sécurité 2020/2021
Constater bien la surcharge de paquet dans le service web en destination de l’adresse de la machine
cible. Essayer de vous connecter à nouveau à partir de la machine cible sur le localhost ou sur internet.
Le service devrait être indisponible. Vous devriez remarquer un comportement comme suit :
Cela montre que le service web n’est plus disponible sur la machine de la victime.
Pour arrêter l’attaque appuyer sur Clrl + c.
Etape 5.
Essayer de réaliser le test avec trois machines en ajoutant une troisième machine qui va essayer de
se connecter au serveur web de la cible.
Avant de mener l’attaque, vérifier d’abord que cette machine parvient à se connecter au serveur
web de la machine cible.
Générer ensuite l’attaque hping3.
Essayer enfin de vous connecter à nouveau au serveur web de la machine cible. Vous devriez
constater son indisponibilité (inaccessibilité).
Etape 6.
Essayer de réaliser diverses variantes d’attaques proposées par hpin3 comme ping flood et smurf.
Noter également qu’un pirate masque généralement son identité en falsifiant l'adresse IP source des
paquets qu'il envoie. Également il doit s'assurer qu'il n'y aura pas de réponse de la part de la machine à
qui on a emprunté l'adresse IP. Réaliser l’attaque en masquant l’identité de l’attaquent :
Dr B. DIOUF 7/15
SRT3/TIC/UADB Sécurité 2020/2021
Etape 7.
Réaliser la simulation d’attaque sur l’architecture suivante :
2.6 Les moyens de se prémunir
Il existe plusieurs moyens, plus ou moins efficaces, permettant de détecter et/ou de bloquer ces
attaques : IDS/IPS, firewalls, proxy, … C’est l’objet des TP suivants.
Dr B. DIOUF 8/15