SUDO KILLER – La herramienta para identificar y explotar vulnerabilidades de Sudo
Sudo Killer (SK) es una herramienta que te permite escalar privilegios en Linux a través de la explotación de SUDO.
Esta poderosa herramienta puede ser utilizada por pentesters, administradores de sistemas, estudiantes, auditores de sistemas y trolls 🙂
Introducción
** ADVERTENCIA: SUDO_KILLER es parte del proyecto KILLER. SUDO_KILLER todavía está en desarrollo y puede haber algunos problemas, los cuales puedes reportar.
Descripción general
SUDO_KILLER es una herramienta que se puede utilizar para la escalada de privilegios en un entorno Linux al abusar de SUDO de varias maneras. La herramienta ayuda a identificar configuraciones incorrectas dentro de las reglas de sudo y vulnerabilidades dentro de la versión de sudo que se está utilizando. Asimismo, el uso de binarios peligrosos, todo esto podría ser explotado para elevar el privilegio a ROOT.
SUDO_KILLER proporcionará una lista de comandos o exploits locales que podrían explotarse para elevar los privilegios. Cabe señalar que la herramienta no realiza ninguna explotación en su nombre, la explotación deberá realizarse manualmente y esto es lo que se pretende.
Características
Algunas de las comprobaciones / funcionalidades que realiza la herramienta se describen a continuación
- Configuraciones erróneas
- Binarios peligrosos
- Versiones vulnerables de sudo – CVE
- Variables de entorno peligrosas
- Recolectar credenciales
- Directorios grabables donde residen los scripts
- Binarios que pueden ser reemplazados
- Identificar scripts faltantes
Qué incluye la versión 2 de SK:
Nuevas comprobaciones y/o escenarios
- CVE-2019-14287 – runas
- Aún no hay CVE – sudoedit – ruta absoluta
- CVE-2019-18634 – pwfeedback
- Suplantación de usuario
- lista de usuarios en el grupo sudo
- Rendimiento mejorado
- Errores corregidos
- Mejora continua de la forma en que se presenta la información
- Entrada de contraseña anónima eliminada varias veces
- Nueva funcionalidad: modo sin conexión: capacidad de extraer la información requerida del sistema auditado y ejecutar SK en el host.
- Entorno de prueba: un docker para jugar con la herramienta y diferentes escenarios.
Uso
Ejemplo de modo en línea
./sudo_killer.sh -c -e -r report.txt -p /tmp
Ejemplo de modo sin conexión
Debes ejecutar extract.sh en el sistema que se va a auditar / máquina víctima. Copia el resultado de /tmp/sk_offline.txt en el sistema para ser auditado / máquina víctima a tu host.
Debes ejecutar SK con el siguiente parámetro:
./sudo_killer.sh -c -i /path/sk_offline.txt
Argumentos opcionales
- c: incluye comprobaciones CVE con respecto a la versión sudo
- i: importar (modo sin conexión) desde extract.sh
- e: incluye la exportación del archivo de reglas/sudoers de sudo
- r: nombre del informe (guardar la salida)
- p: ruta donde guardar la exportación y el informe
- s: proporciona la contraseña de usuario para las comprobaciones de sudo (no se recomienda ++ excepto para CTF)
- h: ayuda
Comprobación de CVE´s
Para actualizar la base de datos de CVE debes ejecutar el siguiente script ./cve_update.sh
Proporcionar contraseña (Importante)
Si necesitas ingresar una contraseña para ejecutar sudo -l, entonces el script no funcionará si no proporcionas una contraseña con el argumento -s.
Cómo ejecutar SK en la máquina objetivo/auditada
Si estás en una máquina que tiene conexión a Internet, simplemente debes clonar la herramienta y ejecutarla. Si estás en una máquina que no tiene internet, debes usar git clone en tu host, comprimir la herramienta (tar), luego transferir el archivo comprimido a través de http/smb. Esto si usas servidor web apache / python simplehttpserver / smb server / nc) y luego debes descomprimir el archivo en el sistema de destino.
** NOTA: sudo_killer no se explota automáticamente por sí solo, se diseñó de esta manera a propósito. Debes verificar la configuración incorrecta y las vulnerabilidades y luego te propondrá lo siguiente (si tienes suerte, la ruta a root está cerca):
- Una lista de comandos para explotar
- Una lista de exploits
- Alguna descripción sobre cómo y por qué se pudo realizar el ataque
¿Por qué es posible ejecutar “sudo -l” sin contraseña?
Por defecto, si la etiqueta NOPASSWD se aplica a cualquiera de las entradas para un usuario en un host, él o ella podrá ejecutar “sudo -l” sin una contraseña. Este comportamiento puede anularse a través de las opciones generatepw y listpw.
Sin embargo, estas reglas solo afectan al usuario actual. Por lo que sí es posible la suplantación del usuario (usando su), sudo -l también debe iniciarse desde este usuario.
A veces, el archivo /etc/sudoers se puede leer incluso si no se puede acceder a sudo -l sin contraseña.
Docker: entorno de prueba vulnerable
** IMPORTANTE: la forma recomendada de probar la herramienta es utilizar la imagen de Docker creada a propósito para la prueba. La imagen contiene varias vulnerabilidades y configuraciones incorrectas relacionadas con el uso de SUDO.
¡Toda esta demostración se realiza desde el contenedor Docker disponible en Docker Hub! **
Una imagen Docker está disponible en Docker Hub y se compila automáticamente en cada actualización: https://hub.docker.com/r/th3xace/sudo_killer_demo. Inicialmente se basa en la imagen oficial de debian: jessie Docker (debian: jessie).
1. Debes extraer SUDO_KILLER_DEMO, la imagen de Docker Hub (esta versión puede estar un poco más actualizada):
service docker start docker pull th3xace/sudo_killer_demo docker run --rm -it th3xace/sudo_killer_demo
2. Tienes que compilar localmente desde Dockerfile:
service docker start git clone https://github.com/TH3xACE/SUDO_KILLER.git cd SUDO_KILLER docker build -t th3xace/sudo_killer_demo . docker run --rm -it th3xace/sudo_killer_demo
Nota: es importante tener en cuenta que el docker es solo un entorno que se puede utilizar para jugar con la herramienta. Este contiene varias vulnerabilidades para explotar. La herramienta está destinada a ser utilizada por sí sola.
Demostraciones
A continuación, se proporcionan varios videos con diferentes escenarios de explotación.
Video – Corriendo SUDO KILLER: