السلام عليكم ورحمه الله وبركاته
في تدوينه سابقه شرحت مفهوم   Capabilities “رابط التدوينه ”  في هذه التدوينه راح اتكلم عن بعض طرق استغلالها في تصعيد الصلاحيات Privlge Escalation.

في البدايه هذه قائمه بـ Capabilities مع الشرح.

لمعرفه التطبيقات الي تم اعطائها صلاحيات Capabilities ننفذ هذا الامر
getcap -r / 2>/dev/null

نلاحظ في الصوره السابقه ان python3.9 يمتلك صلاحيات ap_setuid=ep
وهذا الخيار وظيفته التحكم بـ UID مثلما تم توضيحه في القائمه بالاعلى.
في هذه الحاله نقدر نستخدم بايثون لتغيير UID الخاص بحسابنا مؤقتا وتصعيد الصلاحيات.
هذا الامر راح يغير UID ويرفع صلاحياتنا مع ملاحظه تغيير python3.9 حسب الاصدار المتوفر.

python3.9 c ‘import os; os.setuid(0); os.system(“/bin/bash”)’

طيب في حاله كان perl يملك صلاحيات ap_setuid=ep

نقدر نستخدم هذا الامر

perl -e ‘use POSIX qw(setuid); POSIX::setuid(0); exec “/bin/bash”;’

ناخذ هذا المثال صلاحيات cap_dac_read_search كمثال
لنفرض ان python يملك هذه الصلاحيه, حسب الجدول السابق هذه الصلاحيه تسمح للتطبيق بتجاوز صلاحيه اي ملف وتشغيله او فتحه
مثلا نقدر نقراء ونعدل على  اي ملف على النظام بسطر واحد فقط مثلا:

python3.9 -c ‘f = open(“/etc/passwd”,”r”) ; print(f.read());’

في المثال السابق قدرنا نقراء ملف etc/password

ايضا نقدر على سبيل المثال نعدل على ملف sudorese ونعطي حسابنا صلاحيات sudo

مثال آخر
لو كانت هذه المره الصلاحياتcap_chown الخاصه بتغيير مالك ملف ما.
نقدر  في هذه الحاله نغير ملكيه اي ملف ونعدل عليه
على سبيل المثال نقدر نغير صلاحيات ملف passwd او shadow  ثم نعدل على باسورد root

لاحظ في الصوره السابقه ملف passwd الملك هو root قدرنا نغيره الى Buhaimedi باستخدام كود python

python3.9 -c ‘import os; os.chown(“/etc/passwd”,1000,1000);’

1000,1000 في السطر السابق هو ID الخاص بحساب Buhaimedi

نكتفي بهذا القدر في هذه التدوينه ونستكمل الامثله في تدوينه قادمه ان شاء الله

اذا كانت هذه التدوينه مفيده اتمنى مشاركتها مع اصدقائك من خلال الضغط على ايقونه تويتر بالاسفل. ومتابعة حسابي في تويتر buhaimedi@