161,162,10161,10162/udp - Pentesting SNMP
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2214728956-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FPfJnr5ak4G3jo9UcZF4y%252Fuploads%252Fgit-blob-e70bceed6fa35760d025f037a78106ab025a68cd%252Fimage%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=16e2395d&sv=1)
If you are interested in hacking career and hack the unhackable - we are hiring! (फ्लूएंट पोलिश लिखित और मौखिक आवश्यक).
Basic Information
SNMP - Simple Network Management Protocol एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों (जैसे राउटर, स्विच, प्रिंटर, IoTs...) की निगरानी के लिए किया जाता है।
SNMP भी 162/UDP पोर्ट का उपयोग ट्रैप्स के लिए करता है। ये डेटा पैकेट्स हैं जो SNMP सर्वर से क्लाइंट को बिना स्पष्ट अनुरोध के भेजे जाते हैं।
MIB
यह सुनिश्चित करने के लिए कि SNMP एक्सेस विभिन्न निर्माताओं और विभिन्न क्लाइंट-सर्वर संयोजनों के बीच काम करता है, मैनेजमेंट इंफॉर्मेशन बेस (MIB) बनाया गया था। MIB एक स्वतंत्र प्रारूप है जो डिवाइस की जानकारी को संग्रहीत करता है। एक MIB एक टेक्स्ट फ़ाइल है जिसमें एक डिवाइस के सभी क्वेरी करने योग्य SNMP ऑब्जेक्ट्स को एक मानकीकृत पेड़ पदानुक्रम में सूचीबद्ध किया गया है। इसमें कम से कम एक ऑब्जेक्ट आइडेंटिफायर
(OID
) होता है, जो आवश्यक विशिष्ट पते और एक नाम के अलावा, संबंधित ऑब्जेक्ट के प्रकार, एक्सेस अधिकारों और विवरण के बारे में जानकारी भी प्रदान करता है।
MIB फ़ाइलें एब्स्ट्रैक्ट सिंटैक्स नोटेशन वन
(ASN.1
) आधारित ASCII टेक्स्ट प्रारूप में लिखी जाती हैं। MIBs में डेटा नहीं होता, लेकिन वे बताते हैं कहाँ कौन सी जानकारी मिलेगी और वह कैसी दिखती है, जो विशेष OID के लिए मान लौटाती है, या कौन सा डेटा प्रकार उपयोग किया जाता है।
OIDs
ऑब्जेक्ट आइडेंटिफायर (OIDs) एक महत्वपूर्ण भूमिका निभाते हैं। ये अद्वितीय पहचानकर्ता मैनेजमेंट इंफॉर्मेशन बेस (MIB) के भीतर ऑब्जेक्ट्स को प्रबंधित करने के लिए डिज़ाइन किए गए हैं।
MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्तर विभिन्न मानक-निर्धारण संगठनों को आवंटित किए जाते हैं। इन शीर्ष स्तरों के भीतर वैश्विक प्रबंधन प्रथाओं और मानकों के लिए ढांचा स्थापित किया जाता है।
इसके अलावा, विक्रेताओं को निजी शाखाएँ स्थापित करने की स्वतंत्रता दी जाती है। इन शाखाओं के भीतर, उनके पास अपने उत्पाद लाइनों से संबंधित प्रबंधित ऑब्जेक्ट्स को शामिल करने की स्वायत्तता होती है। यह प्रणाली विभिन्न विक्रेताओं और मानकों के बीच ऑब्जेक्ट्स की पहचान और प्रबंधन के लिए एक संरचित और संगठित विधि सुनिश्चित करती है।
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2214728956-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FPfJnr5ak4G3jo9UcZF4y%252Fuploads%252Fgit-blob-59fede678234060bdf9e0832b7ce4ed04bfd9bd6%252FSNMP_OID_MIB_Tree%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=45dc8eba&sv=1)
आप यहाँ वेब से 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 द्वारा परिभाषित सरल नेटवर्क प्रबंधन प्रोटोकॉल (SNMP) वेरिएबल्स को संदर्भित करते हैं। और इस एक से लंबित OIDs से आप कुछ दिलचस्प होस्ट डेटा (सिस्टम डेटा, नेटवर्क डेटा, प्रक्रियाओं का डेटा...) प्राप्त कर सकते हैं।
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" का उपयोग किया जा रहा है, तो आप कुछ मानों को लिखने में सक्षम हो सकते हैं। इसके अलावा, वहाँ ऐसे ऑब्जेक्ट्स हो सकते हैं जो हमेशा "पढ़ने के लिए केवल" होते हैं।
यदि आप किसी ऑब्जेक्ट को लिखने की कोशिश करते हैं तो एक noSuchName
या readOnly
त्रुटि प्राप्त होती है**.**
संस्करण 1 और 2/2c में यदि आप एक खराब कम्युनिटी स्ट्रिंग का उपयोग करते हैं तो सर्वर प्रतिक्रिया नहीं देगा। इसलिए, यदि यह प्रतिक्रिया देता है, तो एक मान्य कम्युनिटी स्ट्रिंग का उपयोग किया गया था।
पोर्ट्स
SNMP एजेंट UDP पोर्ट 161 पर अनुरोध प्राप्त करता है।
प्रबंधक पोर्ट 162 पर सूचनाएँ प्राप्त करता है (ट्रैप्स और InformRequests)।
जब परिवहन परत सुरक्षा या डेटाग्राम परिवहन परत सुरक्षा के साथ उपयोग किया जाता है, तो अनुरोध पोर्ट 10161 पर प्राप्त होते हैं और सूचनाएँ पोर्ट 10162 पर भेजी जाती हैं।
ब्रूट-फोर्स कम्युनिटी स्ट्रिंग (v1 और v2c)
कम्युनिटी स्ट्रिंग का अनुमान लगाने के लिए आप एक शब्दकोश हमले का प्रदर्शन कर सकते हैं। SNMP के खिलाफ ब्रूट-फोर्स हमले के विभिन्न तरीकों के लिए यहाँ देखें। एक सामान्य उपयोग की जाने वाली कम्युनिटी स्ट्रिंग public
है।
SNMP की गणना करना
यह अनुशंसा की जाती है कि आप निम्नलिखित को स्थापित करें ताकि आप देख सकें कि प्रत्येक OID जो डिवाइस से एकत्र किया गया है उसका क्या मतलब है:
यदि आपको एक मान्य समुदाय स्ट्रिंग पता है, तो आप SNMPWalk या SNMP-Check का उपयोग करके डेटा तक पहुँच सकते हैं:
धन्यवाद विस्तारित क्वेरीज़ (download-mibs) के लिए, निम्नलिखित कमांड के साथ सिस्टम के बारे में और अधिक जानकारी प्राप्त करना संभव है:
SNMP के पास होस्ट के बारे में बहुत सारी जानकारी है और जो चीजें आपको दिलचस्प लग सकती हैं वे हैं: नेटवर्क इंटरफेस (IPv4 और IPv6 पता), उपयोगकर्ता नाम, अपटाइम, सर्वर/OS संस्करण, और प्रक्रियाएँ
चल रही (पासवर्ड हो सकते हैं)....
खतरनाक सेटिंग्स
नेटवर्क प्रबंधन के क्षेत्र में, कुछ कॉन्फ़िगरेशन और पैरामीटर व्यापक निगरानी और नियंत्रण सुनिश्चित करने के लिए कुंजी हैं।
एक्सेस सेटिंग्स
दो मुख्य सेटिंग्स पूर्ण OID पेड़ तक पहुंच सक्षम करती हैं, जो नेटवर्क प्रबंधन में एक महत्वपूर्ण घटक है:
rwuser noauth
को OID पेड़ तक पूर्ण पहुंच की अनुमति देने के लिए सेट किया गया है बिना प्रमाणीकरण की आवश्यकता के। यह सेटिंग सीधी है और बिना किसी प्रतिबंध के पहुंच की अनुमति देती है।अधिक विशिष्ट नियंत्रण के लिए, पहुंच प्रदान की जा सकती है:
rwcommunity
के लिए IPv4 पते, औरrwcommunity6
के लिए IPv6 पते।
दोनों कमांड एक कम्युनिटी स्ट्रिंग और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है।
Microsoft Windows के लिए SNMP पैरामीटर
SNMP के माध्यम से Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए एक श्रृंखला प्रबंधन सूचना आधार (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
MIB मान का उपयोग किया जाता है।स्टोरेज यूनिट्स: स्टोरेज यूनिट्स की निगरानी
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
मान उपयोगकर्ता खातों की ट्रैकिंग की अनुमति देता है।TCP स्थानीय पोर्ट: अंततः,
1.3.6.1.2.1.6.13.1.3
TCP स्थानीय पोर्ट की निगरानी के लिए निर्धारित किया गया है, जो सक्रिय नेटवर्क कनेक्शनों की जानकारी प्रदान करता है।
Cisco
यदि आप Cisco उपकरण हैं तो इस पृष्ठ को देखें:
Cisco SNMPSNMP से RCE तक
यदि आपके पास स्ट्रिंग है जो आपको SNMP सेवा के भीतर मान लिखने की अनुमति देती है, तो आप इसका दुरुपयोग करके कमांड निष्पादित कर सकते हैं:
SNMP RCEमासिव SNMP
Braa एक मास SNMP स्कैनर है। इस तरह के उपकरण का इरादा, निश्चित रूप से, SNMP प्रश्न करना है - लेकिन net-snmp से snmpwalk के विपरीत, यह एक ही प्रक्रिया में दर्जनों या सैकड़ों होस्टों को एक साथ प्रश्न करने में सक्षम है। इस प्रकार, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और स्कैनिंग बहुत तेज़ करता है।
Braa अपना खुद का SNMP स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP लाइब्रेरी की आवश्यकता नहीं है।
सिंटैक्स: braa [Community-string]@[IP of SNMP server]:[iso id]
यह बहुत सारे MB की जानकारी निकाल सकता है जिसे आप मैन्युअल रूप से प्रोसेस नहीं कर सकते।
तो, चलिए सबसे दिलचस्प जानकारी की तलाश करते हैं (से https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
उपकरण
यह प्रक्रिया प्रत्येक फ़ाइल से sysDesc MIB डेटा (1.3.6.1.2.1.1.1.0) निकालने के साथ शुरू होती है ताकि उपकरणों की पहचान की जा सके। यह एक grep कमांड के उपयोग के माध्यम से पूरा किया जाता है:
निजी स्ट्रिंग की पहचान करें
एक महत्वपूर्ण कदम निजी समुदाय स्ट्रिंग की पहचान करना है जो संगठनों द्वारा उपयोग की जाती है, विशेष रूप से Cisco IOS राउटर्स पर। यह स्ट्रिंग राउटर्स से चल रही कॉन्फ़िगरेशन को निकालने की अनुमति देती है। पहचान अक्सर SNMP ट्रैप डेटा का विश्लेषण करने पर निर्भर करती है जिसमें "trap" शब्द होता है, grep कमांड के साथ:
यूजरनेम/पासवर्ड
MIB तालिकाओं में संग्रहीत लॉग को असफल लॉगिन प्रयासों के लिए जांचा जाता है, जिसमें गलती से यूजरनेम के रूप में दर्ज किए गए पासवर्ड शामिल हो सकते हैं। मूल्यवान डेटा खोजने के लिए fail, failed, या login जैसे कीवर्ड खोजे जाते हैं:
ईमेल
अंत में, डेटा से ईमेल पते निकालने के लिए, एक grep कमांड का उपयोग किया जाता है जिसमें एक नियमित अभिव्यक्ति होती है, जो ईमेल प्रारूपों से मेल खाने वाले पैटर्न पर ध्यान केंद्रित करती है:
SNMP मानों को संशोधित करना
आप NetScanTools का उपयोग करके मानों को संशोधित कर सकते हैं। ऐसा करने के लिए आपको निजी स्ट्रिंग जानने की आवश्यकता होगी।
स्पूफिंग
यदि कोई ACL है जो केवल कुछ IPs को SMNP सेवा को क्वेरी करने की अनुमति देती है, तो आप UDP पैकेट के अंदर इनमें से एक पते को स्पूफ कर सकते हैं और ट्रैफ़िक को स्निफ कर सकते हैं।
SNMP कॉन्फ़िगरेशन फ़ाइलों की जांच करें
snmp.conf
snmpd.conf
snmp-config.xml
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2214728956-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FPfJnr5ak4G3jo9UcZF4y%252Fuploads%252Fgit-blob-e70bceed6fa35760d025f037a78106ab025a68cd%252Fimage%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=16e2395d&sv=1)
यदि आप हैकिंग करियर में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखित और मौखिक आवश्यक).
HackTricks स्वचालित आदेश
सीखें और AWS हैकिंग का अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
सीखें और GCP हैकिंग का अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated