diff --git a/content/01_labo1_macflooding.md b/content/01_labo1_macflooding.md index 5e3079779d0ba86219f222e9856691cd6c98dd5f..a1384ed4ae1dafc0744a793c7d07324085540a61 100644 --- a/content/01_labo1_macflooding.md +++ b/content/01_labo1_macflooding.md @@ -94,3 +94,71 @@ paquet à H1 depuis une un hôte possedant une adresse MAC aléatoire. ## Attaque du MAC flooding + +Installer macof.py et initialiser la machine H1 avec les commandes suivantes + + +```bash +dhclient -v mgmt0 +apt update +apt -y --no-install-recommends install git python3-pip python-is-python3 tcpreplay +pip3 install scapy +git clone https://github.com/WhiteWinterWolf/macof.py.git +cd macof.py +chmod 755 macof.py && cp macof.py /usr/local/bin/ +hostnamectl set-hostname H1 +ip addr add 10.0.0.1/24 dev eth0 +ip link set up dev eth0 +ip link set dev eth0 addr 00:00:00:00:00:01 +exit +``` +La machine H2 sera initialisée avec les commandes suivantes + +```bash +hostnamectl set-hostname H2 +ip addr add 10.0.0.2/24 dev eth0 +ip link set up dev eth0 +ip link set dev eth0 addr 00:00:00:00:00:02 +exit +``` + +Et la machine H3 + +```bash +hostnamectl set-hostname H3 +ip addr add 10.0.0.3/24 dev eth0 +ip link set up dev eth0 +ip link set dev eth0 addr 00:00:00:00:00:03 +exit +``` + +## Attaque du LAN par macflooding + +1. Une attaque par "macflooding" consiste à remplir la mémoire CAM (_Content +Addressable Memory_) des switches en remplissant la table des adresses MACs +jusqu'à ce qu'il n'y ait plus de place pour stocker de nouvelles adresses MACs. + +Dès que la table MAC d'un des switches est pleine, il passera en mode _"fail-open"_ +ce qui signifie que tout trafic qui n'a pas d'entrée dans la CAM sera floodé sur +tous les ports associés au VLAN du port d'entrée. Cela implique que tous les +switches connecté sur le même VLAN sont vulnérables à ce genre d'attaque. + +2. La commande `macof.py -i eth0 -c 8192 -w 1` a été exécuté sur H1. + +3. Le trafic envoyé depuis H1 sera floodé sur tous les ports du switches auxquels +sont connectés les hôtes (e.g. H1-S1, H2-S1 et H3-S1). Cela signifie que le +trafic sur tous les liens sera congestionné. + +4. L'outil `macof` est utilisé pour effectuer des attaques de types "_macflooding_". +Il genère des adresses MAC aléatoires et par la suite envoie des paquets afin de +surcharger les tables MACs des switches. + +L'option `-c` -- "_count_" de l'outil `macof` spécifie la quantité de paquets +que l'on souhaite envoyé. En ce qui concerne l'argument `-w` -- "_wait_", fait une +attente de la quantité spécifiée en ms entre chaque envoie de paquets. + +5. On peut affirmer que le LAN dysfonctionne car la table MAC du switch S1 est +pleine. Par conséquent aucune nouvelle entrée ne sera ajoutée et les paquets de +ces nouvelles entrées seront floodés sur tous les ports. Le switch passe en mode +`fail-open` de que la table MAC d'un switch a atteint sa capacité de stockage +maximale d'adresses MAC, en l'occurrence la quantité maximale est de $2^{13} == 8192$