Cron abuse with symlink (chmod -R)
Arsenal completo de comandos en la cheatsheetMuchas máquinas ejecutan tareas periódicas (cron) como root que operan sobre directorios escribibles por un usuario sin privilegios: copias de seguridad, limpiezas, sincronizaciones. Si el script aplica permisos o copia ficheros siguiendo enlaces simbólicos, ese usuario puede redirigir la operación hacia ficheros del sistema que normalmente no podría tocar.
El patrón clásico es un chmod -R (o chown -R) recursivo sobre una carpeta controlada por el atacante. chmod -R sigue los symlinks por defecto: si dentro de la carpeta hay un enlace a un fichero sensible, el chmod se aplica al destino real. Por ejemplo, con un script de root como:
cd /home/user/work/tmp
tar -xf backup.tar.gz
chmod 777 * -Rbasta con sustituir un elemento de esa carpeta por un enlace a /etc/shadow:
rm -rf /home/user/work/tmp
ln -s /etc/shadow /home/user/work/tmpCuando el cron se ejecute, dejará /etc/shadow en modo 777, escribible por cualquiera. A partir de ahí se puede editar la línea de root para ponerle un hash de contraseña conocido (por ejemplo, copiando el de un usuario cuya contraseña ya tenemos) y luego su root.
Cómo detectarlo. Un cron que no aparece en crontab -l del usuario se ve comparando la salida de ps en bucle (procesos que aparecen y desaparecen) o con herramientas como pspy, que muestran los comandos lanzados por cron sin necesidad de privilegios.
Defensa. En los scripts privilegiados: trabajar sobre rutas no manipulables por otros usuarios, evitar comodines, usar chmod/chown con --no-dereference (o find ... -type f para no tocar enlaces), y nunca aplicar permisos recursivos sobre directorios escribibles por terceros. Relacionado con otros abusos de tareas programadas como scripts de cron escribibles.