Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pkwned — Prueba de concepto para CVE-2021-4034 (con explotación experimental sin rastros) | Kitploit
Herramientas/GitHubGitHub/dosamp/pkwned
Escalada de PrivilegiosFrameworks de ExploitsExplotaciónDesarrollo de PayloadsExplotación de Binarios
GitHubdosamp/pkwned

pkwned

Prueba de concepto para CVE-2021-4034 (con explotación experimental sin rastros)

Ver Repositorio
hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

pkwned: Prueba de concepto para CVE-2021-4034

Este PoC ejecutará PAYLOAD_PATH (según se define en constants.h) con privilegios de root desde una versión vulnerable de pkexec que se ejecuta en glibc. El directorio "GCONV_PATH=." debe contener un archivo ejecutable que lleve el nombre del directorio que contiene el módulo gconv.

Como se describe en el aviso de Qualys [1], esto generará un mensaje de syslog. Hasta ahora he encontrado dos enfoques para evitarlo:

  • Mediante el uso de g_find_program_in_path, pkexec realiza una comprobación access() usando g_file_test y otra explícita después, lo que permite una condición de carrera (eliminando "GCONV_PATH=./gconv" en el medio) para llamar a g_printerr sin 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 repositorio contiene la utilidad gconv-fuse que monta un sistema de archivos FUSE sobre "GCONV_PATH=.", que aparece vacío después de una llamada a access("gconv", X_OK). Solo funciona si la opción de configuración user_allow_other de FUSE está habilitada.

  • Si se puede evitar que pkexec lea /etc/shells, esto también fallará sin registrar nada:

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 }

Se pueden usar espacios de nombres de montaje para montar un archivo ilegible sobre él, pero eso también requiere un espacio de nombres de usuario, que mapea a un usuario sin privilegios a root y hace ineficaz el bit setuid de pkexec (p. ej., "unshare -r -u -m").

Ten en cuenta que GLib ha incorporado una corrección para g_find_program_in_path (probablemente para las próximas versiones estables después de v2.70.3 y v2.71.0) que hará que este exploit sea inviable al devolver siempre rutas completas reales. [2]

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

Descargar herramienta