Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2021-4034 — Esta é a minha implementação simples de um exploit para a vulnerabilidade PwnKit. | Kitploit
Ferramentas/GitHubGitHub/nicoibarburu/cve-2021-4034
Escalada de PrivilégiosExploraçãoAprendizado e EducaçãoExploração de Binários
GitHubnicoibarburu/cve-2021-4034

CVE-2021-4034

Esta é a minha implementação simples de um exploit para a vulnerabilidade PwnKit.

Ver Repositório
5há 24 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Prova de Conceito (Proof of Concept): CVE-2021-4034 (PwnKit)

Nota: Este repositório e o seu conteúdo fazem parte de um Trabalho de Fim de Curso (TFC), criados apenas para fins didáticos e investigação académica.

Descrição

Este repositório contém uma prova de conceito (PoC - Proof of Concept) para a vulnerabilidade CVE-2021-4034 (também conhecida como PwnKit). Esta vulnerabilidade de corrupção de memória afeta o componente pkexec do Polkit em sistemas Linux. Ao executar o pkexec com uma lista de argumentos vazia (argc == 0), as variáveis de ambiente podem ser manipuladas para o forçar a carregar uma biblioteca partilhada arbitrária, obtendo assim uma escalada local de privilégios.

Fases da exploração (Análise do ambiente)

De seguida, são explicados os passos necessários para preparar o ambiente de execução a fim de explorar a falha. Este processo especifica como é aproveitado o erro de leitura/escrita na memória do pkexec:

1. Preparação do ambiente (estrutura gconv)

Este exploit abusa do modo como o GLib gere a conversão de caracteres ao tentar imprimir uma mensagem de erro. Para tal, o primeiro passo é criar uma estrutura de diretórios específica que sirva como repositório local de módulos de conversão GCONV para o GLib.

2. Manipulação das variáveis de ambiente

O segredo da vulnerabilidade é injetar a variável de ambiente GCONV_PATH, aproveitando a escrita fora dos limites causada pela condição argc == 0 do pkexec. Desta forma, o programa é forçado a utilizar um conjunto de caracteres anómalo, o que indica ao GLib que os módulos de conversão de caracteres devem ser procurados no diretório controlado criado no passo anterior.

3. Criação de uma biblioteca partilhada maliciosa (.so)

Para executar o nosso código, é necessário compilar uma biblioteca partilhada (shared object ou .so). Quando o pkexec tentar processar um conjunto de caracteres que não consegue encontrar, irá carregar esta biblioteca a partir do nosso diretório gconv falso. Como o pkexec é um binário com o bit SUID ativado (é executado como root), ao carregar esta biblioteca o nosso código obterá privilégios de root, assumindo o controlo total do sistema (por exemplo, abrindo uma shell root).

4. Configuração do ficheiro gconv-modules

Por fim, deve ser criado o ficheiro de configuração com o nome gconv-modules nesse diretório local. Este ficheiro atua como um índice: indica ao GLib qual biblioteca específica (.so) deve carregar para efetuar a conversão do conjunto de caracteres específico solicitado. Este ficheiro estabelece a ligação entre a conversão solicitada pelo pkexec e a biblioteca partilhada criada no passo 3.

Compilação e Limpeza

O projeto possui um Makefile para automatizar a compilação do binário C e a limpeza do ambiente.

  • Para compilar o projeto: $ make

  • Para limpar os ficheiros gerados (temporários, pastas e binários): $ make clean

Baixar ferramenta