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-3560-exploit — CVE-2021-3560 — Exploit de escalada de privilegios de Polkit a través de una condición de carrera en accounts-daemon D-Bus | Kitploit
Herramientas/GitHubGitHub/jeanback1/cve-2021-3560-exploit
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
GitHubjeanback1/cve-2021-3560-exploit

CVE-2021-3560-exploit

CVE-2021-3560 — Exploit de escalada de privilegios de Polkit a través de una condición de carrera en accounts-daemon D-Bus

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

CVE-2021-3560 — Escalada de Privilegios en Polkit

CVE-2021-3560 es una vulnerabilidad de escalada de privilegios local en Polkit (anteriormente PolicyKit), el marco de autorización utilizado por los entornos de escritorio Linux. Un atacante local sin privilegios puede explotar una condición de carrera en la interfaz D-Bus de accounts-daemon para crear un usuario privilegiado, establecer su contraseña y, en última instancia, obtener acceso root.


Cómo Funciona

Antecedentes: Polkit + accounts-daemon

accounts-daemon (org.freedesktop.Accounts) es un servicio D-Bus del sistema que gestiona las cuentas de usuario (creación, eliminación, cambios de contraseña, etc.). Expone métodos como:

MétodoAcción
CreateUserCrea un nuevo usuario del sistema
SetPasswordEstablece la contraseña del usuario
DeleteUserElimina un usuario

Estas operaciones requieren autorización. Cuando llega una llamada D-Bus, Polkit se sitúa entre el llamante y accounts-daemon:

root@kitploit:~
Caller  →  D-Bus  →  Polkit (authorization check)  →  accounts-daemon (action)

Polkit decide si el llamante tiene permiso y, de ser así, reenvía la solicitud a accounts-daemon para su ejecución.

La Condición de Carrera

La vulnerabilidad es una carrera TOCTOU (Tiempo de Verificación, Tiempo de Uso). Aquí está la clave:

  1. Se envía una llamada de método D-Bus a accounts-daemon (por ejemplo, CreateUser).
  2. Polkit la recibe y realiza la verificación de autorización — a menudo dependiendo de un diálogo del agente de polkit que expira, devolviendo una respuesta 'no autorizado'. Sin embargo, debido a un error, el manejo de tiempo de espera/error en polkit trata incorrectamente ciertas condiciones de error como éxito o deja el procesamiento del lado del demonio en un estado parcialmente autorizado.
  3. Si la llamada D-Bus se mata en el momento preciso — después de que se toma la decisión de autorización de Polkit pero antes de que accounts-daemon termine de procesar — la creación de usuario se realiza sin la autenticación adecuada, pero el registro del usuario termina incompleto (por ejemplo, sin contraseña, sin directorio home).
  4. El atacante puede entonces usar la misma carrera para llamar a SetPassword en el usuario recién creado (pero no autenticado), o el estado incompleto en sí mismo otorga privilegios elevados.

En resumen: mata la solicitud en el momento adecuado y bypaseas la autenticación.

Qué Hace el Exploit

Este script exploit.sh automatiza toda la cadena de ataque:


Uso

root@kitploit:~
# Clone the repository
git clone https://github.com/Jeanback1/CVE-2021-3560.git
cd CVE-2021-3560

# Make the exploit executable
chmod +x exploit.sh

# Run it
./exploit.sh

Una vez que el exploit se complete, tendrás un shell root:

root@kitploit:~
whoami
# root

Ejemplo de salida

Exploit execution


Versiones Afectadas

ComponenteAfectado
polkit≤ 0.119 (sin parche)
accounts-daemon (accountsservice)Todas las versiones que usan polkit afectado

La vulnerabilidad fue parcheada en polkit 0.120 y posteriores.

Distribuciones parcheadas (no exhaustiva):

  • Ubuntu 20.04+ (con actualizaciones de seguridad después de junio de 2021)
  • Debian 11+ (con actualizaciones de seguridad)
  • RHEL 8+ / CentOS 8+ (con erratas)
  • Fedora 34+

Descargo de Responsabilidad

Este repositorio es solo para investigación de seguridad educativa y autorizada. No use este exploit en sistemas que no posea o para los que no tenga permiso explícito para probar. El autor no asume ninguna responsabilidad por el mal uso.

Descargar herramienta
PasoAcción
1. Calibración de tiempoUsa una llamada ficticia CreateUser("nobody") para medir cuánto tarda el viaje de ida y vuelta D-Bus, calculando la "ventana de muerte"
2. Creación de usuarioEnvía una llamada CreateUser para un nombre de usuario elegido, la inicia en segundo plano, espera la ventana calculada, luego la mata — explotando la carrera para crear un usuario no autorizado
3. Establecer contraseñaUna vez que el usuario existe (en un estado incompleto), envía una llamada SetPassword con la misma técnica de carrera para asignar una contraseña conocida
4. Escalada de privilegiosUsa su para cambiar al nuevo usuario, ejecuta sudo (que funciona porque el usuario fue creado a través de una ruta de autorización bypaseada), copia /bin/bash a /var/tmp/bash con SUID root, y genera un shell root