La escalación de privilegios vertical es una técnica utilizada en ciberseguridad para obtener privilegios mayores y conseguir un control más amplio sobre un sistema informático. Al escalar privilegios de forma vertical, un usuario con bajos privilegios puede convertirse en un usuario con mayores derechos, como el usuario root, obteniendo acceso total al sistema.
¿Cómo utilizar sudo para escalar privilegios?
sudo es una herramienta de Linux que permite a los usuarios ejecutar comandos con los privilegios de otro usuario. Esta herramienta es clave para la escalación de privilegios, ya que, al conocer sus vulnerabilidades, se puede aprovechar para elevar privilegios dentro del sistema.
Ejecutar comandos con sudo
Para ejecutar un comando utilizando sudo como otro usuario, se debe indicar el usuario con -u. Generalmente, se emplea el identificador numérico del usuario:
sudo -u #1 /bin/bash
Este comando intentará ejecutar bash con el usuario cuyo identificador es 1.
Vulnerabilidad en versiones desactualizadas
Existen sistemas cuya seguridad no está al día, lo que permite explotar ciertas vulnerabilidades de sudo. Un bug conocido permite escalar privilegios utilizando un identificador inesperado para el usuario, tal como -1. En estos casos, este identificador se interpreta como 0, lo que equivale al usuario root:
sudo -u #-1 /bin/bash
Gracias a este fallo, se puede lograr acceso como root sin conocer su contraseña.
Conexión a máquinas virtuales para pruebas de concepto
Para aprender y practicar esta técnica, es posible utilizar plataformas como TryHackMe, que ofrecen entornos controlados para pruebas de ciberseguridad.
Acceder a TryHackMe: Busca la máquina virtual llamada "sudo security bypass".
Iniciar la máquina: Configura la conexión VPN para obtener acceso al sistema.
Conectar vía SSH: Usa los datos proporcionados (como el usuario y el puerto SSH alternativo) para establecer conexión con:
ssh tryhackme@<IP> -p 2222
Verificar posibilidades con sudo: Una vez dentro, usa sudo -l para ver qué comandos se pueden ejecutar.
Consejos prácticos en ciberseguridad
Mantener sistemas actualizados: Las fallas de seguridad como la mencionada pueden ser corregidas con actualizaciones del sistema, por lo que es esencial mantener todos los sistemas al día.
Monitoreo de accesos: Vigila los registros de accesos y uso de sudo para detectar posibles intrusiones no autorizadas.
Capacitación continua: El campo de la ciberseguridad evoluciona rápidamente. Participar en cursos y practicar en entornos controlados te permite estar al tanto de las nuevas técnicas y herramientas.
Recuerda, el conocimiento profundo de estas prácticas asegura que puedas proteger mejor un sistema, además de formar una base sólida para detectar y gestionar posibles vulnerabilidades.
Continúa explorando y expandiendo tus habilidades en ciberseguridad. La práctica constante y la curiosidad te abrirán puertas en este fascinante campo.
El sistema, para ejecutar comandos como otro usuario con el comando sudo, siempre espera un valor positivo asignado a un usuario dentro de Linux. Al ingresar un valor negativo, este no es un valor esperado, por lo tanto causa un bug que termina ejecutando el comando como el usuario ROOT con id 0. Este bug fue parchado en versiones mas actuales, esto quiere decir que no todos los sistemas son vulnerables.
optener una consola como daemon no es casi como si fuera ya root?
No, debido a que el usuario Daemon se utilizaba comúnmente para ejecutar "Daemons" sin privilegios elevados. Esto para limitar el acceso al sistema durante un posible hackeo. Recuerda que el sistema de archivos de Unix funciona con permisos, Permisos para el usuario dueño del archivo o directorio, permisos para un grupo de usuarios y permisos para otros usuarios. Pero tener un usuario ejecutando múltiples Daemon permitía tener control sobre todos ellos, es por ello por lo que hoy en día cada Daemon tiene su propio usuario.
El usuario ROOT tiene acceso a todos el sistema de archivos sin importar si no es un usuario dueño o no pertenece al grupo del archivo.
¡Importante! esta vulnerabilidad no es del sistema operativo en sí, sino específicamente del programa sudo.
Afecta a las siguientes versiones 1.7.1 hasta 1.8.27
Fue solucionada con un parche lanzado en la versión 1.8.28
con el siguiente comando se puede observar la versión en uso:
sudo --version
Ahora vamos a ver escalada de privilegios vertical
Try Hack Me > Sudo Security Bypass
Teacher correccion, el comando tal cual:
sudo -u#1 /bin/bash (no funciona) pero: sudo -u \#1 /bin/bash, haciendo el escape del numeral si lo toma.
Teacher correccion, e comando tal cual
sudo -u#1 /bin/bash (no funciona) pero: sudo -u \#1 /bin/bash, haciendo el escape del numeral si lo toma.