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
pkwned — Prova de Conceito para CVE-2021-4034 (com exploração experimental sem rastros) | Kitploit
Ferramentas/GitHubGitHub/dosamp/pkwned
Escalada de PrivilégiosFrameworks de ExploraçãoExploraçãoDesenvolvimento de PayloadsExploração de Binários
GitHubdosamp/pkwned

pkwned

Prova de Conceito para CVE-2021-4034 (com exploração experimental sem rastros)

Ver Repositório
há 4 anosAinda 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

pkwned: Prova de Conceito para CVE-2021-4034

Este PoC executará PAYLOAD_PATH (conforme definido em constants.h) com privilégios de root a partir de uma versão vulnerável do pkexec rodando em glibc. O diretório "GCONV_PATH=." precisa conter um arquivo executável com o nome do diretório que contém o módulo gconv.

Conforme descrito no advisory da Qualys [1], isso produzirá uma mensagem de syslog. Até agora, encontrei duas abordagens para evitar isso:

  • Ao usar g_find_program_in_path, o pkexec faz uma verificação access() usando g_file_test e outra explícita logo em seguida, o que permite uma condição de corrida (excluindo "GCONV_PATH=./gconv" no meio do caminho) para chamar g_printerr sem log_message:

641 if (access (path, F_OK) != 0) 642 { 643 g_printerr ("Error accessing %s: %s\n", path, g_strerror (errno)); 644 goto out; 645 }

Este repositório contém o utilitário gconv-fuse que monta um sistema de arquivos FUSE sobre "GCONV_PATH=.", que parece vazio após uma chamada de access("gconv", X_OK). Ele só funciona se a opção de configuração user_allow_other do FUSE estiver habilitada.

  • Se o pkexec puder ser impedido de ler /etc/shells, isso também resultará em erro sem registro:

356 if (!g_file_get_contents ("/etc/shells", 357 &contents, 358 NULL, /* gsize *length */ 359 &error)) 360 { 361 g_printerr ("Error getting contents of /etc/shells: %s\n", error->message); 362 g_error_free (error); 363 goto out; 364 }

Namespaces de montagem podem ser usados para montar um arquivo ilegível sobre ele, mas isso também requer um namespace de usuário, mapeando um usuário sem privilégios para root e tornando o bit setuid do pkexec ineficaz (por exemplo, "unshare -r -u -m").

Observe que o GLib incorporou uma correção para g_find_program_in_path (provavelmente nas próximas versões estáveis após v2.70.3 e v2.71.0) que tornará este exploit inviável ao sempre retornar caminhos completos reais. [2]

[1] https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt [2] https://gitlab.gnome.org/GNOME/glib/-/commit/13ee46538f901a8eca8e7a4c167a8838ed0858d4

Baixar ferramenta