
أداة مصممة لاستغلال ثغرة تصعيد الامتيازات في برنامج sudo على الأنظمة الشبيهة بيونكس. تستفيد من خطأ أو سوء تكوين معين في sudo للحصول على صلاحيات مرتفعة على النظام، مما يتيح لمستخدم عادي تنفيذ أوامر بصلاحيات المستخدم الجذر (root).
⭐ قم بمنحنا نجمة على GitHub — لإظهار دعمك!
💡 يُفضل مشاهدته في الوضع الداكن :)
وصل مشروع SUDO_KILLER إلى النهائيات لجائزة SANS Difference Award 2023 في فئة الأداة مفتوحة المصدر.
SUDO_KILLER هي أداة موجهة لممارسي الأمن السيبراني (مختبرو الاختراق، مدققو الأمن، مدراء الأنظمة، لاعبو CTF وطلاب أمن المعلومات)، تسهل رفع الامتيازات داخل بيئات لينكس. تركز على الثغرات المرتبطة باستخدام SUDO، بما في ذلك سوء التهيئة في قواعد sudo، نقاط الضعف القائمة على الإصدار (CVEs وثغرات أخرى)، ونشر البرامج الثنائية الخطرة (GTFOBINS). يمكن استغلال نقاط الضعف هذه للحصول على صلاحيات ROOT أو انتحال هوية مستخدمين آخرين.
يوفر SUDO_KILLER كتالوجًا من الأوامر المحتملة والاستغلالات المحلية لرفع الامتيازات يدويًا. من المهم أنه يمتنع عن الاستغلال التلقائي، مما يتطلب من المستخدمين تنفيذ عملية الاستغلال بأنفسهم وفقًا لاستخدامه المقصود.
فيما يلي قائمة بالفحوصات التي يقوم بها SUDO_KILLER
[!WARNING] قائمة الفحوصات أعلاه ليست شاملة.
للبدء مع SUDO_KILLER، يمكنك إما استنساخ المستودع (git clone) أو تنزيل الملف المضغوط. إذا كنت ترغب في الممارسة و/أو اختبارها، فهناك بيئة اختبار ضعيفة (باستخدام docker). راجع الفيديو المرتبط الذي يقدم نظرة عامة حول كيفية إعداد docker وتشغيل SUDO_KILLER. يمكن إعداد عدة سيناريوهات في بيئة docker ويمكن استخدامها لاختبار سوء التهيئة أو العيوب المختلفة. بدلاً من ذلك، يمكنك تشغيلها على النظام المراد تدقيقه للتحقق من سوء التهيئة و/أو العيوب المتعلقة بـ sudo.```shell ./SUDO_KILLERv.sh -c -a -e -r report.txt -p /tmp
الوسائط الاختيارية:
</br>-c : تشمل فحوصات CVE</br>
-a : تشمل CVEs المتعلقة بتطبيقات/أجهزة الطرف الثالث </br>
-i : استيراد (وضع عدم الاتصال) من extract.sh </br>
-e : تشمل تصدير قواعد sudo / ملف sudoers </br>
-r : اسم التقرير (حفظ المخرجات) </br>
-p : المسار لحفظ التصدير والتقرير </br>
-s : توفير كلمة مرور المستخدم لفحوصات sudo (إذا لم يكن الوصول إلى قواعد sudo ممكنًا بدون كلمة مرور المستخدم الحالية) </br>
-h : المساعدة
> [!NOTE]
> من الجدير بالذكر أنه عند استخدام الوسيطة -c، يتم توفير نوعين من الفحوصات: واحد يعتمد فيه CVE المحدد فقط على إصدار sudo الحالي المستخدم، وآخر يتم فيه أيضًا التحقق من المتطلبات.
> في كثير من الأحيان، قد يكون إصدار sudo معرضًا للخطر ولكن قد تكون هناك حاجة لبعض الشروط المسبقة لاستغلاله بنجاح.
> [!NOTE]
> توفير كلمة المرور: إذا كانت كلمة المرور مطلوبة لتشغيل sudo -l، فلن يعمل البرنامج النصي إذا لم تقدم كلمة مرور باستخدام الوسيطة -s.
<a name="docker"></a>
### Docker (بيئة اختبار قابلة للاختراق)
<p align="left">
<img width="25%" src="https://raw.githubusercontent.com/TH3xACE/res/main/SK/docker.gif" alt="-dockerlogo"/>
</p>
يتم توفير مجموعة من حاويات Docker لإنشاء بيئة اختبار قابلة للاختراق عمدًا من أجل الاختبار والتجربة العملية لكل من `SUDO_KILLER` والثغرات.```shell
service docker start
docker pull th3xace/sudo_killer_demo3
docker run --rm -it th3xace/sudo_killer_demo3
(This docker is only to test the CVE-2019-18634 (pwfeedback))
service docker start
docker pull th3xace/sudo_killer_demo2
docker run --user 1000 --rm -it th3xace/sudo_killer_demo2
[No input text provided to translate.]```shell (This docker is only to test the CVE-2025-32463 (chwoot)) -> Credits to author $ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git $ cd CVE-2025-32463_chwoot
$ service docker start $ ./run.sh
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh id woot! uid=0(root) gid=0(root) groups=0(root),1001(pwn)
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh woot!
root@f722d9182d1f:/# id uid=0(root) gid=0(root) groups=0(root),1001(pwn)
## لماذا يمكن تشغيل "sudo -l" بدون كلمة مرور؟
افتراضيًا، إذا تم تطبيق علامة NOPASSWD على أي من الإدخالات لمستخدم على مضيف، فستتمكن من تشغيل "sudo -l" بدون كلمة مرور. يمكن تجاوز هذا السلوك عبر خيارات verifypw و listpw.
ومع ذلك، تؤثر هذه القواعد على المستخدم الحالي فقط، لذا إذا كان انتحال شخصية المستخدم ممكنًا (باستخدام su)، فيجب تشغيل sudo -l من هذا المستخدم أيضًا.
في بعض الأحيان يمكن قراءة الملف /etc/sudoers حتى لو لم يكن sudo -l متاحًا بدون كلمة مرور.
<a name="scenarios"></a>
## السيناريوهات
لتبديل السيناريو (لتجنب التعارض بين السيناريوهات المختلفة) على docker (demo3):```shell
switchScenario <scenario_number>
Available scenarios: 0 to 10
All Scenarios 0 : Conflict might occur!
Scenario 1: [2,3] CVE - Rules
Scenario 2: [4] Excessive permissions
Scenario 2: [5] Excessive permissions (Authentication required)
Scenario 3: [6] User Impersonation
Scenario 4: [7] Common Misconfiguration (Change owner)
Scenario 4: [8,11] Common Misconfiguration (Wildcard)
Scenario 5: [13] Missing scripts from sudo rules
Scenario 6: [17] Dangerous Environment Variables
Scenario 7: [18] Dangerous binaries (gtfobins)
Scenario 8: [19] Recursive Impersonation test
Scenario 9: [20] Environment Path Hijacking
Scenario 10: [21] App Specific sudo vuln/misconfig
Scenario 11: [5] Excessive permissions (Authentication required)
Scenario 12: [16] Backdooring sudo (Credentials Capture)
يمكن العثور على قائمة التشغيل هنا: https://www.youtube.com/watch?v=Q8iO9mYrfv8&list=PLQPKPAuCA40FMpMKWZLxQydLe7rPL5bml
[!IMPORTANT] فيديوهات سريعة حول كيفية إجراء الاختبار بشكل صحيح على docker المقدم.
[!WARNING] قائمة الفيديوهات أدناه ليست شاملة، للوصول إلى جميع الفيديوهات، يرجى مراجعة رابط قائمة التشغيل.