.. | ||
cisco-snmp.md | ||
README.md | ||
snmp-rce.md |
161,162,10161,10162/udp - SNMP पेंटेस्टिंग
AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे या HackTricks को PDF में डाउनलोड करें, तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- 💬 Discord समूह में शामिल हों या telegram समूह में या Twitter पर 🐦 @carlospolopm को फॉलो करें.
- अपनी हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud github repos में PRs सबमिट करके.
बग बाउंटी टिप: Intigriti के लिए साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा, हैकर्स के लिए बनाया गया है! आज ही हमसे https://go.intigriti.com/hacktricks पर जुड़ें, और $100,000 तक के बाउंटीज कमाना शुरू करें!
{% embed url="https://go.intigriti.com/hacktricks" %}
मूल जानकारी
SNMP - Simple Network Management Protocol एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों (जैसे राउटर्स, स्विचेस, प्रिंटर्स, IoTs...) की निगरानी के लिए किया जाता है।
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
{% hint style="info" %} SNMP पोर्ट 162/UDP का भी उपयोग traps के लिए करता है। ये डेटा पैकेट्स होते हैं जो SNMP सर्वर से क्लाइंट को बिना स्पष्ट रूप से अनुरोध किए भेजे जाते हैं। {% endhint %}
MIB
यह सुनिश्चित करने के लिए कि SNMP एक्सेस विभिन्न निर्माताओं के साथ और विभिन्न क्लाइंट-सर्वर संयोजनों के साथ काम करता है, Management Information Base (MIB) बनाया गया था। MIB एक स्वतंत्र प्रारूप है जो डिवाइस जानकारी को संग्रहीत करता है। MIB एक पाठ फ़ाइल है जिसमें एक डिवाइस के सभी पूछताछ योग्य SNMP ऑब्जेक्ट्स को एक मानकीकृत वृक्ष पदानुक्रम में सूचीबद्ध किया गया है। इसमें कम से कम एक Object Identifier
(OID
) होता है, जो आवश्यक अद्वितीय पते और एक नाम के अलावा, प्रत्येक ऑब्जेक्ट के प्रकार, पहुँच अधिकार, और विवरण की जानकारी भी प्रदान करता है।
MIB फ़ाइलें Abstract Syntax Notation One
(ASN.1
) आधारित ASCII पाठ प्रारूप में लिखी जाती हैं। MIBs में डेटा नहीं होता है, लेकिन ये बताते हैं कि कौन सी जानकारी कहाँ मिलेगी और यह कैसी दिखती है, विशिष्ट OID के लिए कौन से मान लौटाए जाते हैं, या कौन सा डेटा प्रकार उपयोग किया जाता है।
OIDs
OIDs का मतलब है Object Identifiers। OIDs एक MIB पदानुक्रम में प्रबंधित ऑब्जेक्ट्स की अद्वितीय पहचान करते हैं। इसे एक वृक्ष के रूप में चित्रित किया जा सकता है, जिसके स्तर विभिन्न संगठनों द्वारा निर्धारित किए जाते हैं। शीर्ष स्तर MIB ऑब्जेक्ट IDs (OIDs) विभिन्न मानक संगठनों के होते हैं।
विक्रेता अपने स्वयं के उत्पादों के लिए प्रबंधित ऑब्जेक्ट्स सहित निजी शाखाएँ परिभाषित करते हैं।
आप वेब से एक OID वृक्ष के माध्यम से नेविगेट कर सकते हैं यहाँ: http://www.oid-info.com/cgi-bin/display?tree=#focus या देख सकते हैं कि OID का क्या मतलब है (जैसे 1.3.6.1.2.1.1
) यहाँ पहुँचकर http://oid-info.com/get/1.3.6.1.2.1.1।
कुछ प्रसिद्ध OIDs हैं जैसे 1.3.6.1.2.1 में शामिल हैं जो MIB-2 द्वारा परिभाषित Simple Network Management Protocol (SNMP) चर को संदर्भित करते हैं। और इस OID से लटके हुए आप कुछ दिलचस्प होस्ट डेटा प्राप्त कर सकते हैं (सिस्टम डेटा, नेटवर्क डेटा, प्रोसेस डेटा...)
OID उदाहरण
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
यहाँ इस पते का विश्लेषण है।
- 1 – इसे ISO कहा जाता है और यह स्थापित करता है कि यह एक OID है। इसीलिए सभी OIDs “1” से शुरू होते हैं।
- 3 – इसे ORG कहा जाता है और इसका उपयोग उस संगठन को निर्दिष्ट करने के लिए किया जाता है जिसने डिवाइस बनाया है।
- 6 – यह dod है या रक्षा विभाग जो संगठन है जिसने सबसे पहले इंटरनेट स्थापित किया था।
- 1 – यह इंटरनेट का मूल्य है जो दर्शाता है कि सभी संचार इंटरनेट के माध्यम से होंगे।
- 4 – यह मूल्य निर्धारित करता है कि यह डिवाइस एक निजी संगठन द्वारा बनाया गया है और सरकारी नहीं है।
- 1 – यह मूल्य दर्शाता है कि डिवाइस एक उद्यम या व्यापारिक संस्था द्वारा बनाया गया है।
ये पहले छह मूल्य सभी डिवाइसों के लिए समान होते हैं और वे आपको उनके बारे में मूल जानकारी देते हैं। यह संख्या का अनुक्रम सभी OIDs के लिए समान होगा, सिवाय जब डिवाइस सरकार द्वारा बनाया गया हो।
अगले सेट की संख्याओं पर जाते हुए।
- 1452 – उस संगठन का नाम देता है जिसने यह डिवाइस बनाया है।
- 1 – डिवाइस के प्रकार को समझाता है। इस मामले में, यह एक अलार्म घड़ी है।
- 2 – निर्धारित करता है कि यह डिवाइस एक रिमोट टर्मिनल यूनिट है।
शेष मूल्य डिवाइस के बारे में विशिष्ट जानकारी देते हैं।
- 5 – एक विशिष्ट अलार्म बिंदु को दर्शाता है।
- 1 – डिवाइस में विशिष्ट बिंदु
- 3 – पोर्ट
- 21 – पोर्ट का पता
- 1 – पोर्ट के लिए डिस्प्ले
- 4 – बिंदु संख्या
- 7 – बिंदु की स्थिति
(उदाहरण यहाँ से लिया गया है यहाँ)
SNMP संस्करण
SNMP के 2 महत्वपूर्ण संस्करण हैं:
- SNMPv1: मुख्य एक, यह अभी भी सबसे अधिक बार होता है, प्रमाणीकरण एक स्ट्रिंग पर आधारित होता है (कम्युनिटी स्ट्रिंग) जो प्लेन-टेक्स्ट में यात्रा करता है (सभी जानकारी प्लेन टेक्स्ट में यात्रा करती है)। संस्करण 2 और 2c भी ट्रैफिक को प्लेन टेक्स्ट में भेजते हैं और प्रमाणीकरण के रूप में कम्युनिटी स्ट्रिंग का उपयोग करते हैं।
- SNMPv3: एक बेहतर प्रमाणीकरण रूप का उपयोग करता है और जानकारी एन्क्रिप्टेड रूप में यात्रा करती है (डिक्शनरी अटैक किया जा सकता है लेकिन SNMPv1 और v2 की तुलना में सही क्रेडेंशियल्स खोजना कहीं अधिक कठिन होगा)।
कम्युनिटी स्ट्रिंग्स
जैसा कि पहले उल्लेख किया गया है, MIB पर सहेजी गई जानकारी तक पहुँचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग को जानना होगा और संस्करण 3 पर क्रेडेंशियल्स को जानना होगा।
कम्युनिटी स्ट्रिंग्स के 2 प्रकार होते हैं:
public
मुख्य रूप से केवल पढ़ने के लिए कार्यprivate
पढ़ने/लिखने के लिए सामान्यतः
नोट करें कि OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है, इसलिए यहाँ तक कि अगर आप पाते हैं कि "public" का उपयोग किया जा रहा है, आप कुछ मानों को लिख सकते हैं। यह भी संभव है कि कुछ ऑब्जेक्ट्स **हमेशा "Read Only" होते हैं
apt-get install snmp-mibs-downloader
download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf
यदि आपके पास एक मान्य कम्युनिटी स्ट्रिंग है, तो आप SNMPWalk या SNMP-Check का उपयोग करके डेटा तक पहुँच सकते हैं:
snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 .
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP]
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] 1.3.6.1.2.1.4.34.1.3 #Get IPv6, needed dec2hex
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] NET-SNMP-EXTEND-MIB::nsExtendObjects #get extended
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] .1 #Enum all
snmp-check [DIR_IP] -p [PORT] -c [COMM_STRING]
nmap --script "snmp* and not snmp-brute" <target>
braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID
विस्तारित क्वेरीज़ (download-mibs) की बदौलत, निम्नलिखित कमांड के साथ सिस्टम के बारे में और भी अधिक जानकारी एन्युमरेट करना संभव है:
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
SNMP में होस्ट के बारे में बहुत सारी जानकारी होती है और आपको जो चीजें दिलचस्प लग सकती हैं वे हैं: नेटवर्क इंटरफेस (IPv4 और IPv6 पता), उपयोगकर्ता नाम, अपटाइम, सर्वर/OS संस्करण, और प्रक्रियाएं
चल रही हैं (इसमें पासवर्ड शामिल हो सकते हैं)....
खतरनाक सेटिंग्स
से https://academy.hackthebox.com/module/112/section/1075****
सेटिंग्स | विवरण |
---|---|
rwuser noauth |
प्रमाणीकरण के बिना पूरे OID ट्री तक पहुंच प्रदान करता है। |
rwcommunity <community string> <IPv4 address> |
अनुरोध कहां से भेजे गए थे इसकी परवाह किए बिना पूरे OID ट्री तक पहुंच प्रदान करता है। |
rwcommunity6 <community string> <IPv6 address> |
rwcommunity के समान पहुंच, लेकिन IPv6 का उपयोग करते हुए। |
Microsoft Windows SNMP मानक
MIB मान | विवरण |
---|---|
1.3.6.1.2.1.25.1.6.0 |
सिस्टम प्रक्रियाएं। |
1.3.6.1.2.1.25.4.2.1.2 |
चल रहे कार्यक्रम। |
1.3.6.1.2.1.25.4.2.1.4 |
प्रक्रियाओं का पथ। |
1.3.6.1.2.1.25.2.3.1.4 |
स्टोरेज यूनिट्स। |
1.3.6.1.2.1.25.6.3.1.2 |
सॉफ्टवेयर का नाम। |
1.3.6.1.4.1.77.1.2.25 |
उपयोगकर्ता खाते। |
1.3.6.1.2.1.6.13.1.3 |
TCP स्थानीय पोर्ट्स। |
Cisco
यदि आप Cisco उपकरण हैं, तो इस पृष्ठ को देखें:
{% content-ref url="cisco-snmp.md" %} cisco-snmp.md {% endcontent-ref %}
SNMP से RCE तक
यदि आपके पास वह स्ट्रिंग है जो आपको SNMP सेवा में मान लिखने की अनुमति देती है, तो आप इसका दुरुपयोग करके कमांड्स निष्पादित कर सकते हैं:
{% content-ref url="snmp-rce.md" %} snmp-rce.md {% endcontent-ref %}
व्यापक SNMP
Braa एक व्यापक SNMP स्कैनर है। इस तरह के उपकरण का इरादा, बेशक, SNMP प्रश्न करना है – लेकिन snmpwalk से अलग net-snmp, यह एक साथ दर्जनों या सैकड़ों होस्ट्स को प्रश्न करने में सक्षम है, और एक ही प्रक्रिया में। इस प्रकार, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और स्कैनिंग बहुत तेजी से करता है।
Braa अपना खुद का SNMP स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP लाइब्रेरी की आवश्यकता नहीं है।
सिंटैक्स: braa [Community-string]@[SNMP सर्वर का IP]:[iso id]
braa ignite123@192.168.1.125:.1.3.6.*
यह बहुत सारी जानकारी निकाल सकता है जिसे आप मैन्युअली प्रोसेस नहीं कर सकते।
तो, चलिए सबसे दिलचस्प जानकारी की तलाश करते हैं (स्रोत https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
उपकरण
मैं जो पहली चीजें करता हूँ, वह है प्रत्येक फाइल से sysDesc .1.3.6.1.2.1.1.1.0 MIB डेटा निकालना ताकि यह पता चल सके कि मैंने किन उपकरणों से जानकारी एकत्र की है। यह निम्नलिखित grep कमांड का उपयोग करके आसानी से किया जा सकता है:
grep ".1.3.6.1.2.1.1.1.0" *.snmp
निजी स्ट्रिंग की पहचान करें
उदाहरण के लिए, यदि मैं किसी संगठन द्वारा उनके Cisco IOS राउटर्स पर प्रयुक्त निजी कम्युनिटी स्ट्रिंग की पहचान कर सकता हूँ, तो मैं उस कम्युनिटी स्ट्रिंग का उपयोग करके उन राउटर्स से चल रहे कॉन्फ़िगरेशन को निकाल सकता हूँ। ऐसे डेटा को खोजने का सबसे अच्छा तरीका अक्सर SNMP Trap डेटा से संबंधित रहा है। इसलिए, निम्नलिखित grep का उपयोग करके हम बहुत सारे MIB डेटा को जल्दी से पार्स कर सकते हैं, "trap" शब्द की खोज करते हुए:
grep -i "trap" *.snmp
उपयोगकर्ता नाम/पासवर्ड
एक और रुचि का क्षेत्र लॉग्स हैं, मैंने पाया है कि कुछ उपकरण हैं जो MIB तालिकाओं के भीतर लॉग्स रखते हैं। ये लॉग्स में असफल लॉगऑन प्रयास भी शामिल हो सकते हैं। सोचिए जब आपने आखिरी बार किसी उपकरण में Telnet या SSH के माध्यम से लॉग इन किया था और गलती से अपना पासवर्ड उपयोगकर्ता नाम के रूप में दर्ज किया था। मैं आमतौर पर fail, failed या login जैसे कीवर्ड्स की खोज करता हूँ और उस डेटा की जांच करता हूँ कि क्या कोई मूल्यवान जानकारी है।
grep -i "login\|fail" *.snmp
ईमेल्स
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
SNMP मानों को संशोधित करना
NetScanTools का उपयोग करके आप मानों को संशोधित कर सकते हैं। ऐसा करने के लिए आपको निजी स्ट्रिंग का पता होना चाहिए।
स्पूफिंग
यदि कोई ACL है जो केवल कुछ IPs को SMNP सेवा की पूछताछ की अनुमति देता है, तो आप UDP पैकेट के अंदर इन पतों में से एक को स्पूफ कर सकते हैं और ट्रैफिक को स्निफ कर सकते हैं।
SNMP कॉन्फ़िगरेशन फ़ाइलों की जांच करें
- snmp.conf
- snmpd.conf
- snmp-config.xml
HackTricks स्वचालित आदेश
Protocol_Name: SNMP #Protocol Abbreviation if there is one.
Port_Number: 161 #Comma separated if there is more than one.
Protocol_Description: Simple Network Managment Protocol #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for SNMP
Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).
https://book.hacktricks.xyz/pentesting/pentesting-snmp
Entry_2:
Name: SNMP Check
Description: Enumerate SNMP
Command: snmp-check {IP}
Entry_3:
Name: OneSixtyOne
Description: Crack SNMP passwords
Command: onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100
Entry_4:
Name: Nmap
Description: Nmap snmp (no brute)
Command: nmap --script "snmp* and not snmp-brute" {IP}
Entry_5:
Name: Hydra Brute Force
Description: Need Nothing
Command: hydra -P {Big_Passwordlist} -v {IP} snmp
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">
**Bug bounty tip**: **Intigriti** के लिए **sign up** करें, एक प्रीमियम **bug bounty platform जो हैकर्स द्वारा, हैकर्स के लिए बनाया गया है**! आज ही हमसे जुड़ें [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) पर, और **$100,000** तक के bounties कमाना शुरू करें!
{% embed url="https://go.intigriti.com/hacktricks" %}
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **company का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **follow** करें.
* **अपनी hacking tricks को साझा करें PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
</details>