Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mongobleed-detector — نص برمجي للكشف عن استغلال MongoBleed | Kitploit
أدوات/GitHubGitHub/neo23x0/mongobleed-detector
تحليل الثغرات الأمنيةالبرمجة النصية والأتمتةالتحقيق الجنائي الرقميالتحاليل الرقمية الجنائيةاستخبارات التهديداتالاستجابة للحوادثأمن قواعد البياناتتحليل السجلات
GitHubneo23x0/mongobleed-detector

mongobleed-detector

نص برمجي للكشف عن استغلال MongoBleed

عرض المستودع
811320منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

كاشف MongoBleed

أداة تحليل MongoDB غير متصلة لـ CVE-2025-14847 (MongoBleed)

أداة سطر أوامر مستقلة لنظام لينكس تقوم بتحليل بيانات MongoDB لتحديد احتمالية استغلال CVE-2025-14847 باستخدام وحدات كشف متعددة.

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

  • نظرة عامة
  • وحدات الكشف
  • المتطلبات
  • التثبيت
  • وضعا التشغيل
  • الوضع 1: التحليل المحلي
  • الوضع 2: الجمع عن بُعد
  • خيارات سطر الأوامر
  • مستويات الثقة
  • مثال للمخرجات
  • الاختبار
  • التحذيرات والقيود
  • المراجع والإسناد
  • الرخصة

نظرة عامة

MongoBleed (CVE-2025-14847) هو ثغرة كشف للذاكرة في فك ضغط zlib الخاص بـ MongoDB تسمح للمهاجمين باستخراج بيانات حساسة—بيانات الاعتماد، رموز الجلسات، المعلومات الشخصية القابلة للتحديد—مباشرة من ذاكرة الخادم دون مصادقة.

تساعد هذه الأداة مستجيبي الحوادث على كشف محاولات الاستغلال باستخدام مصادر أدلة متعددة:

  • الوحدة A: ربط السجلات (أحداث الاتصال، غياب البيانات الوصفية)
  • الوحدة B1: تحليل عدد التأكيدات (لقطات serverStatus.asserts)
  • الوحدة B2: كشف القمم في FTDC (سلاسل زمنية diagnostic.data)

الميزات الرئيسية

  • كشف متعدد الوحدات - ربط مصادر بيانات متعددة للحصول على ثقة أعلى
  • غير متصل وبدون وكيل - لا حاجة لاتصال بالشبكة أثناء التحليل
  • اكتشاف تلقائي - يكتشف تلقائياً مصادر البيانات المتاحة
  • جمع عن بُعد - يجمع البيانات من مضيفين متعددين عبر SSH
  • تقييم مُركب - أحكام ثقة عالية/متوسطة/منخفضة
  • معالجة تدفقية - يعالج ملفات السجلات الكبيرة بكفاءة

وحدات الكشف

الوحدة A: ربط السجلات

تحلل سجلات MongoDB بصيغة JSON لاكتشاف أنماط الاستغلال:

معرف الحدثالنوعالوصف
22943اتصال مقبوليُسجل عندما يتصل عميل
51800بيانات وصفية للعميليُسجل عندما يرسل العميل معلومات عن المشغل/التطبيق
22944اتصال مغلقيُسجل عندما يفصل العميل

الرؤية الأساسية: مشغلات MongoDB الشرعية ترسل دائماً بيانات وصفية للعميل. استغلال MongoBleed يتصل، يستخرج الذاكرة، ويفصل—ولكنه لا يرسل بيانات وصفية أبداً.

الوحدة B1: عدد التأكيدات

تحلل لقطات من db.serverStatus().asserts لاكتشاف أنماط غير عادية في عدادات asserts.user:

  • لقطات متعددة: تقارن اللقطات عبر الزمن لاكتشاف قمم مفاجئة في تأكيدات المستخدم
  • التخمين باستخدام لقطة واحدة: عندما تتوفر لقطة واحدة فقط، تكتشف أنماطاً مشبوهة بمقارنة asserts.user مع أنواع التأكيدات الأخرى. إذا كانت تأكيدات المستخدم مرتفعة بشكل غير متناسب (نسبة ≥250x) أو كانت جميع الأنواع الأخرى صفراً، تُصنف كمشبوهة (ثقة متوسطة)

ملاحظة: العدادات التراكمية قد تؤدي إلى نتائج إيجابية خاطئة. يُفضل استخدامها مع FTDC (الوحدة B2) للحصول على أفضل النتائج.

الوحدة B2: كشف القمم في FTDC

تحلل ملفات FTDC (Full-Time Diagnostic Data Capture) الخاصة بـ MongoDB لاكتشاف قمم زمنية محددة في عدادات التأكيدات. تقوم FTDC بأخذ عينات دورية من serverStatus، مما يتيح تحديد توقيت دقيق للهجمات المحتملة.

المتطلبات

السكريبتات Shell (mongobleed-detector.sh)

  • لينكس أو macOS (bash 4+)
  • jq - معالج JSON
  • awk (يُفضل gawk)
  • gzip - لدعم ملفات السجلات المضغوطة

مكونات Python (اختياري، لفك تشفير FTDC)

  • Python 3.8+
  • pymongo - لفك تشفير ملفات FTDC

الماسح عن بُعد (mongobleed-remote.py)

  • Python 3.8+
  • عميل SSH أصلي (أوامر ssh، scp)
  • لا حاجة لحزم Python إضافية للتشغيل الأساسي

تثبيت التبعيات

# تبعيات السكريبتات Shell
# Debian/Ubuntu
apt-get install jq gawk gzip

# RHEL/CentOS/Fedora
dnf install jq gawk gzip

# macOS
brew install jq gawk

# تبعيات Python (لفك تشفير FTDC)
pip install -r requirements.txt

التثبيت

# استنساخ المستودع
git clone https://github.com/your-org/mongobleed-detector.git
cd mongobleed-detector

# جعل السكريبتات قابلة للتنفيذ
chmod +x mongobleed-detector.sh
chmod +x mongobleed-remote.py
chmod +x ftdc-decode.py

# تثبيت تبعيات Python (اختياري، لدعم FTDC)
pip install -r requirements.txt

وضعا التشغيل

الوضع 1: التحليل المحلي

تحليل البيانات التي تم جمعها يدوياً من مضيفي MongoDB.

الوضع 2: الجمع عن بُعد

جمع البيانات تلقائياً من مضيفين متعددين عبر SSH، ثم تحليلها محلياً.

الوضع 1: التحليل المحلي

الخطوة 1: جمع البيانات

اجمع البيانات من مضيفي MongoDB ونظمها في هذا الهيكل:

./collected-data/
├── logs/                    # سجلات MongoDB بصيغة JSON
│   ├── mongod.log
│   ├── mongod.log.1
│   └── mongod.log.2.gz
├── assert-counts/           # لقطات serverStatus().asserts
│   ├── asserts-2025-01-01.json
│   └── asserts-2025-01-02.json
└── ftdc-files/              # محتويات FTDC diagnostic.data
    ├── metrics.2025-01-02T10-00-00Z-00000
    └── metrics.interim

جمع السجلات

# نسخ من المضيف البعيد
scp user@mongohost:/var/log/mongodb/mongod.log* ./collected-data/logs/

جمع عدد التأكيدات

شغّل هذا الأمر على مضيف MongoDB (يتطلب وصول mongosh):

mongosh --quiet --eval 'JSON.stringify({
  timestamp: new Date().toISOString(),
  hostname: db.hostInfo().system.hostname,
  asserts: db.serverStatus().asserts,
  uptime: db.serverStatus().uptime
})' > asserts-$(date +%Y%m%d-%H%M%S).json

انسخ ملف JSON الناتج إلى ./collected-data/assert-counts/.

نصيحة: شغّل هذا الأمر عدة مرات (مثال: كل ساعة) لوضع خط أساس وكشف القمم.

جمع ملفات FTDC

توجد ملفات FTDC في:

  • mongod: <storage.dbPath>/diagnostic.data/ (غالباً /var/lib/mongodb/diagnostic.data/)
  • mongos: مستنتج من systemLog.path (مثال: /var/log/mongodb/mongos.diagnostic.data/)
# نسخ ملفات FTDC (قد يتطلب صلاحيات sudo)
sudo cp /var/lib/mongodb/diagnostic.data/metrics.* ./collected-data/ftdc-files/

الخطوة 2: تشغيل التحليل

# وضع الاكتشاف التلقائي - يحلل جميع البيانات المتاحة
./mongobleed-detector.sh --data-dir ./collected-data/

# مع حدود مخصصة
./mongobleed-detector.sh --data-dir ./collected-data/ \
    -t 1440 \              # نظرة رجعية لمدة 24 ساعة
    -c 50 \                # حد اتصال أقل
    --spike-threshold 50   # حد قمة أقل

الوضع القديم (سجلات فقط)

للتوافق مع الإصدارات السابقة، يمكنك تحليل السجلات مباشرةً:

# مسح المسارات الافتراضية
./mongobleed-detector.sh

# مسح ملفات سجلات محددة
./mongobleed-detector.sh -p /path/to/logs/*.json

# وضع الطب الشرعي (تحليل مضيفين متعددين)
./mongobleed-detector.sh --forensic-dir /evidence/

الوضع 2: الجمع عن بُعد

جمع البيانات تلقائياً من مضيفين متعددين وتحليلها:

# إنشاء ملف المضيفين
cat > hosts.txt << EOF
mongo-prod-01.example.com
mongo-prod-02.example.com
mongo-staging.example.com
EOF

# الجمع والتحليل
./mongobleed-remote.py --hosts-file hosts.txt --user admin --output-dir ./collected-data/

خيارات الماسح عن بُعد

# استخدام مفتاح SSH محدد
./mongobleed-remote.py --hosts-file hosts.txt --user admin --key ~/.ssh/mongodb_key

# تنفيذ متوازٍ
./mongobleed-remote.py --hosts-file hosts.txt --user admin --parallel 10

# تخطي جمع FTDC (أسرع)
./mongobleed-remote.py --hosts-file hosts.txt --user admin --skip-ftdc

# جمع فقط، تحليل لاحقاً
./mongobleed-remote.py --hosts-file hosts.txt --user admin --collect-only

# تمرير خيارات SSH (مثال: مضيف قفز)
./mongobleed-remote.py --hosts-file hosts.txt --user admin \
    -o "ProxyJump=bastion.example.com"

# استخدام sudo للوصول إلى الملفات المميزة (ملفات FTDC غالباً مقيدة)
./mongobleed-remote.py --hosts-file hosts.txt --user admin --sudo

# وضع التصحيح لاستكشاف مشاكل الاتصال
./mongobleed-remote.py --hosts-file hosts.txt --user admin --debug

ملاحظة حول صلاحيات FTDC: ملفات FTDC في /var/lib/mongodb/diagnostic.data/ عادةً مملوكة للمستخدم mongodb وغير قابلة للقراءة من قبل المستخدمين العاديين. إذا رأيت تحذيرات "FTDC Permission Issues"، استخدم العلم --sudo. يتطلب ذلك أن يكون لدى المستخدم البعيد صلاحية sudo بدون كلمة مرور (NOPASSWD في sudoers).

ما يتم جمعه

تنزيل الأداة