cd ~/blog

~/vulns/privileged-groups-privesc.md

Privileged Groups Privesc

privesc 18-06-2026
privescgroupsLinux

~2 min de lectura


1. Descripción técnica del ataque

En Linux, la pertenencia de un usuario a ciertos grupos del sistema otorga capacidades que pueden derivar en escalada de privilegios, incluso sin necesidad de sudo o binarios SUID. Si un usuario sin privilegios pertenece (por configuración indebida) a uno de estos grupos, puede abusar de los permisos asociados para leer datos sensibles o convertirse en root. Los más relevantes:

  • disk — acceso de lectura/escritura a los dispositivos de bloque (/dev/sda*). Con herramientas como debugfs se puede leer cualquier archivo del sistema (incluido /root/.ssh/id_rsa o /etc/shadow) saltándose los permisos del sistema de archivos.
  • adm — lectura de los logs del sistema (/var/log). Permite encontrar credenciales filtradas en auth.log, logs de aplicaciones, etc.
  • shadow — lectura de /etc/shadow (hashes de contraseñas) para crackearlos (ver Writable Critical Files Privesc).
  • docker — ejecutar contenedores; montando / del host en un contenedor se obtiene root trivialmente.
  • lxd / lxc — crear contenedores privilegiados que montan el host → root.
  • video, sudo, wheel, staff — diversos abusos según el sistema.

2. Impacto de la vulnerabilidad

  • Escalada de privilegios a root (directa con docker/lxd/disk) o lectura de material sensible que conduce a root (adm, shadow).
  • Lectura arbitraria de archivos saltándose los permisos (con disk).

3. Historia y evolución

  • Son capacidades de diseño de Unix/Linux mal asignadas; su abuso está plenamente catalogado (HackTricks, GTFOBins-style).
  • Los grupos docker y lxd se han vuelto vectores muy habituales con la popularización de los contenedores.

4. Factores que la hacen posible

  1. Un usuario sin privilegios incluido en un grupo privilegiado sin necesitarlo realmente.
  2. Las herramientas necesarias disponibles (debugfs, docker, lxc, etc.).

5. Detección

id            # ¿pertenezco a disk, adm, docker, lxd, shadow...?
groups

Herramientas como LinPEAS destacan automáticamente la pertenencia a grupos peligrosos.

6. Mitigación

  1. Aplicar el principio de mínimo privilegio: no añadir usuarios a grupos del sistema salvo necesidad real.
  2. Revisar periódicamente las pertenencias a disk, adm, docker, lxd, shadow.
  3. Restringir el acceso a las herramientas que habilitan el abuso.

7. Ejemplo de explotación real

Grupo disk — leer la clave SSH de root con debugfs:

ben@ready:/var/www/html$ id
uid=1000(ben) gid=1000(ben) groups=1000(ben),6(disk)

ben@ready:/var/www/html$ df -h
/dev/sda1       6.9G  1.7G  4.8G  26% /

ben@ready:/var/www/html$ debugfs /dev/sda1
cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
...

Grupo adm — buscar credenciales en los logs:

charlie@hit:/$ id
uid=1000(charlie) gid=1000(charlie) grupos=1000(charlie),4(adm)

charlie@hit:/var/log$ cat auth.log | grep pass
... Failed password for invalid user r00tP4zzw0rd from ...

Grupo docker — montar el host y obtener root:

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

8. Clasificación

  • Tipo: Privilege Escalation / Security Misconfiguration
  • CWE:
    • CWE-250 – Execution with Unnecessary Privileges
    • CWE-266 – Incorrect Privilege Assignment

9. Resumen

La pertenencia a grupos privilegiados (disk, adm, docker, lxd, shadow…) permite escalar privilegios sin sudo ni SUID: leer archivos arbitrarios con debugfs (disk), credenciales en logs (adm) o montar el host en un contenedor (docker/lxd). La defensa es el mínimo privilegio en la asignación de grupos. Relacionado con Writable Critical Files Privesc y Linux Capabilities Privesc.

// relacionados