Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2021-4034 — 这是我针对 PwnKit 漏洞的漏洞利用代码的简单实现。 | Kitploit
工具/GitHubGitHub/nicoibarburu/cve-2021-4034
权限提升漏洞利用学习与教育二进制利用
GitHubnicoibarburu/cve-2021-4034

CVE-2021-4034

这是我针对 PwnKit 漏洞的漏洞利用代码的简单实现。

查看仓库
4天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

概念验证(Proof of Concept):CVE-2021-4034 (PwnKit)

注意: 本存储库及其内容是毕业论文(GrAL)的一部分,仅出于教学目的和学术研究而创建。

描述

本存储库包含针对 CVE-2021-4034 漏洞(也称为 PwnKit)的概念验证(PoC - Proof of Concept)。此内存破坏漏洞影响 Linux 系统中 Polkit 的 pkexec 组件。当 pkexec 以空参数列表(argc == 0)执行时,可以操纵环境变量,迫使其加载任意共享库,从而实现本地权限提升。

利用阶段(环境分析)

以下说明了为利用该漏洞而准备执行环境所需执行的步骤。该过程详细说明了如何利用 pkexec 中的内存读/写错误:

1. 环境准备(gconv 结构)

该漏洞利用滥用了 GLib 在尝试打印错误消息时处理字符转换的方式。为此,第一步是创建特定的目录结构,使其作为 GLib 的 GCONV 转换模块的本地存储库。

2. 环境变量操作

漏洞的关键在于注入 GCONV_PATH 环境变量,利用 pkexec 在 argc == 0 状态下引发的越界写入。通过这种方式,程序被迫使用异常的字符集,这告诉 GLib 应在上一步创建的受控目录中查找字符转换模块。

3. 创建恶意共享库 (.so)

为了执行我们的代码,需要编译一个共享库(shared object 或 .so)。当 pkexec 尝试处理一个无法找到的字符集时,它将从我们伪造的 gconv 目录中加载该库。由于 pkexec 是启用了 SUID 位的二进制文件(以 root 身份运行),加载该库时我们的代码将获得 root 权限,从而完全控制系统(例如打开一个 root shell)。

4. 配置 gconv-modules 文件

最后,需要在该本地目录中创建一个名为 gconv-modules 的配置文件。该文件充当索引:它告诉 GLib 必须加载哪个特定库(.so)来执行所请求的特定字符集的转换。该文件将 pkexec 请求的转换与第 3 步中创建的共享库关联起来。

编译与清理

项目包含一个 Makefile,用于自动化 C 二进制的编译和环境清理。

  • 编译项目: $ make

  • 清理生成的文件(临时文件、文件夹和二进制文件): $ make clean

下载工具