Tareas Cron

Los trabajos Cron son tareas programadas en sistemas Unix/Linux que se ejecutan automáticamente en intervalos específicos. Sin embargo, si no están configurados correctamente, pueden convertirse en un vector de ataque para escalar privilegios o ejecutar código malicioso. A continuación, se describen técnicas comunes para explotar vulnerabilidades en trabajos Cron:

Cron

Comandos ejecutados por otros usuarios, incluyendo tareas cron. Funciona escaneando el sistema de archivos procfs. Para usar pspy, podemos ejecutar el siguiente comando:

./pspy64

Identificación de trabajos cron

Para ver trabajos cron específicos del usuario, podemos utilizar el comando:

crontab -l

Para ver los trabajos cron de todo el sistema, podemos verificar los archivos en /etc/crontab, /etc/cron.d/, y /var/spool/cron/crontabs/.

Técnicas de explotación de trabajos Cron

Técnica Descripción
Modificación de scripts Si un script ejecutado por Cron tiene permisos de escritura globales, un atacante puede modificarlo para ejecutar comandos arbitrarios.
Creación de scripts maliciosos Si Cron ejecuta un script específico, un atacante puede crear un script con el mismo nombre y colocarlo en un directorio que tenga prioridad en el PATH.
Condiciones de carrera Un atacante puede reemplazar rápidamente un script mientras Cron lo está ejecutando, aprovechando ventanas de tiempo críticas.
Manipulación de variables de entorno Si Cron depende de variables de entorno no configuradas o no depuradas, un atacante puede manipularlas para alterar el comportamiento del comando ejecutado.
Manipulación de rutas (PATH) Si Cron usa comandos sin rutas absolutas, un atacante puede modificar la variable PATH para ejecutar versiones maliciosas de esos comandos.
Ataques de enlace simbólico Si Cron escribe la salida en un archivo, un atacante puede crear un enlace simbólico desde ese archivo a un archivo confidencial o a un script controlado por él.
Uso de características del shell Si Cron usa un shell como bash, un atacante puede explotar características como la sustitución de comandos para ejecutar código arbitrario.
Inserción en el Crontab Si un usuario con privilegios permite que otros agreguen entradas al Crontab (por ejemplo, con crontab -e), un atacante puede insertar comandos maliciosos.
Permisos de usuario insuficientes Si Cron se ejecuta con privilegios elevados y no restringe adecuadamente los scripts o binarios que ejecuta, un atacante puede modificar o crear archivos para escalar privilegios.
Manipulación de la salida Si la salida de Cron se guarda en un archivo con permisos de escritura globales, un atacante puede manipular o reemplazar este archivo para ejecutar código arbitrario.
Ataques de sincronización Conociendo el momento exacto en que se ejecuta un trabajo Cron, un atacante puede lanzar ataques sincronizados, como la manipulación de scripts justo antes de su ejecución.
Inclusión de archivos locales (LFI) Si Cron incluye archivos sin validar adecuadamente la entrada, un atacante puede aprovechar esto para incluir archivos maliciosos que se ejecuten durante la tarea programada.