CVE-2021-4034 Linux Polkit权限提升漏洞复现

VSole2022-04-14 15:51:47

前言

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

如果文章中的漏洞出现敏感内容产生了部分影响,请及时联系作者,望谅解。

一、漏洞简述

本次研究漏洞为 CVE-2021-4034,该漏洞是由于pkexec 无法正确处理调用参数,从而将环境变量作为命令执行,具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root 权限。

polkit介绍

polkit是一个授权管理器,其系统架构由授权和身份验证代理组成,pkexec是其中polkit的其中一个工具,他的作用有点类似于sudo,允许用户以另一个用户身份执行命令。

polkit 提供了一个授权 API,供特权程序(“ MECHANISMS ” )使用,通常通过某种形式的进程间通信机制为非特权程序( “ SUBJECTS ”)提供服务。

在这种情况下,该机制通常将主体视为不受信任。对于来自主体的每个请求,该机制需要确定该请求是否被授权,或者它是否应该拒绝为主体提供服务。使用 polkit API,一种机制可以将此决定转交给受信任的一方:polkit 权威。

polkit 权限被实现为系统守护进程 polkitd (8),它本身没有什么特权,因为它以 polkitd系统用户身份运行。机制、主体和认证代理使用系统消息总线与授权机构进行通信。

除了作为授权之外,polkit 还允许用户通过验证管理用户或客户端所属会话的所有者来获得临时授权。这对于机制需要验证系统的操作员确实是用户还是管理用户的场景很有用

plokit基本组成

  • polkit— 授权管理器
  • polkitd— polkit 系统守护进程
  • pkcheck— 检查一个进程是否被授权
  • pkaction— 获取有关已注册操作的详细信息
  • pkexec— 以另一个用户身份执行命令
  • pkttyagent— 文本认证助手

二、漏洞检测

Linux下受漏洞影响Polkit版本范围为 2009年5月至今发布的所有 Polkit 版本。

在CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等。

多个Linux发行版上预装有Polkit,即所有存在Polkit的Linux系统均受影响。

但部分版本不受影响:

CentOS:

  • 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:

  • Ubuntu 14.04 ESM:policykit-1-0.105-4ubuntu3.14.04.6+esm1
  • Ubuntu 16.04 ESM:policykit-1-0.105-14.1ubuntu0.5+esm1
  • Ubuntu 18.04 LTS:policykit-1-0.105-20ubuntu0.18.04.6
  • Ubuntu 20.04 LTS:policykit-1-0.105-26ubuntu1.2
  • Ubuntu 21.10:policykit-1-0.105-31ubuntu0.1

Debain:

  • Debain stretch:policykit-1 0.105-18+deb9u2
  • Debain buster:policykit-1 0.105-25+deb10u1
  • Debain bullseye:policykit-1 0.105-31+deb11u1
  • Debain bookworm,bullseye:policykit-1 0.105-31.1

可以通过以下命令查看版本信息,判断是否可利用:

CentOS:

rpm -qa polkit

Ubuntu:

dpkg -l policykit-1

图1 漏洞检测

可以看到目前版本受此漏洞影响。

三、漏洞复现

目前POC已公开,如下:

https://github.com/berdav/CVE-2021-4034

首先下载POC,通过以下命令

git clone https://github.com/berdav/CVE-2021-4034.git

进入POC目录,使用make命令

图2 make命令

注:若出现以下情况,属于环境未安装gcc

图3 缺少gcc,make失败

之后使用./cve-2021-4034命令进行利用,可以看到成功进行提权。

图4 提权利用

由普通用户权限至root权限。

四、漏洞修复

目前各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

截止到目前2022/01/27, CentOS目前已提供安全更新包。

下载地址:http://mirror.centos.org/centos/7/updates/x86_64/Packages/

结束语

本文主要介绍了CVE-2021-4034 Linux Polkit权限提升漏洞的复现过程,漏洞主要利用pkexec 无法正确处理调用参数,从而将环境变量作为命令执行,具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root 权限。

漏洞linux系统
本作品采用《CC 协议》,转载必须注明作者和本文链接
2021年12月23日,360漏洞云团队在互联网上监测到一则关于Linux kernel中存在竞争漏洞的信息。漏洞编号: CVE-2021-20321,漏洞威胁等级:中危。
服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等) 网站指纹识别(包括,cms,cdn,证书等),dns记录 whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等) 子域名收集,旁站,C段等 google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等 传输协议,通用漏洞,ex
⽹上整理的⾯试问题⼤全,有些 HW ⾯试的题,已经收集好了,提供给⼤家。
有关 OpenSSH 中现已修补的缺陷的详细信息现已披露,Qualys 漏洞研究经理 Saeed Abbasi 表示,该漏洞允许远程攻击者在易受攻击的SSH代理上执行任意命令。
要了解SambaCry漏洞及其工作原理的更多信息,请阅读我们之前的文章。当时,在互联网上发现了近48.5万台支持Samba的计算机,研究人员预测,基于SambaCry的攻击也有可能像WannaCry勒索软件一样广泛传播。?该预测结果相当准确,因为卡巴斯基实验室研究人员团队建立的蜜罐捕捉到了一个恶意软件活动,该活动利用SambaCry漏洞用加密货币挖掘软件感染Linux计算机。
360漏洞云监测到Linux kernel存在拒绝服务漏洞(CVE-2021-38207)。
360漏洞云监测到Linux kernel存在信息泄露漏洞(CVE-2021-34556, CVE-2021-35477)。
360漏洞云监测到安全研究人员近日公开了Linux kernel eBPF本地提权漏洞(CVE-2021-3490)的POC。
具有基本用户权限的本地攻击者可以利用Linux内核中的三个15年漏洞来获取易受攻击的Linux系统上的root用户特权。阅读GRIMM研究人员发表的分析。跟踪为CVE-2021-27363的第二个漏洞是堆溢出漏洞。这三个漏洞还可能导致数据泄漏,并且可以被利用来触发拒绝服务条件。这些缺陷会影响所有已装载scsi_transport_iscsi内核模块的Linux发行版,但是好消息是这不是默认设置。“ Linux内核加载模块是因为检测到新硬件,还是因为内核功能检测到缺少模块。”
VSole
网络安全专家