27017,27018 - Pentesting MongoDB

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

HackenProof Discord सर्वर में शामिल होकर अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!

हैकिंग इंसाइट्स उस सामग्री के साथ जुड़ें जो हैकिंग के रोमांच और चुनौतियों में डूबती है

रियल-टाइम हैक न्यूज़ तेजी से बदलती हैकिंग दुनिया के साथ कदम से कदम रहें अपडेटेड

नवीनतम घोषणाएं नवीनतम बग बाउंटी लॉन्च और महत्वपूर्ण प्लेटफॉर्म अपडेट्स के साथ सूचित रहें

हमारे साथ जुड़ें Discord और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!

PORT      STATE SERVICE VERSION
27017/tcp open  mongodb MongoDB 2.6.9 2.6.9

जाँच

मैन्युअल

from pymongo import MongoClient
client = MongoClient(host, port, username=username, password=password)
client.server_info() #Basic info
#If you have admin access you can obtain more info
admin = client.admin
admin_info = admin.command("serverStatus")
cursor = client.list_databases()
for db in cursor:
print(db)
print(client[db["name"]].list_collection_names())
#If admin access, you could dump the database also

कुछ MongoDB कमांड:

show dbs
use <db>
show collections
db.<collection>.find()  #Dump the collection
db.<collection>.count() #Number of records of the collection
db.current.find({"username":"admin"})  #Find in current db the username admin

स्वचालित

nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used

शोडन

  • सभी mongodb: "mongodb सर्वर सूचना"

  • पूर्ण खुले mongodb सर्वरों के लिए खोजें: "mongodb सर्वर सूचना" -"आंशिक रूप से सक्षम"

  • केवल आंशिक रूप से प्रमाणीकरण सक्षम: "mongodb सर्वर सूचना" "आंशिक रूप से सक्षम"

लॉगिन

डिफ़ॉल्ट रूप से मॉंगो पासवर्ड की आवश्यकता नहीं है। एडमिन एक सामान्य मॉंगो डेटाबेस है।

mongo <HOST>
mongo <HOST>:<PORT>
mongo <HOST>:<PORT>/<DB>
mongo <database> -u <username> -p '<password>'

नामप स्क्रिप्ट: mongodb-brute यह जांचेगा कि क्रेडेंशियल की आवश्यकता है या नहीं।

nmap -n -sV --script mongodb-brute -p 27017 <ip>

क्रेडेंशियल्स की आवश्यकता है कि नहीं जानने के लिए /opt/bitnami/mongodb/mongodb.conf में देखें:

grep "noauth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#" #Not needed
grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not needed

Mongo Objectid Predict

उदाहरण यहाँ से

Mongo Object IDs 12-बाइट हेक्साडेसिमल स्ट्रिंग्स हैं:

उदाहरण के लिए, यहाँ हम एक वास्तविक ऑब्जेक्ट आईडी का विश्लेषण कैसे कर सकते हैं जो एक एप्लिकेशन द्वारा वापस दिया गया है: 5f2459ac9fa6dc2500314019

  1. 5f2459ac: 1596217772 दशमलव में = शुक्रवार, 31 जुलाई 2020 17:49:32

  2. 9fa6dc: मशीन पहचानकर्ता

  3. 2500: प्रक्रिया आईडी

  4. 314019: एक अवरोधी काउंटर

उपरोक्त तत्वों में, मशीन पहचानकर्ता जब तक डेटाबेस वही भौतिक/आभासी मशीन चला रहा है, वह वही रहेगा। प्रक्रिया आईडी केवल तब बदलेगा जब MongoDB प्रक्रिया पुनः आरंभ हो। टाइमस्टैम्प हर सेकंड अपडेट किया जाएगा। ऑब्जेक्ट आईडी को सिर्फ काउंटर और टाइमस्टैम्प मानों को बढ़ाते हुए अनुमान लगाने में एकमात्र चुनौती यह है कि Mongo DB ऑब्जेक्ट आईडी उत्पन्न करता है और ऑब्जेक्ट आईडी को एक सिस्टम स्तर पर निर्धारित करता है।

उपकरण https://github.com/andresriancho/mongo-objectid-predict, एक प्रारंभिक ऑब्जेक्ट आईडी (आप एक खाता बना सकते हैं और एक प्रारंभिक आईडी प्राप्त कर सकते हैं) दिया गया है, जो अगले ऑब्जेक्ट्स को निर्धारित किया जा सकता है, इसलिए आपको उन्हें ब्रूटफोर्स करने की आवश्यकता है।

Post

यदि आप रूट हैं तो आप mongodb.conf फ़ाइल को संशोधित कर सकते हैं ताकि कोई प्रमाणपत्र की आवश्यकता न हो (noauth = true) और प्रमाणपत्र के बिना लॉगिन कर सकते हैं।


HackenProof Discord सर्वर में शामिल होकर अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!

हैकिंग इंसाइट्स हैकिंग के उत्साह और चुनौतियों में डूबने वाली सामग्री के साथ जुड़ें

रियल-टाइम हैक न्यूज़ रियल-टाइम समाचार और अंतर्दृष्टि के माध्यम से तेजी से बदलते हैकिंग विश्व के साथ कदम मिलाएं

नवीनतम घोषणाएं नवीनतम बग बाउंटी लॉन्च और महत्वपूर्ण प्लेटफ़ॉर्म अपडेट के साथ अवगत रहें

हमारे साथ जुड़ें Discord और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!

Last updated