🌊

Test de l'attaque DOS — MAC Flooding

Étude du comportement d'un commutateur face à une saturation de table MAC

📚 Matière
Cyber-Sécurité
📅 Date
13 novembre 2025
☑️ État
Terminé
⚔️ Type d'attaque
DOS MAC Flooding
🛠️ Outil
Macof (Kali Linux)
🛡️ Contre-mesure
Port-Security

⚠️
Avertissement : Ce TP est réalisé dans un environnement de laboratoire isolé à des fins pédagogiques uniquement. Toute attaque non autorisée sur des systèmes tiers est illégale.
📋 Table des matières
IntroComprendre le MAC Flooding §1Équipements — Adresses IP et MAC §2Configuration et observations initiales §3Modification du temps d'aging §4Observation du trafic depuis PC0 (Windows) §5Simulation de la saturation MAC §6Observations après surcharge §7Protection — Port-Security §8Conclusion
🎯
Comprendre le MAC Flooding
Principe de l'attaque et objectifs du TP

Le MAC Flooding consiste à surcharger la table CAM d'un commutateur avec des milliers d'adresses MAC. Dès que celle-ci est saturée, le commutateur passe dans le mode de secours « fail open » où tous les ports se retrouvent dans le VLAN natif — il se comporte alors comme un simple HUB.

Il est alors aisé pour l'attaquant d'avoir accès à des VLANs normalement non accessibles. L'outil Macof de Kali Linux permet de mener ce genre d'attaque.

🎯
Objectifs du TP :
  • Observer le comportement d'un commutateur face à une grande quantité d'adresses MAC
  • Analyser l'impact sur la table CAM, la latence et l'usage CPU
  • Mettre en place une protection via Port-Security
01
🖥️ Équipements — Adresses IP et MAC
Tableau de référence du réseau de test
Topologie — Attaque DOS MAC Flooding Routeur 192.168.10.254 001B.54DB.34D7 Switch Table CAM 192.168.10.10 PC0 (Windows) 192.168.10.1 Victime — ping -t PC1 (Kali) 192.168.10.2 macof -i eth0 @MAC flood Table CAM saturée → mode fail-open (HUB) Port-Security maximum 3 MACs violation restrict 🛡️ protection
Windows 10 (PC0) 192.168.10.1 0A-00-27-00-00-09 Victime — monitoring
Kali Linux (PC1) 192.168.10.2 0800.2748.EA1F Attaquant — macof
Switch 192.168.10.10 Port 1 : 0C27.2444.1481
Port 2 : 0C27.2444.1482
Port 24 : 0C27.2444.1492
Cible de l'attaque
Routeur 192.168.10.254 001B.54DB.34D7 Passerelle — cible du ping
02
🔍 Configuration et observations initiales
Consultation de la table CAM avant l'attaque

Ces commandes donnent les valeurs de référence avant l'attaque.

Switch (Cisco IOS)
! Afficher la durée de vie des adresses MAC (aging-time)
show mac address-table aging-time

! Afficher le nombre d'adresses MAC enregistrées
show mac address-table count

! Afficher toute la table CAM
show mac address-table
📌
show mac address-table aging-time → Affiche la durée de vie (aging-time) des adresses MAC dans la table CAM.
show mac address-table count → Indique combien d'adresses MAC sont actuellement enregistrées.
Ces valeurs servent de référence pour comparer avec l'état après l'attaque.
03
⏱️ Modification du temps d'aging
Augmenter le délai pour faciliter l'observation

Pour rendre les observations plus visibles, on ajuste la durée de conservation des adresses MAC à 10 minutes (600 secondes). Cela garantit que les adresses injectées restent assez longtemps pour être analysées.

Switch (Cisco IOS)
conf t
mac address-table aging-time 600
! 600 secondes = 10 minutes
💡
Par défaut, l'aging-time est de 300 secondes (5 min). On le double pour avoir le temps d'observer et d'analyser la table CAM pendant et après l'attaque.
04
🏓 Observation du trafic depuis PC0 (Windows)
Ping en boucle + analyse CPU du switch

Depuis PC0, on mesure le délai de communication avec le routeur. La stabilité du ping indique le comportement normal du réseau avant l'attaque.

PC0 — Windows 10
Ping en boucle vers le routeur (laisser tourner en arrière-plan)
C:\> ping 192.168.10.254 -t

Analyse CPU du switch avant l'attaque

Switch (Cisco IOS)
! Historique CPU : 60s / 60min / 72h
show processes cpu history
📌
show processes cpu history affiche un graphique en 3 périodes :
60 secondes — vue très récente
60 minutes — tendance à court terme
72 heures — tendance long terme
Un CPU faible (< 20%) est normal au repos.
05
💀 Simulation de la saturation MAC
Macof — injection massive d'adresses MAC depuis Kali
🚨
Depuis Kali Linux (PC1) : utiliser la commande macof pour inonder le commutateur avec un grand nombre d'adresses MAC aléatoires.
Kali Linux — PC1
# Inonder le switch avec 1 000 000 d'adresses MAC via eth0
macof -i eth0 -n 1000000

# Variante avec moins d'adresses pour un test rapide
macof -i eth0 -n 10000
⚠️
Pendant l'exécution de macof, observer en parallèle sur PC0 :
• L'augmentation de la latence du ping (-t)
• Sur le switch : show mac address-table count → table en cours de remplissage
• Sur le switch : show processes cpu history → montée en charge CPU

Quand la table CAM est saturée, le switch passe en mode fail-open et diffuse tous les paquets sur tous les ports — comportement d'un HUB. Stopper macof après l'observation.

06
📊 Observations après surcharge de la table MAC
CPU · Table CAM · Comparaison avec l'état initial

Vérifier la montée en charge CPU

Switch (Cisco IOS)
! Observer les pics CPU liés au traitement intensif de trames
show processes cpu history
📌
Pendant l'attaque, la courbe CPU doit montrer des pics significatifs (50-100%) liés au traitement intensif de milliers de trames par seconde.

Consulter la table CAM saturée

Switch (Cisco IOS)
! Voir les adresses MAC enregistrées (entrées DYNAMIC très nombreuses)
show mac address-table

! Comptage
show mac address-table count
📋 Exemple de table CAM après attaque (extrait)
Vlan Mac Address Type Ports ---- ----------- ------ ----- 1 0005.b750.8ea2 DYNAMIC Fa0/2 1 0007.b649.1693 DYNAMIC Fa0/2 1 000c.0056.07a2 DYNAMIC Fa0/2 1 001b.54db.34d7 DYNAMIC Fa0/24 ← Routeur 1 0030.5d79.4b88 DYNAMIC Fa0/2 1 0054.d74f.a999 DYNAMIC Fa0/2 ... (milliers d'entrées injectées par macof)

Toutes les entrées DYNAMIC sur Fa0/2 (port de Kali) sont des adresses MAC fausses injectées par macof. Le routeur reste visible sur Fa0/24.

07
🛡️ Protection — Port-Security
Limiter le nombre d'adresses MAC apprises par port

Pour éviter qu'un port apprenne un nombre trop élevé d'adresses MAC, on active la sécurité de port (Port-Security). Cette fonction limite le nombre d'adresses autorisées et définit un comportement en cas de violation.

💡
Prérequis : Le port doit être en mode access avant d'activer Port-Security. La commande switchport mode access est donc obligatoire.

Configuration Port-Security sur Fa0/2

Switch (Cisco IOS)
interface fastethernet 0/2
  switchport mode access              ! Obligatoire avant Port-Security
  switchport port-security             ! Active la sécurité
  switchport port-security maximum 3   ! Max 3 adresses MAC
  switchport port-security mac-address 74d4.35e1.fcb5  ! MAC autorisée
  switchport port-security violation restrict  ! Mode violation

Explication de chaque commande

CommandeEffet
switchport mode accessPasse le port en mode accès (obligatoire pour Port-Security)
switchport port-securityActive la sécurité sur le port
switchport port-security maximum 3Le port ne peut apprendre qu'un maximum de 3 adresses MAC
switchport port-security mac-address XAjoute une MAC autorisée manuellement (optionnel)
switchport port-security violation restrictPort actif, MAC non autorisées bloquées + logs générés

Les 3 modes de violation

1
restrict — Mode recommandé
Le port reste actif. Les MAC non autorisées sont bloquées silencieusement. Un log de violation est généré. Le compteur de violations s'incrémente.
2
protect — Mode silencieux
Le port reste actif. Les MAC non autorisées sont ignorées. Aucun log généré. Moins visible mais moins informatif.
3
shutdown — Mode strict
Le port est désactivé immédiatement en cas de violation. Nécessite une intervention manuelle pour le réactiver (no shutdown).

Vérification de Port-Security

Switch (Cisco IOS)
! Vérifier la configuration Port-Security sur une interface
show port-security interface fastethernet 0/2

! Vue globale de tous les ports sécurisés
show port-security

! Voir les adresses MAC sécurisées apprises
show port-security address
Après activation de Port-Security, relancer macof depuis Kali — le port doit maintenant bloquer les adresses en excès et le switch ne doit plus être saturé.
08
✅ Conclusion
Ce que ce TP démontre
📚
Référence : BLOC 3 SISR — Mr Lebatteur François
Contre-mesure complémentaire : Dynamic ARP Inspection (DAI) et DHCP Snooping pour une protection plus complète de la couche 2.

BTS SIO SISR — Cyber-Sécurité — TP DOS MAC Flooding — Kali Linux + Cisco Switch