7.6 KiB
27017,27018 - पेंटेस्टिंग MongoDB
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs कलेक्शन, The PEASS Family खोजें
- जुड़ें 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह से या मुझे ट्विटर 🐦 @carlospolopm** का** अनुसरण करें।
- हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।
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
- 5f2459ac: 1596217772 दस्मिशी में = शुक्रवार, 31 जुलाई 2020 17:49:32
- 9fa6dc: मशीन पहचानकर्ता
- 2500: प्रक्रिया आईडी
- 314019: एक अवरोधी काउंटर
उपरोक्त तत्वों में, मशीन पहचानकर्ता जब तक डेटाबेस एक ही भौतिक/आभासी मशीन पर चल रही है, वह वही रहेगा। प्रक्रिया आईडी केवल तब बदलेगा जब MongoDB प्रक्रिया पुनः आरंभ हो। टाइमस्टैम्प हर सेकंड अपडेट होगा। ऑब्जेक्ट आईडी को सिर्फ काउंटर और टाइमस्टैम्प मानों को बढ़ाते हुए अनुमान लगाने में एकमात्र चुनौती यह है कि Mongo DB ऑब्जेक्ट आईडी उत्पन्न करता है और ऑब्जेक्ट आईडी को सिस्टम स्तर पर निर्धारित करता है।
उपकरण https://github.com/andresriancho/mongo-objectid-predict, एक प्रारंभिक ऑब्ज