Aujourd'hui nous allons étudier la compromission d'un réseau délimité physiquement et virtuellement par l'attaque dite par "sauts de VLAN". Cette attaque concerne les équipements et les environnements de la couche numéro 2 du modèle OSI : la couche de liaison de données. Cette dernière est chargée de gérer les flux de données transitant à travers le réseau, de le segmenter et d'en gérer les erreurs.
NB: afin de comprendre pleinement ce tutoriel, je conseille aux novices d'étudier le modèle OSI et les 7 couches qui le composent, ainsi que le principe de fonctionnement des commutateurs réseau (switch).
I) Pré-requis
Un VLAN est un domaine logique de diffusion attaché aux réseaux de niveau 2: les réseaux Ethernet. Il permet entre autre la simplification de la gestion des ports physiques des commutateurs, la gestion des flux et surtout la sécurisation de certaines zones du réseau en les isolant les unes les autres par l'intermédiaire des commutateurs. Ainsi, si un point A est séparé d'un point B par un VLAN, les données ne pourront pas transiter entre les deux.
Le protocole IEEE 802.1Q, intégré dans la plupart des équipements (connectés au commutateur), permet d'agréger les VLAN afin de maintenir des barrières logiques.
Les trames IEEE 802.3 (standard Ethernet) émises par un équipement vers un autre équipement dans le même VLAN (donc connecté au même commutateur) ne sont pas altérées par le commutateur.
Si ils ne sont pas dans le même VLAN, la trame IEEE 802.3 émise se verra assigner une étiquette 802.1Q afin d'être reconnue par l'autre commutateur, cela permet de valider le droit de la trame à transiter entre deux VLAN différents.
Cependant, dans la majorité des réseaux actuels, les équipements n'ont pas tous la même ancienneté, et certains équipements récents (ne gérant plus la norme IEEE 802.1Q) doivent continuer de dialoguer avec d'anciens équipements, c'est pour cela qu'il existe un VLAN natif qui permet d'envoyer des trames sans étiquettes afin d'être comprises par tous les équipements.
II) Attaque
Notre but est d'arriver, depuis un ordinateur en dehors du réseau, à envoyer une trame à une machine située dans un VLAN différent du nôtre, et donc protégée. Pour cela, nous allons utiliser une faiblesse du protocole IEEE 802.1Q, qui autorise la double encapsulation des trames.
Ainsi, nous la machine H voulons envoyer une trame non-autorisée à la machine B. Pour cela, nous émettons une trame doublement étiquetée vers la machine B ; cette trame ressemble donc à ceci:
---------------------
802.1Q - 802.1Q
---------------------
Le commutateur qui reçoit cette trame va alors automatiquement modifier le premier champ qui correspond, comme on l'a vu plus haut, au VLAN natif en lui enlevant son étiquette 802.1Q. Le commutateur va agréger les VLAN, ce qui signifie que le VLAN natif devient un VLAN (machine H) normal. Notre trame, après passage du premier commutateur est comme ceci:
----------------------
802.1Q - trame H
----------------------
Puis cette trame arrive au deuxième commutateur (celui de la machine B ). Il voit qu'il y a un champ "802.1Q" dans cette trame, donc il se dit que cette trame est autorisée car elle possède une étiquette 802.1Q. Il enlève donc cette étiquette et dirige notre trame:
-----------
trame H
-----------
vers la machine B. Cette trame est bien sûr modifiée par nos soins de manière à contenir l'exécution d'un remote shell ou autre. Grâce au double étiquetage, nous avons fait passer une trame altérée non-autorisée pour une trame valide et nous avons pris le contrôle de la machine B qui, elle, maintient des relations de confiance avec son VLAN local et tous les autres VLAN.
NB: afin de comprendre pleinement ce tutoriel, je conseille aux novices d'étudier le modèle OSI et les 7 couches qui le composent, ainsi que le principe de fonctionnement des commutateurs réseau (switch).
I) Pré-requis
Un VLAN est un domaine logique de diffusion attaché aux réseaux de niveau 2: les réseaux Ethernet. Il permet entre autre la simplification de la gestion des ports physiques des commutateurs, la gestion des flux et surtout la sécurisation de certaines zones du réseau en les isolant les unes les autres par l'intermédiaire des commutateurs. Ainsi, si un point A est séparé d'un point B par un VLAN, les données ne pourront pas transiter entre les deux.
Le protocole IEEE 802.1Q, intégré dans la plupart des équipements (connectés au commutateur), permet d'agréger les VLAN afin de maintenir des barrières logiques.
Les trames IEEE 802.3 (standard Ethernet) émises par un équipement vers un autre équipement dans le même VLAN (donc connecté au même commutateur) ne sont pas altérées par le commutateur.
Si ils ne sont pas dans le même VLAN, la trame IEEE 802.3 émise se verra assigner une étiquette 802.1Q afin d'être reconnue par l'autre commutateur, cela permet de valider le droit de la trame à transiter entre deux VLAN différents.
Cependant, dans la majorité des réseaux actuels, les équipements n'ont pas tous la même ancienneté, et certains équipements récents (ne gérant plus la norme IEEE 802.1Q) doivent continuer de dialoguer avec d'anciens équipements, c'est pour cela qu'il existe un VLAN natif qui permet d'envoyer des trames sans étiquettes afin d'être comprises par tous les équipements.
II) Attaque
Notre but est d'arriver, depuis un ordinateur en dehors du réseau, à envoyer une trame à une machine située dans un VLAN différent du nôtre, et donc protégée. Pour cela, nous allons utiliser une faiblesse du protocole IEEE 802.1Q, qui autorise la double encapsulation des trames.
Ainsi, nous la machine H voulons envoyer une trame non-autorisée à la machine B. Pour cela, nous émettons une trame doublement étiquetée vers la machine B ; cette trame ressemble donc à ceci:
---------------------
802.1Q - 802.1Q
---------------------
Le commutateur qui reçoit cette trame va alors automatiquement modifier le premier champ qui correspond, comme on l'a vu plus haut, au VLAN natif en lui enlevant son étiquette 802.1Q. Le commutateur va agréger les VLAN, ce qui signifie que le VLAN natif devient un VLAN (machine H) normal. Notre trame, après passage du premier commutateur est comme ceci:
----------------------
802.1Q - trame H
----------------------
Puis cette trame arrive au deuxième commutateur (celui de la machine B ). Il voit qu'il y a un champ "802.1Q" dans cette trame, donc il se dit que cette trame est autorisée car elle possède une étiquette 802.1Q. Il enlève donc cette étiquette et dirige notre trame:
-----------
trame H
-----------
vers la machine B. Cette trame est bien sûr modifiée par nos soins de manière à contenir l'exécution d'un remote shell ou autre. Grâce au double étiquetage, nous avons fait passer une trame altérée non-autorisée pour une trame valide et nous avons pris le contrôle de la machine B qui, elle, maintient des relations de confiance avec son VLAN local et tous les autres VLAN.
Commentaire