diff --git a/content/03_vlan_hopping.md b/content/03_vlan_hopping.md index 45d8a8c216778790b3a5be2b67c6078593352c6f..214d72bacc9ea98588c6f53dc9eb7dd3d05c7c57 100644 --- a/content/03_vlan_hopping.md +++ b/content/03_vlan_hopping.md @@ -324,8 +324,8 @@ fois-ci avec succès. ### Double tagging `Scapy` -Ci-dessous se trouve le script grâce auquel nous pourrons effectuer une par -_double-tagging_. +Ci-dessous se trouve le script grâce auquel nous pourrons effectuer une attaque +par _double-tagging_. ```python from scapy.all import * @@ -398,4 +398,134 @@ mitiger cette attaque ? Pourquoi ? ### Double tagging `iproute2` +Ci-dessous, se trouvent les commandes utilisées afin de configurer les 2 +interfaces virtuelles nécéssaires à l'implémentation de l'attaque par "double- +tagging" : + +```bash +sudo ip link add link eth0 name eth0.1 type vlan id 1 +sudo ip link add link eth0.1 name eth0.1.100 type vlan id 100 +sudo ip addr add 10.0.0.3/24 dev eth0.1.100 +``` + +Par la suite, nous avons effectué un ping depuis `kali-linux-1` jusqu'à H2 +(10.0.0.2) se situant sur le VLAN 100 avec la commande suivante qui permet +de spécifier l'interface à partir de laquelle envoyer le message ICMP : + +```bash +ping -I eth0.1.100 10.0.0.2 +``` + +Sur l'image ci-dessous, nous pouvons effectivement remarquer que notre paquet +a réussi à atteindre H2 depuis `kali-linux-1` car notre paquet ICMP contenait +2 tags (1 pour le VLAN 1 qui est retiré lors de l'arrivée sur le switch S1, puis +le tag restant permet d'atteindre un hôte se situant sur le VLAN du second tag, +en l'occurrence H2 se situant sur le VLAN 100). + + + ### Sécurisation des switches + + +1. Renommer les VLANs (ne pas avoir de nom du style VLAN0100) : + - VLAN 100 $\Rightarrow$ H1-H2 : + ``` + S1#vlan database + % Warning: It is recommended to configure VLAN from config mode, + as VLAN database mode is being deprecated. Please consult user + documentation for configuring VTP/VLAN in config mode. + + S1(vlan)#vlan 100 name H1-H2 + VLAN 100 modified: + Name: H1-H2 + S1(vlan)#exit + APPLY completed. + Exiting.... + ``` + - VLAN 200 $\Rightarrow$ H3-H4 : + + ``` + S1#vlan database + % Warning: It is recommended to configure VLAN from config mode, + as VLAN database mode is being deprecated. Please consult user + documentation for configuring VTP/VLAN in config mode. + + S1(vlan)#vlan 200 name H3-H4 + VLAN 200 modified: + Name: H3-H4 + S1(vlan)#exit + APPLY completed. + Exiting.... + ``` + +2. Désactivation de l'interface GigabitEthernet0/3 sur S1 : + - Commande : + ``` + S1#conf t + Enter configuration commands, one per line. End with CNTL/Z. + S1(config)#interface GigabitEthernet 0/3 + S1(config-if)#shutdown + ``` + + - Vérification avec `sh interface GigabitEthernet0/3 switchport` : + + ``` + Operational Mode: down + ``` + +3. Désactivation de DTP à l'aide de la commande `switchport nonegotiate` (du +côté de S1 ainsi que S2) : + + - Commandes à effectuer afin de passer l'interface `GigabitEthernet0/0` en + `nonegotiate` : + ``` + S1#conf t + S1(config)#interface GigabitEthernet 0/0 + S1(config-if)#switchport trunk encapsulation dot1q + S1(config-if)#switchport mode trunk + S1(config-if)#switchport nonegotiate + S1(config-if)#no shut + ``` + + - Vérification avec `sh interface GigabitEthernet0/0 switchport` : + + ``` + Negotiation of Trunking: Off + ``` + +4. Changement de la valeur du VLAN natif (1 $\Rightarrow$ 999) sur S1 et S2 : + + - Commandes à effectuer sur S1 et S2 : + ``` + S1#conf t + S1(config)#interface GigabitEthernet 0/0 + S1(config-if)#switchport trunk native vlan 999 + S1(config-if)#no shut + ``` + + - Vérification avec `sh interface trunk` (ex: sur S2) : + + ``` + S2#sh interface trunk + + Port Mode Encapsulation Status Native vlan + Gi0/0 on 802.1q trunking 999 + + Port Vlans allowed on trunk + Gi0/0 1-4094 + + Port Vlans allowed and active in management domain + Gi0/0 1,100,200 + + Port Vlans in spanning tree forwarding state and not pruned + Gi0/0 1,100,200 + S2# + ``` + +5. Vérification des mesures de sécurité mise en place : + - Sur l'image ci-dessous on peut observer une tentative d'attaque grâce à + `scapy` après avoir mis en place les mesures de sécurité citées ci-dessus. + Nous pouvons effectivement remarquer que le paquet ICMP ne traverse plus le + switch S2 comme il le fesait auparavant. + +  diff --git a/figs/arp_packet_h2-kali.png b/figs/arp_packet_h2-kali.png new file mode 100644 index 0000000000000000000000000000000000000000..f405a56d267ff9a508c85ebe0e975c3b969632d3 Binary files /dev/null and b/figs/arp_packet_h2-kali.png differ diff --git a/figs/merci_gluck.png b/figs/merci_gluck.png new file mode 100644 index 0000000000000000000000000000000000000000..2c12adf7eb6dee5996eeff7f91ad449e493ed643 Binary files /dev/null and b/figs/merci_gluck.png differ diff --git a/figs/ntm.png b/figs/ntm.png new file mode 100644 index 0000000000000000000000000000000000000000..c79483171dd428ac65863610453d43242a8bf45c Binary files /dev/null and b/figs/ntm.png differ diff --git a/figs/secu_done_labo3.png b/figs/secu_done_labo3.png new file mode 100644 index 0000000000000000000000000000000000000000..3604cff117549fdff1a69d9741316bc595d78604 Binary files /dev/null and b/figs/secu_done_labo3.png differ