
Una herramienta diseñada para explotar una vulnerabilidad de escalada de privilegios en el programa sudo en sistemas tipo Unix. Aprovecha una configuración incorrecta o una falla específica en sudo para obtener privilegios elevados en el sistema, permitiendo esencialmente que un usuario normal ejecute comandos como el usuario root.
⭐ Danos una estrella en GitHub — para mostrar tu apoyo!
💡 Mejor visualizado en modo oscuro :)
El proyecto SUDO_KILLER llegó a la final del SANS Difference Award 2023 en la categoría de herramienta de código abierto.
SUDO_KILLER es una herramienta diseñada para profesionales de la ciberseguridad (pentesters, auditores de seguridad, administradores de sistemas, jugadores de CTF y estudiantes de Infosec), que facilita la escalada de privilegios en entornos Linux. Se centra en vulnerabilidades relacionadas con el uso de SUDO, incluyendo configuraciones incorrectas en reglas de sudo, debilidades basadas en versiones (CVE y otras vulnerabilidades) y despliegues de binarios riesgosos (GTFOBINS). Estos puntos débiles pueden ser explotados para obtener privilegios de nivel ROOT o suplantar a otros usuarios.
SUDO_KILLER proporciona un catálogo de posibles comandos y exploits locales para la elevación manual de privilegios. Es importante destacar que se abstiene de la explotación automatizada, requiriendo que los usuarios realicen el proceso de explotación ellos mismos según su uso previsto.
A continuación se muestra una lista de verificaciones que realiza SUDO_KILLER
[!WARNING] La lista de verificación anterior NO es exhaustiva.
Para comenzar con SUDO_KILLER, puedes clonar el repositorio con git o descargar el zip. Si deseas practicar y/o probarlo, hay un entorno de prueba vulnerable (usando docker). Consulta el video relacionado que proporciona una visión general de cómo configurar el docker y ejecutar SUDO_KILLER. Se pueden configurar varios escenarios en el entorno docker y se pueden usar para probar diferentes configuraciones incorrectas o fallos. Alternativamente, puedes ejecutarlo en el sistema a auditar para verificar configuraciones incorrectas y/o fallos relacionados con sudo.```shell ./SUDO_KILLERv.sh -c -a -e -r report.txt -p /tmp
Argumentos opcionales:
</br>-c : incluye comprobaciones de CVE
</br>-a : incluye CVEs relacionados con aplicaciones/dispositivos de terceros
</br>-i : importar (modo offline) desde extract.sh
</br>-e : incluir exportación de reglas sudo / archivo sudoers
</br>-r : nombre del informe (guarda la salida)
</br>-p : ruta donde guardar la exportación y el informe
</br>-s : proporcionar contraseña de usuario para comprobaciones sudo (Si las reglas sudo no son accesibles sin la contraseña del usuario actual)
</br>-h : ayuda
> [!NOTE]
> Vale la pena señalar que al usar el argumento -c, se proporcionan dos tipos de comprobación: uno para el cual el CVE identificado se basa únicamente en la versión actual de sudo que se está utilizando y otro donde también se verifican los requisitos.
> Muy a menudo, una versión de sudo puede ser vulnerable, pero pueden ser necesarios algunos requisitos previos para una explotación exitosa.
> [!NOTE]
> Proporcionar contraseña: Si se necesita una contraseña para ejecutar sudo -l, entonces el script no funcionará si no proporcionas una contraseña con el argumento -s.
<a name="docker"></a>
### Docker (Entorno de pruebas vulnerable)
<p align="left">
<img width="25%" src="https://raw.githubusercontent.com/TH3xACE/res/main/SK/docker.gif" alt="-dockerlogo"/>
</p>
Se pone a disposición una variedad de contenedores Docker para ofrecer un entorno deliberadamente vulnerable para pruebas y experimentación práctica con `SUDO_KILLER` así como con las vulnerabilidades.```shell
service docker start
docker pull th3xace/sudo_killer_demo3
docker run --rm -it th3xace/sudo_killer_demo3
(This docker is only to test the CVE-2019-18634 (pwfeedback))
service docker start
docker pull th3xace/sudo_killer_demo2
docker run --user 1000 --rm -it th3xace/sudo_killer_demo2
Please provide the Markdown content to translate.```shell (This docker is only to test the CVE-2025-32463 (chwoot)) -> Credits to author $ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git $ cd CVE-2025-32463_chwoot
$ service docker start $ ./run.sh
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh id woot! uid=0(root) gid=0(root) groups=0(root),1001(pwn)
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh woot!
root@f722d9182d1f:/# id uid=0(root) gid=0(root) groups=0(root),1001(pwn)
## ¿Por qué es posible ejecutar "sudo -l" sin contraseña?
Por defecto, si la etiqueta NOPASSWD se aplica a cualquiera de las entradas de un usuario en un host, podrá ejecutar "sudo -l" sin contraseña. Este comportamiento puede anularse mediante las opciones verifypw y listpw.
Sin embargo, estas reglas solo afectan al usuario actual, por lo que si es posible la suplantación de usuario (usando su), sudo -l debe ejecutarse también desde ese usuario.
A veces, el archivo /etc/sudoers se puede leer incluso si no se puede acceder a sudo -l sin contraseña.
<a name="scenarios"></a>
## Escenarios
(Para evitar conflictos entre los diferentes escenarios) en el docker (demo3):```shell
switchScenario <scenario_number>
Available scenarios: 0 to 10
All Scenarios 0 : Conflict might occur!
Scenario 1: [2,3] CVE - Rules
Scenario 2: [4] Excessive permissions
Scenario 2: [5] Excessive permissions (Authentication required)
Scenario 3: [6] User Impersonation
Scenario 4: [7] Common Misconfiguration (Change owner)
Scenario 4: [8,11] Common Misconfiguration (Wildcard)
Scenario 5: [13] Missing scripts from sudo rules
Scenario 6: [17] Dangerous Environment Variables
Scenario 7: [18] Dangerous binaries (gtfobins)
Scenario 8: [19] Recursive Impersonation test
Scenario 9: [20] Environment Path Hijacking
Scenario 10: [21] App Specific sudo vuln/misconfig
Scenario 11: [5] Excessive permissions (Authentication required)
Scenario 12: [16] Backdooring sudo (Credentials Capture)
La lista de reproducción se encuentra aquí: https://www.youtube.com/watch?v=Q8iO9mYrfv8&list=PLQPKPAuCA40FMpMKWZLxQydLe7rPL5bml
[!IMPORTANT] Videos rápidos sobre cómo realizar correctamente las pruebas en el docker proporcionado.