Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MongoBleed-exploit — 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. | Kitploit
أدوات/GitHubGitHub/eljoamy/mongobleed-exploit
Memory ForensicsVulnerability AnalysisExploitationCTFPenetration TestingLearning & EducationDatabase SecurityLabs & Practice

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

حول

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.

GitHub
eljoamy/mongobleed-exploit

MongoBleed-exploit

عرض المستودع
2منذ 7 أشهرلم تتم المراجعة بعد
مشاركة

CVE-2025-14847: مختبر MongoBleed

Python      MongoDB      Docker

جدول المحتويات

  1. مقدمة
  2. تفاصيل الثغرة
    • كيف تعمل
  3. الأثر
  4. بنية المختبر
  5. المتطلبات الأساسية
  6. التثبيت والاستخدام
    • 1. تشغيل البيئة
    • 2. تثبيت التبعيات
    • 3. التحقق من إعداد المختبر (اختياري)
    • 4. تشغيل الاستغلال
  7. شرح عملية الاستغلال
  8. الإصلاح
  9. الترخيص
  10. إخلاء المسؤولية
  11. المراجع
  12. المؤلف

مقدمة

صُمم هذا المختبر لإعادة إنتاج وتحليل MongoBleed (CVE-2025-14847)، وهي ثغرة حرجة في MongoDB. تسمح هذه الثغرة للمهاجمين غير المُصادَق عليهم بقراءة بيانات حساسة من ذاكرة الخادم بسبب المعالجة غير الصحيحة للرسائل المضغوطة.

تتضمن البيئة مثيل MongoDB معرّضًا للثغرة مملوءًا ببيانات حساسة وهمية (PII، مفاتيح API، سجلات مالية) لتوضيح خطورة هذا التسريب.

تفاصيل الثغرة

معرّف CVE: CVE-2025-14847
الاسم: MongoBleed
المكوّن: بروتوكول Wire (OP_COMPRESSED)
النسخ المعرّضة للثغرة: MongoDB 6.0.x < 6.0.27, 7.0.x < 7.0.28, 8.0.x < 8.0.17 (وغيرها) الرابط: اضغط عليه <- NVD CVE-2025-14847

كيف تعمل

تكمُن الثغرة في طريقة معالجة MongoDB لرسائل OP_COMPRESSED باستخدام خوارزمية ضغط zlib.

  1. عدم تطابق الحجم: يرسل المهاجم رسالة مضغوطة حيث يتم تعيين حقل uncompressed_size في الترويسة عمدًا إلى قيمة أكبر بكثير من الحجم الفعلي للبيانات المفكوكة.
  2. تخصيص الذاكرة: يخصص الخادم مخزنًا مؤقتًا في الذاكرة بناءً على قيمة uncompressed_size المضخّمة.
  3. الكتابة الجزئية: يكتب مفكك الضغط zlib الحمولة الفعلية (الصغيرة) في بداية هذا المخزن المؤقت. ويظل باقي المخزن غير مُهيأ، محتويًا على بيانات متبقية من عمليات سابقة (مخلفات RAM).
  4. التسريب: عندما يحاول الخادم تحليل هذا المخزن المؤقت كمستند BSON، فإنه يقرأ ما يتجاوز البيانات الصالحة وصولًا إلى الذاكرة غير المهيأة. وإذا واجه المُحلِّل خطأً (وهو أمر محتمل)، فقد يُعيد البيانات "السيئة" في رسالة الخطأ إلى العميل.

الأثر

  • وصول بدون مصادقة: لا يتطلب الهجوم بيانات اعتماد صالحة.
  • كشف المعلومات: يمكن للمهاجمين استخراج أي شيء موجود حاليًا في ذاكرة عملية MongoDB، بما في ذلك:
    • بيانات اعتماد المصادقة (كلمات مرور أو تجزئات بنص واضح).
    • بيانات من قواعد بيانات/مجموعات أخرى.
    • إعدادات الخادم ومتغيرات البيئة.
    • رموز الجلسات النشطة.

بنية المختبر

يتكون المختبر من:

  • الخدمة المعرّضة للثغرة: MongoDB 6.0.10 (حاوية Docker).
  • المصادقة: مفعّلة (admin / secretpassword).
  • تعبئة البيانات: سكربت تهيئة (init-mongo.js) يملأ 3 قواعد بيانات متميزة لمحاكاة بيئة SaaS حقيقية للبنية التحتية السحابية:
    • dbmongotesting: بيانات البنية التحتية الأساسية.
      • compute_instances: بيانات وصفية حساسة (سكربتات User Data، مفاتيح API).
      • deployment_secrets: أهداف عالية القيمة (رموز K8s، مفاتيح CI/CD، webhooks الخاصة بـ Slack).
    • identity_provider: إدارة هوية المستخدمين.
      • users: بيانات اعتماد المستخدمين، تجزئات كلمات المرور (Argon2)، ورموز نسخ احتياطي لـ MFA (مُسرَّبة كنص واضح).
    • system_audit: السجلات والمراقبة.
      • query_logs: يحتوي على استعلامات تاريخية، بعضها يتضمن بيانات اعتماد مُسرَّبة (مثل مفاتيح AWS).
  • الاستغلال: سكربت Python (exploit.py) ينفذ هجوم البروتوكول المُعاد هندسته.

المتطلبات الأساسية

  • Docker
  • Docker Compose
  • Python 3

التثبيت والاستخدام

1. تشغيل البيئة

شغّل الحاوية المعرّضة للثغرة. سيؤدي ذلك تلقائيًا إلى إنشاء قواعد البيانات وملئها بالبيانات.

root@kitploit:~
docker-compose up -d

انتظر حوالي 10-15 ثانية حتى تتم تهيئة قاعدة البيانات وتحميل البيانات.

ملاحظة: إذا كنت قد شغّلت هذا المختبر من قبل، فتأكد من إعادة تعيين وحدة التخزين (volume) لتحميل أحدث بنية للبيانات:

root@kitploit:~
docker-compose down -v
docker-compose up -d

2. تثبيت التبعيات

يمكنك تثبيت التبعيات المطلوبة باستخدام pip إما عبر ملف requirements.txt القديم أو ملف pyproject.toml الحديث.

الخيار A: استخدام requirements.txt (القياسي)

root@kitploit:~
pip install -r requirements.txt

الخيار B: استخدام pyproject.toml (الحديث) سيؤدي هذا إلى تثبيت المشروع وتبعياته في البيئة الحالية.

root@kitploit:~
pip install .

3. التحقق من إعداد المختبر (اختياري)

لقد وفرنا سكربت تحقق للتأكد من إمكانية الوصول إلى قاعدة البيانات ومن تعبئة البيانات بشكل صحيح.

root@kitploit:~
python verify_lab.py

يستخدم هذا السكربت بيانات اعتماد المسؤول (admin) للتحقق من وجود قواعد بيانات مثل sensitive_db، legacy_crm، وما إلى ذلك.

4. تشغيل الاستغلال

نفّذ سكربت Python لمهاجمة الخادم. لا تتطلب هذه الخطوة أي بيانات اعتماد، مما يوضح الطبيعة غير المُصادَق عليها للثغرة.

root@kitploit:~
python exploit.py --host localhost --port 27017 --min 100 --max 5000

شرح عملية الاستغلال

ينفذ السكربت الخطوات التالية:

  1. إنشاء حمولة BSON خبيثة.
  2. ضغطها وتغليفها في ترويسة OP_COMPRESSED بحجم مزيّف ومضخّم.
  3. إرسالها إلى الخادم المستهدف.
  4. الاستماع لاستجابات الأخطاء.
  5. طباعة أي نص قابل للقراءة يُعثر عليه في استجابة الخادم (والذي ينبع من تسريب الذاكرة).

المخرجات المتوقعة: يجب أن ترى مخرجات تشير إلى تسريبات تم العثور عليها في إزاحات مختلفة، يليها ملخص بالأسرار المكتشفة.

root@kitploit:~
[*] 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

الإصلاح

لإصلاح هذه الثغرة في بيئات الإنتاج:

  1. الترقية: حدّث MongoDB إلى نسخة مصححة (مثل 6.0.27+، 7.0.28+، 8.0.17+).
  2. تقييد الشبكة: تأكد من عدم تعريض منافذ MongoDB (27017) للإنترنت العام.

الترخيص

هذا المشروع مرخّص بموجب رخصة MIT. راجع ملف LICENSE للحصول على التفاصيل.

إخلاء المسؤولية

هذه المادة لأغراض تعليمية وبحثية فقط. لا تستخدم هذا الاستغلال على أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها. المؤلف غير مسؤول عن أي إساءة استخدام لهذه المعلومات أو هذه الأداة.

المراجع

  • استغلال مثيل MongoDB مكشوف باستخدام Mongobleed: دليل عملي في مختبر محلي
  • CVE-2025-1623

المؤلف

ElJoamy
Joseph Meneses (ElJoamy)

مطوّر Backend وذكاء اصطناعي · مهندس أمن سيبراني · DBA · مختبِر اختراق

تنزيل الأداة