Sploitus

Exploit for cve-2021-4034 CVE-2021-4034

kitploit · 2026-08-26

Exploit Code

MARKDOWN78 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ALLU-METTE-CVE-2021-4034
# CVE-2021-4034 - PwnKit(Polkit 本地权限提升)

## 概述

本仓库包含 **CVE-2021-4034** (即 PwnKit)的概念验证代码。**仅用于个人学习和教育目的** 。请仅在您拥有或明确授权测试的环境中使用。

## 依赖项

要构建该利用程序,您需要:

  * gcc
  * make
  * nasm
  * ld
  * xxd



## 描述

`pkexec` 是 Polkit 的一个实用程序,允许授权用户以另一用户身份执行程序(通常具有管理权限),类似于 `sudo`。CVE-2021-4034 是一个影响该二进制文件的内存损坏漏洞。问题源于当 `argc == 0` 时对参数的不正确处理。这导致了一个越界写入,使攻击者能够控制内存中第一个环境变量指针。在某些条件下,该漏洞允许非特权本地用户将权限提升至 root。更多详情可在此处获取:https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt

最终的利用程序完全自包含,无需外部库或额外的二进制文件。

## 测试环境:

  * **发行版:** Ubuntu 20.04 LTS

  * **内核版本:** 5.4.0-42-generic

  * **Polkit 版本:** 0.105-26ubuntu1(未打补丁)




包含的 shell(`shell.asm`)是用 x86_64 汇编语言编写的,适用于 Linux。它被编译成一个共享对象(.so)并嵌入到利用程序中。

可选地,shell 可以用 C 语言实现,以便在不同发行版间获得更好的可移植性,但为学习目的和练习底层汇编编码,保留了 ASM 版本。

**注意:** 该利用程序和 shell 仅兼容 x86_64 Linux 环境。使用其他架构(如 ARM 或 i386)将无法工作。

## 使用方法

编译:

root@kitploit:~
    
    
    make
    

运行:

root@kitploit:~
    
    
    ./exploit
    

清理:

root@kitploit:~
    
    
    make clean
    

## 缓解措施

该漏洞已于 2022 年 1 月修复。

如果您运行的是未打补丁版本的 `policykit-1`,您的系统可能容易受到攻击。作为临时缓解措施,您可以移除 `pkexec` 的 SUID 位:

root@kitploit:~
    
    
    chmod -s /bin/pkexec