目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CVE-2021-4034 PoC — polkit 缓冲区错误漏洞

来源
关联漏洞
标题: polkit 缓冲区错误漏洞 (CVE-2021-4034)
Description:polkit是一个在类 Unix操作系统中控制系统范围权限的组件。通过定义和审核权限规则,实现不同优先级进程间的通讯。 polkit 的 pkexec application存在缓冲区错误漏洞,攻击者可利用该漏洞通过精心设计环境变量诱导pkexec执行任意代码。成功执行攻击后,如果目标计算机上没有权限的用户拥有管理权限,攻击可能会导致本地权限升级。
Description
Prova de conceito para a vulnerabilidade Polkit Pkexec: CVE-2021-4034(Pkexec Local Privilege Escalation)
介绍
# PwnKit

Esse repositório contém um exploit que desenvolvi para entender como funciona a vulnerabilidade Polkit Pkexec: CVE-2021-4034(Pkexec Local Privilege Escalation). O  Polkit (anteriormente conhecido como PolicyKit) é um componente que tem como função controlar os privilégios nos sistemas operacionais do tipo Unix. Fornece de forma organizada uma forma de os processos sem privilégios se comunicarem com processos que possuem privilégios. A vulnerabilidade permite que qualquer usuário, um usuário comum do sistema, sem privilégios administrativos, alcance o máximo de privilégio no sistema.

A vulnerabilidade ocorre quando a função ```main()``` do pkexec processa argumentos de linha de comando onde o argumento é ```0```. A função tenta acessar a lista de argumentos e acaba tentando acessar o ```rgvvoid``` (um controlador de argumentos de linhas de comando), ou seja, ocorre quando o pkexec não lida corretamente com os parâmetros de chamada e acaba tentando executar variáveis de ambiente como comandos. O resultado disso é a memória sendo lida e gravada fora dos limites, onde um invasor pode explorar e dessa forma injetar uma variável de ambiente que pode fazer com que um código malicioso seja carregado.

É simples de se entender, o fato dessas variáveis de ambiente poderem ser introduzidas torna o código vulnerável. A forma que eu usei para explorar a vulnerabilidade foi a mesma que foi usada pelo [Qualys](https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034). O processo é simples, basta injetar uma variável GCONV_PATH no ambiente de trabalho do pkexec, ou seja, qualquer diretório disponível para usuários comuns do sistema. Essa variável vai executar uma biblioteca compartilhada como root. Temos que deixar claro que essa técnica é barulhenta e deixa muitos rastros, pois a injeção da variável cria um diretório e ele compartilha os privilégios com o usuário root.

Caso você veja que seu sistema está vulnerável, atualize o quanto antes. Caso ainda assim você acredite que esteja vulnerável, podes remover o bit SUID do pkexec como uma forma de mitigação temporária, dessa forma: ```# chmod 0755 /usr/bin/pkexec```

Mais detalhes de como funciona a vulnerabilidade [aqui](https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034).

## Funcionamento

O exploit vai funcionar instantaneamente em distribuições vulneráveis baseadas em Debian, Ubuntu, Fedora e CentOS. Foi criado para fins de estudos sobre a vulnerabilidade e para ver até onde eu consigo chegar atualmente sozinho com a linguagem C :D. Não use isso para fazer o que não deve.

```bash
$ git clone https://github.com/Nosferatuvjr/PwnKit
$ cd PwnKit
$ chmod +x ./PwnKit.sh
$ ./PwnKit.sh
# id
```

Ou

```bash
$ git clone https://github.com/Nosferatuvjr/PwnKit
$ cd PwnKit
$ chmod +x ./PwnKit
$ ./PwnKit
$ ./PwnKit id #shell interativa
```

### Showcase

![](./imgs/pwnkitpoc.png)

### Build

```bash
gcc -shared PwnKit.c -o PwnKit -Wl,-e,entry -fPIC
```

## Detalhes da técnica e referências

- https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034

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

## Fale comigo em :
<p align="left">
  <a href="https://github.com/Nosferatuvjr" target="_blank"><img src="https://img.shields.io/badge/Github-Nosferatuvjr-green?style=for-the-badge&logo=github"></a>
  <a href="https://www.instagram.com/vivald0x6f" target="_blank"><img src="https://img.shields.io/badge/IG-%40vivald0x6f-red?style=for-the-badge&logo=instagram"></a>
</p>
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →