
MongoBleed (CVE-2025-14847) Lab & PoC : A complete educational environment to reproduce the critical unauthenticated memory leak in MongoDB. Includes a vulnerable Docker container with multi-database seeding (PII, API keys) and a Python exploit to demonstrate data extraction. Ideal for security research and awareness. 1-day analysis.
यह प्रयोगशाला MongoBleed (CVE-2025-14847) को पुन: उत्पन्न करने और विश्लेषण करने के लिए डिज़ाइन की गई है, जो MongoDB में एक गंभीर भेद्यता है। यह दोष अनधिकृत हमलावरों को संपीड़ित संदेशों के अनुचित प्रबंधन के कारण सर्वर की मेमोरी से संवेदनशील डेटा पढ़ने की अनुमति देता है।
वातावरण में एक भेद्य MongoDB इंस्टेंस शामिल है जिसमें लीक की गंभीरता दर्शाने के लिए नकली संवेदनशील डेटा (PII, API कुंजियाँ, वित्तीय रिकॉर्ड) भरा गया है।
CVE ID: CVE-2025-14847
नाम: MongoBleed
घटक: वायर प्रोटोकॉल (OP_COMPRESSED)
भेद्य संस्करण: MongoDB 6.0.x < 6.0.27, 7.0.x < 7.0.28, 8.0.x < 8.0.17 (और अन्य)
URL: इस पर क्लिक करें -> NVD CVE-2025-14847
यह भेद्यता उस तरीके में निहित है जिससे MongoDB zlib संपीड़न एल्गोरिदम का उपयोग करके OP_COMPRESSED संदेशों को संभालता है।
uncompressed_size फ़ील्ड को जानबूझकर वास्तविक डीकंप्रेस्ड डेटा आकार से बहुत बड़े मान पर सेट किया जाता है।uncompressed_size के आधार पर मेमोरी बफ़र आवंटित करता है।zlib डीकंप्रेसर वास्तविक (छोटा) पेलोड इस बफ़र की शुरुआत में लिखता है। बफ़र का शेष भाग अप्रारंभीकृत रहता है, जिसमें पिछले कार्यों से अवशिष्ट डेटा (RAM कलाकृतियाँ) होता है।प्रयोगशाला में शामिल हैं:
admin / secretpassword)।init-mongo.js) जो वास्तविक क्लाउड इंफ्रास्ट्रक्चर SaaS वातावरण का अनुकरण करने के लिए 3 अलग-अलग डेटाबेस भरती है:
compute_instances: संवेदनशील मेटाडेटा (उपयोगकर्ता डेटा स्क्रिप्ट, API कुंजियाँ)।deployment_secrets: उच्च-मूल्य वाले लक्ष्य (K8s टोकन, CI/CD कुंजियाँ, Slack वेबहुक)।users: उपयोगकर्ता क्रेडेंशियल्स, पासवर्ड हैश (Argon2), और MFA बैकअप कोड (सादे पाठ में लीक)।query_logs: ऐतिहासिक क्वेरी शामिल हैं, जिनमें कुछ लीक किए गए क्रेडेंशियल्स (जैसे AWS कुंजियाँ) शामिल हैं।exploit.py) जो रिवर्स-इंजीनियर्ड प्रोटोकॉल हमले को लागू करती है।भेद्य कंटेनर लॉन्च करें। यह स्वचालित रूप से डेटाबेस बनाएगा और उन्हें डेटा से भर देगा।
docker-compose up -d
डेटाबेस को आरंभ करने और डेटा लोड करने के लिए लगभग 10-15 सेकंड प्रतीक्षा करें।
नोट: यदि आप इस प्रयोगशाला को पहले चला चुके हैं, तो सुनिश्चित करें कि आप नवीनतम डेटा संरचना लोड करने के लिए वॉल्यूम रीसेट करें:
docker-compose down -v
docker-compose up -d
आप लीगेसी requirements.txt या आधुनिक pyproject.toml का उपयोग करके pip के साथ आवश्यक निर्भरताएँ स्थापित कर सकते हैं।
विकल्प A: requirements.txt का उपयोग करना (मानक)
pip install -r requirements.txt
विकल्प B: pyproject.toml का उपयोग करना (आधुनिक) यह वर्तमान वातावरण में प्रोजेक्ट और उसकी निर्भरताएँ स्थापित करेगा।
pip install .
हमने यह सुनिश्चित करने के लिए एक सत्यापन स्क्रिप्ट प्रदान की है कि डेटाबेस पहुँच योग्य है और डेटा सही ढंग से बीजित किया गया है।
python verify_lab.py
यह स्क्रिप्ट प्रशासन क्रेडेंशियल्स का उपयोग करके sensitive_db, legacy_crm आदि जैसे डेटाबेस के अस्तित्व की जाँच करती है।
सर्वर पर हमला करने के लिए Python स्क्रिप्ट निष्पादित करें। इस चरण के लिए किसी क्रेडेंशियल की आवश्यकता नहीं है, जो भेद्यता की अनधिकृत प्रकृति को प्रदर्शित करता है।
python exploit.py --host localhost --port 27017 --min 100 --max 5000
स्क्रिप्ट निम्नलिखित चरण करती है:
OP_COMPRESSED हेडर में लपेटती है।अपेक्षित आउटपुट: आपको विभिन्न ऑफ़सेट पर पाए गए लीक को दर्शाने वाला आउटपुट देखना चाहिए, उसके बाद पता लगाए गए रहस्यों का सारांश।
[*] MongoBleed Exploit (Custom Implementation)
[*] Target: localhost:27017
[*] Scanning memory offsets 100 to 5000...
[+] Offset 120 | ... dbmongotesting ... compute_instances ...
[+] Offset 145 | ... field name 'AKIAIOSFODNN7EXAMPLE' is not valid ... [!] FOUND AKIA
[+] Offset 210 | ... "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ik16UTBOVFZ... [!] FOUND token
[*] Scan completed in 12.45s
[*] Total bytes leaked: 4502
[*] Unique fragments: 156
[*] Secrets Summary:
[!] Found pattern: AKIA
[!] Found pattern: token
[!] Found pattern: password
उत्पादन वातावरण में इस भेद्यता को ठीक करने के लिए:
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।
यह सामग्री केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए है। इस एक्सप्लॉइट का उपयोग उन सिस्टम पर न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति नहीं है। लेखक इस जानकारी या उपकरण के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है।
Joseph Meneses (ElJoamy)
बैकएंड और AI डेवलपर · साइबर सुरक्षा इंजीनियर · DBA · पेनिट्रेशन टेस्टर