Linux Polkit权限提升漏洞(CVE-2021-4034)
1、漏洞简介 |
---|
近日,Qualys研究团队公开披露了在Polkit的pkexec 中发现的一个权限提升漏洞,也被称为PwnKit。该漏洞是由于pkexec 无法正确处理调用参数,从而将环境变量作为命令执行,任何非特权本地用户可通过此漏洞获取root权限。目前该漏洞PoC已公开。 |
2、漏洞危害 | 危险指数 |
---|
具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root 权限。 | ★★★★★ |
4、影响范围 |
---|
2009年5月至今发布的所有 Polkit 版本 | 注:Polkit预装在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等多个Linux发行版上,所有存在Polkit的Linux系统均受影响。 |
5、漏洞检测 |
---|
Linux系统用户可以通过查看Polkit版本来判断当前系统是否在受影响范围内,主流Linux发行版命令如下: | CentOS: #rpm -qa polkit | Ubuntu: #dpkg -l policykit-1 |
6、官方修复措施参考 | |
---|
Redhat Centos | https://access.redhat.com/security/cve/CVE-2021-4034 | Ubuntu | https://ubuntu.com/security/CVE-2021-4034 | Debian | https://security-tracker.debian.org/tracker/CVE-2021-4034 | Qualys | https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt |
注:不受影响版本(官方推荐)
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
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 < 0.105-26ubuntu1.2)
Ubuntu 18.04 LTS (Bionic Beaver) policykit-1 < 0.105-20ubuntu0.18.04.6)
Ubuntu 16.04 ESM (Xenial Xerus) policykit-1 < 0.105-14.1ubuntu0.5+esm1)
作者测试0.105-14.1ubuntu0.5版本不行,升级到0.105-26ubuntu1.2这个版本测试是可以的。
Ubuntu 14.04 ESM (Trusty Tahr) policykit-1 < 0.105-4ubuntu3.14.04.6+esm1)
CentOS 6 polkit < polkit-0.96-11.el6_10.2
作者测试polkit-0.96-11.el6_10.2这个版本是可以的
CentOS 7 polkit < polkit-0.112-26.el7_9.1
作者测试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
7、漏洞入侵演示
Centos6
我用logcker用户去执行提权直接切换至root用户
Centos7
Ubuntu16.04
我测试的是policykit-1-0.105-14.1ubuntu0.5这个版本,官方说低于这个版本的是有漏洞的,但这个版本也是一样的
8、漏洞修复
Centos6
(1)Centos6的 polkit-0.96-11.el6_10.2.x86_64包 下载地址:https://db88.lanzouw.com/b030pm9mh 密码:5tvz 下载后上传到服务器 安装 rpm -Uvh polkit-0.96-11.el6_10.2.x86_64.rpm 就可以
(2)/usr/bin/pkexec给这个程序降权 (这个方法是通用,每个版本都可以,但不是最好的方法)
-rwsr-xr-x 1 root root 22544 Feb 27 2019 /usr/bin/pkexec
chmod 0755 /usr/bin/pkexec 执行这个命令,将pkexec修改成755权限 ,移除 pkexec 的 suid位:
-rwxr-xr-x 1 root root 22544 Feb 27 2019 /usr/bin/pkexec
测试 已经无法提权了 (目前Centos6只能用这个办法)
Centos7
有外网的可以直接配个阿里源或是官方源直接升级就可以
yum -y update polkit
没内网的可以下载rpm包上传然后yum安装或是rpm安装
Centos7 https://db88.lanzouw.com/b030pl7ob 密码:hhwq
测试 直接就不可以了
Ubuntu16.04
修改源 在sources.list中只写下面这一个地址
(如果没有外网 Ubuntu16.04 https://db88.lanzouw.com/b030pl7qd 密码:8jq2 )
deb http://security.ubuntu.com/ubuntu focal-security main
然后 apt-get update 更新下源
先卸载原来的旧包
dpkg -l policykit-1 查看版本命令
apt-get remove policykit-1 卸载命令
替换好了源直接安装
apt-get install policykit-1
查看版本
测试 直接失败 ubuntu目前policykit-1-0.105-14.1ubuntu0.5这个版本肯定是不行 我测试policykit-1-0.105-26ubuntu1.2是可以的
9、漏洞工具
CVE-2021-4034-main.zip https://db88.lanzouw.com/b030pl7kh 密码:7ibm
上传到服务器解压
unzip CVE-2021-4034-main.zip
然后进到解压的目录 输入make进行编译下
编译后会显示这个程序 cve-2021-4034
直接./cve-2021-4034 执行就可以
注:请勿非法使用,仅供测试参考,本人概不负责。
10、个人建议
最好还是升级polkit服务的版本,降权的方法只是临时的办法
其他版本的请大家自行研究吧,有问题可以联系我交流
|