🐧Grupos privilegiados
Grupo 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.
devops@NIX02:~$ id
uid=1009(devops) gid=1009(devops) groups=1009(devops),110(lxd)Descomprima la imagen de Alpine.
devops@NIX02:~$ unzip alpine.zip
Archive: alpine.zip
extracting: 64-bit Alpine/alpine.tar.gz
inflating: 64-bit Alpine/alpine.tar.gz.root
cd 64-bit\ 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.
devops@NIX02:~$ lxd init
Do you want to configure a new storage pool (yes/no) [default=yes]? yes
Name of the storage backend to use (dir or zfs) [default=dir]: dir
Would you like LXD to be available over the network (yes/no) [default=no]? no
Do you want to configure the LXD bridge (yes/no) [default=yes]? yes
/usr/sbin/dpkg-reconfigure must be run as root
error: Failed to configure the bridgeImportar 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.
Grupo 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 /etc que se puede usar para recuperar el contenido del archivo /etc/shadow para crackear contraseñas sin conexión o agregar un usuario privilegiado.
Grupo Disks
Los usuarios dentro del grupo de disks 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 root.
Al igual que con el ejemplo del grupo Docker, esto se podría aprovechar para recuperar claves SSH, credenciales o para agregar un usuario.
Ver usuarios del grupo disks
Grupo 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
Pregunta 1
Utiliza los derechos de grupo privilegiados del usuario
secauditpara 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 y directorios, 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_************!
Última actualización
¿Te fue útil?