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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
drupalgeddon2-cli — إعادة كتابة CLI لـ Drupalgeddon2 (CVE-2018-7600) PoC — للاختبار/التعليم المصرح به | Kitploit
أدوات/GitHubGitHub/nayem-m/drupalgeddon2-cli
توليد الحمولةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubnayem-m/drupalgeddon2-cli

drupalgeddon2-cli

إعادة كتابة CLI لـ Drupalgeddon2 (CVE-2018-7600) PoC — للاختبار/التعليم المصرح به

عرض المستودع
منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

drupalgeddon2-cli

إعادة كتابة سطر أوامر لإثبات المفهوم Drupalgeddon2 (CVE-2018-7600)، تم بناؤها كتمرين دراسي أثناء العمل على وحدة Attacking Common Applications من Hack The Box Academy.

[!WARNING] للاستخدام المصرح به في اختبارات الأمان والتعليم فقط. تشغيل هذا ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها غير قانوني في معظم الدول. انظر الاستخدام القانوني والمسؤول.

[!NOTE] تمت كتابة التنفيذ بمساعدة الذكاء الاصطناعي. انظر ملاحظة حول التأليف.


الخلفية — لماذا بنيت هذا

Drupal هي واحدة من "التطبيقات الشائعة" التي تغطيها وحدة Attacking Common Applications من HTB Academy، و CVE-2018-7600 ("Drupalgeddon2") هو المثال الأساسي لـ RCE غير المصادق عليها. بدلاً من نسخ ولصق سكربت لمرة واحدة والانتقال، أردت أن أفهم فعليًا حقن Form API الذي يجعل الثغرة تعمل — لذلك أعدت بناء الإثبات العام من الصفر كتمرين تعليمي.

الأصل الذي يُشار إليه على نطاق واسع، a2u/CVE-2018-7600 لـ Vitalii Rudnykh، رائع لـ إظهار الثغرة، لكنه يتوقع منك تعديل الحمولة في المكان لكل تشغيل. في سير عمل مختبر/CTF — إعادة التشغيل ضد أهداف مختلفة، الرغبة في موطئ قدم قابل للتكرار — يصبح ذلك مملاً. هذا الإصدار يحولها إلى أداة CLI مناسبة بدلاً من ذلك:

  • الهدف والأمر يمرران كوسائط؛ لا حاجة لتعديل المصدر لكل تشغيل
  • يزرع غلاف ويب PHP صغير تلقائيًا (الخادم الضعيف يكتب الملف بنفسه)، مما يعطي موطئ قدم مستقر وقابل لإعادة الاستخدام
  • يمكنك إطلاق أمر واحد، أو الدخول إلى شبه-شيل تفاعلي، أو فقط نشر الغلاف والمغادرة
  • اسم ملف الغلاف ومعامل الأمر يتم عشوائيتان في كل تشغيل، حتى لا يتصادم تشغيل متكرر ولا تترك بابًا متوقعًا cmd= مفتوحًا خلفك

مصمم عن قصد لـ ثغرة معروفة ومصححة منذ زمن طويل (تم الإعلان عنها في 2018). الهدف كان فهم التقنية وإنتاج مرجع تنفيذ نظيف وموثق — لا قدرة هجومية جديدة.

ملاحظة حول التأليف

الكود في هذا المستودع تمت كتابته بـ مساعدة الذكاء الاصطناعي (Anthropic's Claude) أثناء عملي على وحدة HTB. أنا من وضعت أهداف التصميم والمتطلبات — بيئة CLI، النشر التلقائي للغلاف، الوضع التفاعلي، عشوائية اسم الغلاف والمعامل — وراجعت واختبرت النتيجة. أعلن عن ذلك لأنه الشيء الصادق، ولأن القيمة هنا تكمن في الفهم والقرارات الهندسية وليس تأليف كل سطر.

ماذا يفعل

  1. يستخدم حقن Form API لـ CVE-2018-7600 لإسقاط غلاف ويب PHP صغير على الهدف. الخادم الضعيف يفك الترميز ويكتب الملف بنفسه، مما يتجنب مشاكل الاقتباس/الهروب مع الأمر المحقون.
  2. يسمح لك بتشغيل الأوامر من خلال ذلك الغلاف باستخدام --cmd، أو الدخول إلى شبه-شيل تفاعلي باستخدام --shell.
  3. يتحقق من أن الغلاف قد هبط بالفعل ونفذ (يرمز رمز عشوائي ويتحقق منه) قبل الإبلاغ عن النجاح.

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

CVE-2018-7600 تؤثر على:

  • Drupal 7.x قبل 7.58
  • Drupal 8.x قبل 8.5.1 (أيضًا 8.3.x < 8.3.9 و 8.4.x < 8.4.6)

هذا التنفيذ يستهدف متجه Form API لـ Drupal 8 (نقطة نهاية AJAX user/register). Drupal 7 يمكن استغلاله من خلال نقطة نهاية/حمولة مختلفة و لا يتم التعامل معه هنا.

الإصدارات المصححة (7.58 / 8.5.1 وما بعدها) غير متأثرة.

المتطلبات

  • Python 3.7+
  • requests
root@kitploit:~
pip install requests

الاستخدام

root@kitploit:~
# أمر لمرة واحدة
python3 drupalgeddon2.py -u http://target/ -c id

# شبه-شيل تفاعلي
python3 drupalgeddon2.py -u http://target/ --shell

# فقط زرع الغلاف، لا تشغيل شيء
python3 drupalgeddon2.py -u http://target/ --deploy-only

# التوجيه عبر Burp، تجاهل شهادة الوكيل الذاتية التوقيع
python3 drupalgeddon2.py -u http://target/ -c id --proxy http://127.0.0.1:8080 -k

كيف يعمل

CVE-2018-7600 هو فشل في تنقية المدخلات في Form API لـ Drupal. Drupal يمثل النماذج كمصفوفات قابلة للتقديم متداخلة، والمفاتيح التي تبدأ بـ # تعامل كخصائص تقديم خاصة وليست بيانات مستخدم. التصحيح (SA-CORE-2018-002) أضاف تنقية لإزالة هذه المفاتيح المسبوقة بـ # من المدخلات المقدمة من المستخدم.

قبل التصحيح، يمكن لمهاجم غير مصادق عليه حقن خصائص تقديم في عنصر نموذج يتم معالجته بواسطة معالج AJAX الخاص بـ Drupal. تقديم خصائص مثل:

  • #post_render — قائمة من الدوال القابلة للاستدعاء التي يستدعيها Drupal بعد التقديم، و
  • #markup — الوسيطة الممررة إليها

ضد عنصر mail في نموذج تسجيل المستخدم يجعل Drupal يستدعي دالة PHP عشوائية (هنا exec) مع مدخلات يتحكم بها المهاجم خلال خطوة التقديم — أي تنفيذ كود عن بعد، دون الحاجة للمصادقة.

هذا الإثبات يستخدم تلك الأساسية لترميز سطر واحد من غلاف PHP بصيغة base64 محليًا، ويجعل الخادم يفك الترميز إلى ملف في جذر الويب، ثم يتفاعل مع ذلك الملف عبر طلبات GET عادية.

الكشف والإصلاح

إذا كنت في جانب الدفاع:

الإصلاح

  • الترقية إلى Drupal 7.58 / 8.5.1 أو أحدث (تطبيق SA-CORE-2018-002). هذا هو الإصلاح الوحيد الحقيقي.
  • إذا كان التصحيح الفوري مستحيلاً، نشر فريق أمان Drupal تصحيحًا تخفيفيًا وقت الإعلان — لكن الترقية مفضلة بشدة.

أفكار للكشف

  • فحص أجسام POST إلى نقاط نهاية النموذج/AJAX لمفاتيح مصفوفة التقديم: #post_render، #markup، #type، #lazy_builder، إلخ. طلبات النموذج المشروعة لا تحتوي على هذه.
  • وضع علامة على الطلبات إلى …/user/register?element_parents=…&_wrapper_format=drupal_ajax التي تحمل معاملات مشبوهة.
  • الربط بين POST إلى نقطة نهاية نموذج AJAX مع GET لاحق لملف .php تم إنشاؤه حديثًا في جذر الويب.
  • مراقبة إنشاء ملفات غير متوقعة في جذر ويب Drupal، وملفات PHP قصيرة ذات معامل واحد (شلات system($_GET[...])).
  • يمكن ترميز هذه السلوكيات بسهولة كتواقيع Suricata/Snort أو قواعد Sigma عبر سجلات خادم الويب.

الإسناد

  • الإثبات الأصلي والتقنية الأساسية: Vitalii Rudnykh — a2u/CVE-2018-7600
  • الإفصاح عن الثغرة: فريق أمان Drupal — SA-CORE-2018-002
  • تعمق في التقنية الذي أثر في إعادة الكتابة هذه: كتابات بحثية من Check Point و Ambionics حول Drupalgeddon2
  • إعادة كتابة CLI هذه: أنا، بمساعدة الذكاء الاصطناعي (انظر ملاحظة حول التأليف)

الاستخدام القانوني والمسؤول

تُنشر هذه الأداة لـ التعليم و اختبارات الأمان المصرح بها — بيئات مختبرك الخاصة، أهداف HTB/CTF، أو الأنظمة التي لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر هو جريمة بموجب قوانين مثل قانون إساءة استخدام الكمبيوتر البريطاني 1990، قانون الاحتيال وإساءة استخدام الكمبيوتر الأمريكي، وما يعادلها في أماكن أخرى. أنت وحدك المسؤول عن كيفية استخدامها. المؤلف لا يتحمل أي مسؤولية عن سوء الاستخدام أو أي ضرر ناتج.

الترخيص

MIT

تنزيل الأداة
العلمالوصف
-u, --url(مطلوب) رابط القاعدة للهدف، مثلاً http://target/
-c, --cmdأمر واحد لتشغيله على الهدف
--shellالدخول إلى شبه-شيل تفاعلي
--deploy-onlyفقط زرع غلاف الويب، لا تشغيل شيء
--shell-nameاسم ملف الغلاف المزروع (الافتراضي: .php عشوائي)
--paramاسم معامل GET للغلاف (الافتراضي: md5 عشوائي)
--proxyرابط الوكيل، مثلاً http://127.0.0.1:8080
-k, --insecureتعطيل التحقق من TLS (لشهادات الوكيل الذاتية)
--timeoutمهلة لكل طلب بالثواني (الافتراضي: 15)