此内容并非我所编写。仅用于记录我在利用该漏洞时的执行/操作步骤,因为其中包含一些非常复杂且繁琐的步骤。
文件来源于以下地址: https://packetstormsecurity.com/files/165739/PolicyKit-1-0.105-31-Privilege-Escalation.html
关于执行的额外帮助可参考: https://ine.com/blog/exploiting-pwnkit-cve-20214034
此内容已在 OSCP 的 Blackgate 练习虚拟机上进行过测试/执行: Ubuntu 20.04 内核 5.8.0-63-generic
如何判断是否存在漏洞:
检查可用的 SUID 文件,并确保 /usr/bin/pkexec 是一个 SUID 二进制文件:
find / -perm -4000 2>/dev/null
检查该二进制文件的权限:
ls -al /usr/bin/pkexec
检查 pkexec 版本:
/usr/bin/pkexec --version
在 Blackgate 上发现的易受攻击版本:pkexec version 0.105
确保受害机器上已安装编译器。
gcc version
将文件复制到受害机器上(Makefile、evil-so.c、exploit.c) 并使用 'make all' 命令进行编译。 执行 './exploit'
检查 shell
如果出现错误提示 cc: error trying to exec 'cc1': execvp: No such file or directory。
请使用 locate cc1 命令查找二进制文件:
locate cc1
/lib/modules/4.15.0-20-generic/kernel/drivers/iio/adc/cc10001_adc.ko
/lib/modules/4.15.0-20-generic/vdso/.build-id/a0/297fe29f8038ef50a10a26c9fcf5249ccc1184.debug
/usr/lib/gcc/x86_64-linux-gnu/7/cc1
/usr/lib/gcc/x86_64-linux-gnu/7/libcc1.so
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so.0
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so.0.0.0
/usr/lib/x86_64-linux-gnu/libcc1.so.0
/usr/lib/x86_64-linux-gnu/libcc1.so.0.0.0
# 然后将该位置导出到 PATH 中供引用,并尝试重新编译
Jack@oscp:/home/Jack$ export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/7/cc1