Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
TP 2: Attaques TCP
“Tell me and I forget. Show me and I remember. Involve me and I understand.”
Chinese proverb
N.B. : Ces travaux pratiques font l'objet d'un Compte Rendu (électronique) qui doit être
envoyé à mon adresse email (y.sadqi@usms.ma) avant le début de séance suivante. Ce
CR fera état des réponses aux questions et réalisation des diverses tâches du TP. Vous
êtes libre d'ajouter tout élément d'information qu'il vous semblera judicieux de donner.
Introduction et objectifs du TP
L'étude des problèmes de sécurité du passé aide non seulement les étudiants à
comprendre pourquoi les réseaux sont vulnérables, pourquoi une erreur apparemment
bénigne peut se transformer en catastrophe et pourquoi de nombreux mécanismes de
sécurité sont nécessaires. Plus important encore, cela aide également les étudiants à
apprendre les modèles courants de vulnérabilités, afin qu'ils puissent éviter de
commettre des erreurs similaires à l'avenir. De plus, en utilisant les vulnérabilités
comme études de cas, les étudiants peuvent apprendre les principes de la conception
sécurisée, de la programmation sécurisée et des tests de sécurité.
Bien qu'il existe aujourd'hui une grande variété d'outils de simulation permettant
l'apprentissage de la sécurité et des réseaux par la pratique, notre choix s'est porte sur
Labtainers.
Le moyen le plus simple de la mise en place de Labtainers est de télécharger l'une des
machines virtuelles pré-configurées (Appliance virtuel). Un Appliance virtuel est une
machine virtuelle préconfigurée contenant un système d'exploitation et une solution
applicative, dans notre cas labtainers. En effet, il suffit de télécharger l’Appliance virtuel
correspondant et de l'enregistrer dans son infrastructure virtuelle pour avoir une
solution logicielle prête à l'emploi.
2/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Comme pour n'importe quel logiciel, on doit répondre aux exigences minimales ci-
dessous, afin de proposer une expérience d'utilisation agréable du framework
labtainers :
La première étape à réaliser pour mettre en place l’Appliance virtuel de labtainers est
d’installer un hyperviseur tel qu’Oracle VirtualBox, VMWare, Virtual PC, etc. Dans ce TP,
nous allons choisir de travailler avec Oracle VirtualBox, sous Windows. Cet outil est
capable de gérer ce qu'on appelle des machines virtuelles (ou VM pour Virtual Machine).
Une machine virtuelle est ni plus ni moins qu'un ordinateur virtuel, avec un système
d'exploitation fonctionnant de la même manière que s'il était installé tout seul sur une
machine physique.
3/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
https://nps.box.com/shared/static/dn636n6h2d556nwqezx5w6cfc4cfeacl.ova
Point important : En générale, le téléchargement d’un gros fichier tel que l’Appliance virtual labtainers
(presque 4.24 Go) en utilisant un navigateur web (ex. google chrome ou bien Mozilla Firefox) pose assez
de problème, surtout dans le cas d'une connexion Internet perdue, de problèmes de réseau et de
coupures de courant. Pour cela, il est fortement recommandé d’utiliser un logiciel qui gère et planifie les
téléchargements. Internet Download Manager (IDM) est classé parmi les meilleurs logiciels de cette
catégorie de logiciels sous Windows. Il dispose de capacités de récupération et de reprise pour restaurer
les téléchargements interrompus. Comme le montre la figure ci-dessous l’interface utilisateur d’IDM est
hyper simple le rend facile à utiliser.
Le lien web ci-dessous présente une vidéo expliquant la procédure à suivre pour récupérer un
téléchargement interrompu en utilisant IDM:
https://www.youtube.com/watch?v=OdW0VxbmOks
4/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
3. Dans VirtualBox, cliquer avec le bouton droit de la souri sur le menu « Start—
Normal Start » afin de démarrer l’environnement de labtainers (Figure 2).
5/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Remarque : Il faut noter que l’appliance virtuel utilisé dans labtainers est basé sur la
distribution linux Ubuntu version 18.04 LTS. Il est configuré pour ne pas effectuer
automatiquement les mises à jour du système. Il peut vous inviter à télécharger et à
installer des mises à jour. Cela n'est généralement pas nécessaire et peut bloquer la
bande passante de votre réseau.
4. Par défaut l’appliance virtuel importé utilise un clavier « QWERTY ». Pour que ce
système soit entièrement configurée avec un clavier « AZERTY », y compris sur
l'écran de login et la console de secours, saisissez dans un terminal la commande
suivante (L'identifiant utilisateur pour l'authentification auprès de la VM est
student et le mot de passe est password123):
6/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Une interface semi-graphique vous offrira alors la possibilité de modifier comme vous
l'entendez chacun des paramètres liés à votre clavier. Après validation de tous vos choix
et un retour au prompt dans votre console, redémarrez votre machine pour que les
modifications soient effectives. Les changements sont immédiats dans une console tty.
Points importants :
Dans le cas de problèmes de configuration du clavier, consulter la page web suivante, qui
rassemble tout ce qui concerne la configuration du clavier sous Ubuntu :
https://doc.ubuntu-fr.org/tutoriel/configurer_le_clavier.
7/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Pour vous simplifier la vie, VirtualBox vous permet de partager le presse-papier entre
les machines virtuelles et votre machine physique, ainsi que de glisser des fichiers d'une
machine virtuelle vers votre machine physique (et inversement). Néanmoins, par défaut,
ces options sont désactivées. Pour activer le partage du presse-papier avec la machine
virtuelle de labtainers, ainsi que le glisser-déposer de fichiers pour celle-ci :
2. Choisissez « Bidirectionnel» pour les deux options. Une fois que vous aurez
activé l'option "Presse-papier partagé" (dans notre cas : en Bidirectionnel), vous
pourrez copier/coller du texte de votre machine physique vers votre machine
8/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
labtainer tcpip
Points importants :
Lorsqu'un étudiant démarre un TP, le framework Labtainers incorpore une adresse e-mail fournie
par l'étudiant dans une graine pour la génération de valeurs pseudo-aléatoires. Un fichier de
filigrane est automatiquement créé pour chaque TP d'étudiant, et ce fichier devient l'un des artefacts
dans l'archive de l'étudiant. Pour cela, il faut utiliser votre adresse e-mail académique
« prenom.nom@usms.ma ».
Figure 5. Labteinrs extrait les images Docker de Docker Hub pour lancer le
l’environnement de TP
2. Entre votre adresse email académique quand il est demandé par labtainers.
L’adresse email doit être de la forme « prenom.nom@usms.ma ».
9/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
A la fin de l’extraction des images Docker de Docker Hub, labtainers créera trois
terminaux virtuels, connectés à trois ordinateurs : server, client, et attacker (Figure 6).
Figure 6. Les trois terminaux virtuels, connectés à trois ordinateurs : server, client, et
attacker
Les terminaux virtuels présentent des shells bash via lesquels vous pouvez interagir
avec l'ordinateur connecté (qui est en fait un conteneur Docker conçu pour apparaître
comme un ordinateur séparé). Un seul ordinateur peut être associé à plusieurs
terminaux virtuels. Chaque ordinateur est indépendant et peut utiliser des réseaux pour
interagir avec d'autres ordinateurs Labtainer au sein d’un TP.
10/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Points importants :
Pour simplifier vos attaques, l'outil Wireshark peut être exécuté à partir du terminal du
serveur (server) afin que vous puissiez mieux comprendre la structure du trafic réseau.
L'utilitaire nping (distribué avec nmap) est disponible sur le système d’attaquant
(attacker) pour envoyer des paquets réseau de différents types et avec un contenu
différent. Utilisez la comande «man nping» pour en savoir plus sur cet outil ou bien
consultez la documentation officiel de l’outil.
Pour simplifier l’estimation des numéros de séquence TCP et des numéros de port
source, nous supposons que les attaquants sont sur le même réseau physique que les
victimes.
3. Avec le bouton droit de la souris, cliquez sur « Open Link » pour ouvrir le
template du compte rendu de TP (Figure ci-dessous), qui se trouve dans le
chemin : home/student/labtainer/trunk/labs/tcpip/docs/tcpip-report.docx
11/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Points importants :
Il est obligatoire d’utiliser le template du compte rend. Donc, après la rédaction du compte
rendu, n’oublier pas d’enregistrer les modifications.
Parfois, vous voudrez peut-être refaire le TP depuis le début. Dans ce cas, saisissez :
labtainer -r tcpip
o Où « container » est le nom d'hôte du composant sur lequel attacher un terminal. Il peut
être omis pour les laboratoires ayant un seul composant. Par exemple, dans le cas de ce
TP, on peut ajouter un terminal client en tapant : moreterm.py tcpip client
Dans cette tâche, vous devez démontrer l'attaque d'inondation SYN contre le protocole
telnet. Utilisez l'outil nping pour mener l'attaque, puis utilisez Wireshark pour capturer
les paquets attaquants.
SYN flood est une forme d'attaque DoS (Denial of Service) dans laquelle les attaquants
envoient de nombreuses requêtes SYN au port TCP d'une victime, mais les attaquants
n'ont pas l'intention de terminer la procédure de négociation à trois étapes (three-way
handshake). Les attaquants utilisent une adresse IP falsifiée ou ne poursuivent pas la
procédure. Grâce à cette attaque, les attaquants peuvent inonder la file d'attente de la
victime qui est utilisée pour les connexions à moitié ouvertes (Half-open connexion),
12/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
c'est-à-dire les connexions qui ont terminé SYN, SYN-ACK, mais qui n'ont pas encore
obtenu un ACK final. Lorsque cette file d'attente est pleine, la victime ne peut plus
prendre de connexion. La figure 8 illustre l'attaque.
13/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
envoyer un paquet à la fois à cette adresse IP, et «-p 23» pour sélectionner le
protocole telnet. ».
6. Envoyez cinq paquets via nping, puis essayez de se connecter au serveur (server)
en utilisant telnet via le terminal du client.
SYN Cookie : Si votre attaque semble infructueuse, une chose que vous pouvez rechercher est de savoir si
le mécanisme SYN cookie est activé. SYN cookie est un mécanisme de défense pour résister l'attaque par
inondation SYN et accessoirement l’attaque IP spoofing.. Le mécanisme se déclenchera si la machine
détecte qu'elle est sous l'attaque d'inondation SYN. Le principal inventeur de la technique, Daniel J.
Bernstein, définit les cookies SYN comme «des choix particuliers de numéros de séquence TCP initiaux par
les serveurs TCP». Vous pouvez utiliser la commande « sysctl » pour activer / désactiver le mécanisme de
cookie SYN :
14/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Dans cette tâche, vous devez lancer une attaque TCP RST pour rompre une connexion
Telnet existante entre le client et le serveur. Après cela, essayez la même attaque sur une
connexion ssh. Pour simplifier le TP, nous supposons que l'attaquant et la victime sont
sur le même LAN, c'est-à-dire que l'attaquant peut observer le trafic TCP entre le client
et le serveur via l'utilisation de Wireshark sur le serveur. Dans votre compte rendu,
veuillez décrire vos observations.
Point important :
L'usurpation de paquets pour forger un paquet de réinitialisation (TCP RST) doit être utilisée pour
réaliser l’attaque TCP RST. Utilisez l'outil nping pour créer un paquet usurpé avec le drapeau (falg) RST.
Notez que vous devrez fournir un numéro de séquence et un numéro de port source appropriés.
L'objectif de l'attaque de piratage de session TCP est de détourner une connexion TCP
existante (session) entre deux victimes en injectant du contenu malveillant dans cette
session. Si cette connexion est une session telnet, les attaquants peuvent injecter des
commandes malveillantes (par exemple la suppression d'un fichier important) dans
cette session, obligeant les victimes à exécuter les commandes malveillantes. La figure 9
illustre le fonctionnement de l'attaque.
15/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Figure 9. L’attaque de piratage de session TCP. Dans cet exemple, l'attaquant détourne la
session TCP et envoie "Z" au serveur au nom du client
Dans cette tâche, vous devez montrer comment vous pouvez détourner une session
telnet entre deux ordinateurs. Votre objectif est d'amener le serveur telnet à exécuter
une commande malveillante de votre part. Pour la simplicité de la tâche, nous supposons
que l'attaquant et la victime sont sur le même LAN.
16/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
exemple pour observer le protocole dans WireShark, vous devez recréer ce fichier afin
qu'il puisse être supprimé dans une session détournée.
Compte rendu de TP
Vous devez soumettre un compte rendu de TP, qui décrive en détail la réalisation des
diverses tâches du TP. Il doit couvrir les sections suivantes :
Si vous avez modifié votre compte rendu de TP sur un système distinct, copiez-le de
nouveau sur le système Linux à l'emplacement identifié lorsque vous avez démarré le TP
(voir l’étape 3 de la tâche 2), et faites-le avant d'exécuter la commande stoplab.
stoplab tcpip
Lorsque vous arrêtez le TP, le système affiche un chemin vers un fichier zip (compressé),
qui montre les résultats actuels de votre travail. Envoyez ce fichier zip à mon adresse e-
mail (y.sadqi@usms.ma).
17/18
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Références :
VirtualBox :
o Documentation officiel (en anglais)
o Tutoriels en français
Introduction à Netstat
Guide officiel de l'outil nping
18/18