漏洞简介:
2021年,Qualys研究团队公开披露了在Polkit的pkexec 中发现的一个权限提升漏洞,也被称为PwnKit。该漏洞是由于pkexec 没有正确处理调用参数,导致将环境变量作为命令执行,攻击者可以通过构造环境变量的方式,诱使pkexec执行任意代码使得非特权本地用户获取到root的权限。
影响范围:
影响范围(受影响的主流Linux发行版本):
Ubuntu 21.10 (Impish Indri) policykit-1 < 0.105-31ubuntu0.1
Ubuntu 21.04 (Hirsute Hippo) policykit-1 Ignored (reached end-of-life)
Ubuntu 20.04 LTS (Focal Fossa) policykit-1 < Released (0.105-26ubuntu1.2)
Ubuntu 18.04 LTS (Bionic Beaver) policykit-1 < Released (0.105-20ubuntu0.18.04.6)
Ubuntu 16.04 ESM (Xenial Xerus) policykit-1 < Released (0.105-14.1ubuntu0.5+esm1)
Ubuntu 14.04 ESM (Trusty Tahr) policykit-1 < Released (0.105-4ubuntu3.14.04.6+esm1)
CentOS 6 polkit < polkit-0.96-11.el6_10.2
CentOS 7 polkit < polkit-0.112-26.el7_9.1
CentOS 8.0 polkit < polkit-0.115-13.el8_5.1
CentOS 8.2 polkit < polkit-0.115-11.el8_2.2
CentOS 8.4 polkit < polkit-0.115-11.el8_4.2
Debain stretch policykit-1 < 0.105-18+deb9u2
Debain buster policykit-1 < 0.105-25+deb10u1
Debain bookworm, bullseye policykit-1 < 0.105-31.1
漏洞原理:
Polkit(PolicyKit)是类Unix系统中一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯。pkexec是Polkit开源应用框架的一部分,可以使授权非特权用户根据定义的策略以特权用户的身份执行命令。
漏洞复现:
环境准备:
Centos7.9:192.168.217.130
kali攻击主机:192.168.217.142
-
下载漏洞利用工具至kali(也可以直接下载到靶机)
https://github.com/berdav/CVE-2021-4034
- 下载完成后,利用kali临时开启一个web服务,让靶机进行下载
- 下载完成后,然后解压,cd进入目录,make进行编译,然后./执行命令。拿到root权限
修复建议:
更新官方补丁,下载地址:https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683
临时防护可以暂时移除 pkexec 的 suid位
chmod 0755 /usr/bin/pkexec