Parte: 3 — Hacking ético y pentesting · Fuente: The Hacker Playbook 3 (P. Kim) y MITRE ATT&CK (Persistence) ⏱️ Duración estimada: 110 min · Nivel: Avanzado
Establecer y documentar mecanismos de persistencia —mantener el acceso tras reinicios o cambios de credenciales— tanto en Linux como en Windows, entendiendo cómo los usan los atacantes reales y, sobre todo, cómo detectarlos. En un pentest, la persistencia se demuestra de forma controlada y se limpia al terminar.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Persistencia Linux: cron y systemd | Reejecuta el acceso tras reinicio |
| 2 | Claves SSH autorizadas | Acceso sin contraseña, difícil de notar |
| 3 | Persistencia Windows: Run keys | Vector clásico y muy común |
| 4 | Tareas programadas y servicios | Ejecución con privilegios al arranque |
| 5 | WMI event subscription | Persistencia sigilosa y "fileless" |
| 6 | Mapeo a ATT&CK | Estandariza hallazgos y detección |
| 7 | Limpieza y responsabilidad | Un pentest no deja puertas abiertas |
HKCU/HKLM\...\Run que se ejecuta al iniciar sesión. Característica clave: vector de persistencia Windows más habitual.post/*/manage/persistence*), scripts nativos, y para Windows: schtasks, reg, sc.⚠️ Nota ética: la persistencia deja mecanismos de acceso en un sistema. Instálala solo en laboratorio propio o con autorización explícita, documenta cada cambio y elimínalo todo al cerrar el engagement. Dejar persistencia sin limpiar es negligencia grave y potencialmente ilegal.
Registra cada acción en un "cleanup log" para revertirla después.
bash
(crontab -l 2>/dev/null; echo "*/10 * * * * /tmp/.beacon.sh") | crontab -
bash
echo "ssh-ed25519 AAAA... atacante" >> ~/.ssh/authorized_keys
text
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Updater /t REG_SZ /d "C:\Users\Public\upd.exe" /f
text
schtasks /create /tn "Sync" /tr "C:\Users\Public\upd.exe" /sc onlogon /f
bash
crontab -r
text
reg delete HKCU\...\Run /v Updater /f
schtasks /delete /tn "Sync" /f
onlogon y verifícala con schtasks /query.Implementa una persistencia por sistema operativo (Linux y Windows) en tu laboratorio, verifica que sobreviven a un reinicio y límpialas por completo.
Criterio de aceptación: demuestras que ambas persistencias reactivan el acceso tras reiniciar; presentas un cleanup log con el comando de reversión de cada una; tras la limpieza, una comprobación muestra que no queda ningún artefacto. Todo en entorno propio.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| La persistencia no reactiva | Ruta o permisos del payload; verifica que exista y sea ejecutable |
crontab -r borra todo el crontab |
Cuidado: elimina TODAS las tareas; edita en vez de borrar si hay legítimas |
| Run key ejecuta pero sin sesión | LHOST/handler no disponibles; ten el listener activo |
Tarea no corre onlogon |
Trigger o usuario incorrectos; revisa con schtasks /query /v |
| Olvidas limpiar un artefacto | Sin cleanup log; documenta SIEMPRE cada cambio |
❓ ¿Por qué demostrar persistencia en un pentest? Porque muestra al cliente el impacto real: un atacante no solo entra, se queda. Ayuda a justificar inversiones en detección y respuesta. Pero se hace de forma controlada y reversible.
❓ ¿Cuál es la técnica de persistencia más común? En Windows, las Run keys y las tareas programadas; en Linux, cron y claves SSH. Son fáciles de implementar y, si no se monitorizan, pasan desapercibidas.
❓ ¿Qué es una persistencia "fileless"? Una que no deja archivos en disco, como las suscripciones a eventos WMI o el uso del registro para almacenar payloads. Son más difíciles de detectar por antivirus tradicionales.
❓ ¿Qué pasa si olvido limpiar una persistencia? Es una falta grave: dejas una puerta trasera real. Por eso se lleva un cleanup log riguroso y se verifica la eliminación antes de cerrar el engagement.
Clase 081 — Ataques a credenciales: fuerza bruta y password spraying