Vous êtes sur la page 1sur 5

Attaque sur Switch

1. Attaque sur switch : MAC overflow

But du TP : Le but de cette attaque est de saturer la table MAC du switch afin de le forcer à
se comporter comme un hub.

Sur le PC Hacker, installez DSniff :

apt-get -y install dsniff

Sur le Raspberry Pi, installez un serveur FTP :

http://sdz.tdct.org/sdz/creer-son-serveur-ftp.html

Vous devez maintenant mettre en place cette architecture isolée du réseau de l'IUT.

Un switch possède une table MAC qui permet de faire la correspondance entre un port et une
adresse MAC. Cette dernière lui permet de n'envoyer les trames que sur le port ou se situe le
destinataire.

Le MAC Overflow consiste à envoyer un grand nombre d'adresses MAC générées aléatoirement pour
saturer la table MAC du commutateur.
Il faut noter que certains commutateurs n'ont pas de taille de table MAC fixe, ils sont cependant
limités par leurs ressources physiques.

Une fois la table saturée, les hôtes qui communiqueront ne pourront pas avoir leur MAC enregistrées
sur la table MAC, et dans ce cas le switch réagira en transmettant la trame sur tout les ports.
Cette attaque nous permet de ne capturer des trames que si le poste n'est pas encore présent dans
la table MAC. Sinon il faudra attendre la fin du "Aging time". Ce dernier correspond au temps
pendant lequel le commutateur va garder une @MAC dans sa table (300s par défaut chez cisco). Il
est remis à zéro à chaque fois qu'une trame est reçu de cette adresse pour que le commutateur se
souvienne des équipements actifs.

Réalisez un programme qui enverra en boucle 10000 paquets de ce type :


packet = Ether(src=RandMAC(),dst=RandMAC())/IP(src=RandIP(),dst=RandIP())

relever ici votre script python :

. . . .
. . . .

Lancez l'attaque, puis vérifiez avec wireshark que les communications entre PC victime et Serveur
FTP sont bien reçues par votre interface.

Lancez DSniff :
dsniff -i eth0

Tentez une connexion du PC Victime vers le serveur FTP avec login/mdp.

Conclusion ?

Quelle(s) parade(s) proposez-vous ?

2. Attaque sur Switch : perturbation du protocole STP


2.1. Topologie
But du TP : Le protocole Spanning-Tree (STP) a été conçu pour éviter la redondances
réseau. Le but est donc de réaliser une attaque sur deux commutateurs pour devenir « pont
racine » (root bridge), et éventuellement configurer et sécuriser le switch pour empêcher
cette attaque.
Avant de brancher vos switchs, veillez à activer le spanning-tree sur tous les switch, car nous allons
réaliser une boucle.

Rappel :

pritorité du switch par vlan :

spanning-tree vlan numeroVLAN priority valeur n fois 4096 (par défaut 32768)

spanning-tree vlan numeroVLAN root primary (secondary)

désactiver : no spanning-tree vlan numéroVLAN

mode :

spanning-tree mode pvst

spanning-tree mode rapid-pvst

port de périphérie :

spanning-tree portfast (désactive STP pour les hôtes)

spanning-tree portfast default (sur tout les ports non-trunk)

spanning-tree bpduguard enable (protège les portfast qui reçoivent des trames BPDU)

spanning-tree bpduguard default (sur tout les portfast)

commandes show :

show spanning-tree vlan numéroVLAN

debug spanning-tree events

Réalisez la topologie suivante :


Configurer Switch0 pour qu'il soit "root" du protocole STP, avec une priorité de 1000.

Vérifiez à l'aide des commandes adéquates sur switch2, que le spanning-tree est bien fonctionnel et
que Switch0 est bien root.

Lancez Wireshark afin de capturer des trames BPDU et vérifiez leur contenu.

2.2 Construction de l'attaque


L'idée de l'attaque va être d'utiliser scappy pour forger une trame de type BPDU.

Notre poste pourra ainsi se faire passer pour un switch et devenir "root" à la place de switch0. Cette
attaque aura pour effet de modifier et perturber le fonctionnement du réseau.

Déterminez l'adresse MAC de votre PC Hacker = MAChacker

L'adresse MAC multicast de destination du protocole STP est une adresse réservée.

MACstp = 01:80:c2:00:00:00

Forgez le paquet suivant dans un programme python :

dot3 = Dot3(src="???",dest="???")

stp = STP(bpdutype=0,rootid=100,rootmac="???",bridgeid=100,bridgemac="01:02:03:04:05:06")

send( dot3/LLC()/stp , iface="???" , count=1000 )

Lancez votre attaque. En vous connectant sur le switch2, vérifiez quel est le nouveau switch root.
Conclusion ?

Modification de l'attaque :
Modifiez votre programme pour que l'attaque soit lancée toutes les 30 secondes.

Transférez un fichier lourd entre PC client et serveur. Qu'observez- vous ?

2.3. Protection contre l'attaque


Activez le BPDUguard sur l'interface où est connecté l'attaquant.

Vérifiez maintenant la réaction de switch2 en relançant l'attaque. Que se passe-t-il ?

Faites un transfert de fichier à nouveau. Conclusion ?

Vous aimerez peut-être aussi