0Pricing
Ethical Hacking Academy · درس

إساءة استخدام SUID وSudo

إعدادات خاطئة

إساءة استخدام SUID وSudo درس مجاني في Ethical Hacking Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ethical Hacking Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ethical Hacking Academy 4 دروس في المجموع.

بتّة SUID

تجعل بتّة صلاحية SUID الملف يعمل بصلاحيات مالكه بدلًا من المستخدم الذي شغّله. وعندما يكون المالك هو root، ينفّذ ثنائي SUID بصلاحيات root؛ وهذا مفيد لأدوات مثل passwd، لكنه خطير عند إساءة استخدامه.

-rwsr-xr-x  1 root root  /usr/bin/passwd
# the s in rws = SUID bit

العثور على ثنائيات SUID

عدّد كل ملفات SUID وقارنها بخط أساس معروف وآمن. فأي شيء غير معتاد، مثل محرر نصوص أو مفسّر أو ثنائي مخصص، يُعد مرشحًا للاستغلال.

find / -perm -4000 -type f 2>/dev/null

GTFOBins

يُعد GTFOBins فهرسًا منسقًا يوضح كيفية إساءة استخدام ثنائيات Unix القياسية للخروج من القيود أو تصعيد الصلاحيات أو قراءة الملفات وكتابتها عند منحها صلاحيات SUID أو sudo. تحقّق دائمًا من الثنائي الذي عثرت عليه في GTFOBins.

# gtfobins.github.io -> search the binary name

إساءة استخدام find مع SUID

إذا كانت بتّة SUID معيّنة لـ find، فإن خياره -exec يشغّل الأوامر بصلاحيات root، ما يمنحك صدفة root فورًا.

find . -exec /bin/sh -p \; -quit
# -p preserves the elevated privileges

الخروج إلى Shell عبر SUID

تُنشئ العديد من المفسّرات وبرامج العرض shells. ويمكن لـ vim أو less أو awk أو python المعيّن بصلاحيات SUID أن يفتح لك صدفة root.

awk "BEGIN {system(\"/bin/sh -p\")}"
# or in less:  !/bin/sh

إعدادات Sudo الخاطئة

شغّل sudo -l لعرض الأوامر المسموح بها. وتُعد الإدخالات التي تتيح لك تشغيل ثنائي قابل للاستغلال بصلاحيات root، أو استخدام NOPASSWD، مكاسب فورية. وليس من الضروري أن يكون الأمر shell؛ إذ يعرض GTFOBins طرق الخروج للعديد من الأوامر.

sudo -l
# (ALL) NOPASSWD: /usr/bin/vim

Sudo مع محرر أو برنامج عرض

إذا كان بإمكانك تشغيل sudo vim (أو إصدارات less وmore وman وnano)، فيمكنك تشغيل shell بصلاحيات root من داخل البرنامج.

sudo vim -c ":!/bin/sh"
# inside less:  sudo less file  ->  !/bin/sh

حيلة LD_PRELOAD

إذا حافظ sudo على LD_PRELOAD (عبر env_keep)، فيمكنك تحميل مكتبة مشتركة خبيثة تُشغَّل بصلاحيات root عند بدء أمر sudo.

sudo -l  # look for env_keep+=LD_PRELOAD
sudo LD_PRELOAD=/tmp/evil.so program

ثغرات إصدارات Sudo

تحتوي إصدارات محددة من sudo على عيوب، مثل فيض الذاكرة heap في Baron Samedit (CVE-2021-3156)، وتجاوز -u#-1 (CVE-2019-14287). قارِن sudo --version مع ثغرات CVE المعروفة.

sudo --version
# vulnerable < 1.9.5p2 -> Baron Samedit

ثنائيات SUID مخصصة

يشحن المطورون أحيانًا أدوات مساعدة مخصصة بصلاحيات SUID تستدعي برامج أخرى بالاسم دون استخدام مسار مطلق. وإذا كنت تتحكم في PATH، فيمكنك اختطاف ذلك الاستدعاء، ما يمهّد لتقنيات إساءة استخدام PATH التي سنغطيها لاحقًا.

التقوية والأخلاقيات

ينبغي للمدافعين تقليل عدد ثنائيات SUID، واستخدام المسارات المطلقة، والتخلي عن الصلاحيات مبكرًا، والحفاظ على تحديث sudo بقواعد صارمة. وبصفتك مختبرًا، لا تستغل هذه الأمور إلا ضمن النطاق المصرّح لك.

اختبار سريع

اختبر معرفتك بـ SUID وsudo.

مراجعة

لقد تعلّمت إساءة استخدام SUID وsudo:

  • يشغّل SUID الثنائي بصفته مالكه، وغالبًا ما يكون root
  • تحقّق من الثنائيات التي عثرت عليها في GTFOBins
  • يمكن الخروج إلى shell عبر find وvim وawk وless باستخدام SUID أو sudo
  • يمكن أيضًا لـ LD_PRELOAD وثغرات sudo، مثل Baron Samedit، تصعيد الصلاحيات

التالي: مهام cron وإساءة استخدام PATH.

الأسئلة الشائعة

هل درس «إساءة استخدام SUID وSudo» مجاني؟

نعم — نص درس «إساءة استخدام SUID وSudo» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ethical Hacking Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ethical Hacking Academy 4 دروس في المجموع.

ماذا ستتعلم في «إساءة استخدام SUID وSudo»؟

إعدادات خاطئة تتمرن على Ethical Hacking Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ethical Hacking Academy؟

لا تُشترط خبرة سابقة. Ethical Hacking Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إساءة استخدام SUID وSudo»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ethical Hacking Academy هذا؟

نعم. كل درس في Ethical Hacking Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التعداد
  2. إساءة استخدام SUID وSudo
  3. مهام Cron وPATH
  4. ثغرات النواة
← العودة إلى Ethical Hacking Academy