🐧Linux - Grupos privilegiados
LXC / LXD
LXD es similar a Docker y es el administrador de contenedores de Ubuntu. Tras la instalación, todos los usuarios se agregan al grupo LXD. La pertenencia a este grupo se puede utilizar para escalar privilegios mediante la creación de un contenedor LXD, haciéndolo privilegiado y luego accediendo al sistema de archivos del host en /mnt/root
. Confirmemos la pertenencia al grupo y usemos estos derechos para escalar a root.
Descomprima la imagen de Alpine.
Inicie el proceso de inicialización de LXD. Elija los valores predeterminados para cada solicitud. Consulte esta publicación para obtener más información sobre cada paso.
Importar la imagen local.
Inicie un contenedor privilegiado con el conjunto security.privileged
en true
para ejecutar el contenedor sin una asignación de UID, lo que hace que el usuario raíz en el contenedor sea el mismo que el usuario raíz en el host.
Monte el sistema de archivos del host.
Por último, crea un shell dentro de la instancia del contenedor. Ahora podemos explorar el sistema de archivos del host montado como root. Por ejemplo, para acceder al contenido del directorio raíz en el tipo de host cd /mnt/root/root
. Desde aquí podemos leer archivos confidenciales como /etc/shadow
, obtener hashes de contraseñas u obtener acceso a claves SSH para conectarnos al sistema host como root, y más.
Docker
Colocar un usuario en el grupo docker es esencialmente equivalente al acceso de nivel raíz al sistema de archivos sin necesidad de una contraseña. Los miembros del grupo docker pueden generar nuevos contenedores docker. Un ejemplo sería ejecutar el comando docker run -v /root:/mnt -it ubuntu
. Este comando crea una nueva instancia de Docker con el directorio /root en el sistema de archivos del host montado como un volumen. Una vez que se inicia el contenedor, podemos navegar hasta el directorio montado y recuperar o agregar claves SSH para el usuario root. Esto se puede hacer para otros directorios, como que /etc
se puede usar para recuperar el contenido del /etc/shadow
archivo para descifrar contraseñas sin conexión o agregar un usuario privilegiado.
Discos
Los usuarios dentro del grupo de discos tienen acceso total a todos los dispositivos incluidos en /dev
, como /dev/sda1
, que suele ser el dispositivo principal que utiliza el sistema operativo. Un atacante con estos privilegios puede utilizar debugfs
para acceder a todo el sistema de archivos con privilegios de nivel raíz. Al igual que con el ejemplo del grupo Docker, esto se podría aprovechar para recuperar claves SSH, credenciales o para agregar un usuario.
ADM
Los miembros del grupo adm pueden leer todos los registros almacenados en /var/log
. Esto no otorga acceso directo a la raíz, pero se puede aprovechar para recopilar datos confidenciales almacenados en archivos de registro o enumerar acciones de los usuarios y trabajos cron en ejecución.
Caso práctico
Utilice los derechos de grupo privilegiados del usuario secaudit
para localizar una flag.
Nos logueamos y lo primero que observamos es que este usuario no puede ejecutar sudo, pero vemos que pertenece al grupo adm
, lo que nos permite leer todos los registros almacenados en /var/log
.
Vemos que hay un montón de archivos, por lo que vamos a filtrar con grep buscando la cadena 'HTB{
' que es el formato de flag por defecto en Hack the Box:
Bingo! Obtenemos la flag: ch3ck_th0se_gr0uP_m3mb3erSh1Ps!
Última actualización