VLAN hopping je útok, ktorého cieľom je získať prístup do sieťových segmentov, do ktorých by užívateľ za normálnych okolností nemal mať prístup. Ukážeme si jednu z metód, ktorá zneužíva zraniteľnosť protokolu DTP (Dynamic Trunking Protocol), vďaka čomu útočník získa prístup do všetkých dostupných VLAN na switchi.
DTP je proprietárny protokol spoločnosti Cisco. Jeho zraniteľnosť spočíva priamo v jeho základnej funkcionalite a síce v dynamickej negociácii switcha a zariadenia, ktoré je do neho pripojené, či ich vzájomný prepoj bude tagovaný (trunk), alebo netagovaný (access). Má niekoľko možných nastavení, ktoré si môžete pozrieť napríklad tu.
Čo je horšie, defaultná konfigurácia portov na Cisco switchoch je v DTP móde „Dynamic desirable“, čo znamená, že útočníkovi stačí, aby si na svojom počítači nastavil port na tagovaný (trunk) a okamžite získa prístup do všetkých VLAN. Administrátor, pritom mohol chcieť umožniť prístup iba do implicitnej VLAN 1.
Základná konfigurácia portu na switchi, kam je pripojený útočník.
Potvrdenie, že port je v DTP móde „Dynamic desirable“. Po pripojení zariadenia s netagovaným portom sa port negociuje do netagovaného módu (static access) a má prístup iba do VLAN 1.
Nižšie môžeme vidieť konfiguráciu routra, kde sú ukončené testovacie VLAN 10 a 20, ku ktorým budeme chcieť získať prístup.
VLAN hopping – zahájenie útoku
Použijeme nástroj Yersinia, ktorý sa nachádza na linuxovej distribúcii KALI, rovnako, ako v ostatných návodoch, kde sme sa venovali penetračnému testovaniu a etickému hackingu.
Yersiniu spustíme nasledovným spôsobom:
root@kali:~#yersinia -G
Po kliknutí na záložku DTP:
spustíme útok: Launch attack -> Enabling trunking
vypneme útok: List attacks -> Cancel attack
Vyskočí nám nasledovné okno, klikneme na „Enabling trunking“ a potvrdíme tlačidlom OK.
V nástroji Yersinia môžeme vidieť, aké VLAN máme k dispozícii. V našom prípade VLAN 10 a 20.
Po zahájení útoku – vytvorený trunk
Môžeme si zapnúť na switchi debug DTP, aby sme videli, čo sa deje na pozadí tohto protokolu.
#debug dtp events
Keď si pozrieme, čo sa zmenilo na porte, kam je pripojený útočník, zistíme, že sa zmenil na tagovaný (trunk).
Nižšie môžeme vidieť, že má k dispozícii prístup do všetkých VLAN.
Vytvorenie subinterfacov na útočnej stanici
Aby sme sa z útočnej stanice vedeli dostať na zariadenia vo VLAN 10 a VLAN 20, je potrebné, aby sme na nej vytvorili tagované subinterface-y s IP adresami z daných subnetov. Môžeme tak urobiť nasledovným spôsobom.
#modprope 8021q #vconfig add eth0 10 #ifconfig eth0.10 up #ifconfig eth0.10 192.168.10.2/24 #vconfig add eth0 20 #ifconfig eth0.20 up #ifconfig eth0.20 192.168.20.2/24
Konfiguráciu môžeme overiť pomocou príkazu ifconfig.
Úspešný ping na oba subinterface-y z útočnej stanice na router potvrdzuje, že sme získali prístup do oboch VLAN.
Ako sa brániť proti útoku VLAN hopping?
Sú dve veci, ktorým sa vyhneme útoku, ktorý popisujem vyššie.
1. Nasledovným príkazom vypneme DTP:
Switch(config-if)# switchport nonegotiate
2. Explicitne definujeme, či má byť port tagovaný, alebo netagovaný.
Switch(config-if)# switchport mode access