Parte: 9 — Forense digital y respuesta a incidentes · Fuente: NIST SP 800-86 y documentación de systemd/journald ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Aprender dónde vive la evidencia en un sistema Linux comprometido: logs de sistema (syslog/journald), historial de shell, cron/systemd timers, cuentas y autenticación, y persistencia común de atacantes. Al terminar podrás reconstruir la actividad de un usuario y de un intruso en Linux.
Al finalizar, el alumno podrá:
/var/log y journald.| # | Tema | Por qué importa |
|---|---|---|
| 1 | /var/log y syslog |
Registro central del sistema |
| 2 | journald (systemd) | Logs binarios modernos |
| 3 | auth.log / secure y wtmp/btmp | Autenticación y sesiones |
| 4 | Historial de shell | Comandos ejecutados |
| 5 | cron y systemd timers | Persistencia programada |
| 6 | Cuentas, sudoers, SSH keys | Acceso y escalado |
| 7 | Timestamps y stat |
Orden de eventos |
| 8 | Persistencia típica de atacantes | Qué buscar |
/var/log. Característica: legible con herramientas estándar.journalctl. Característica: incluye metadatos ricos y es más difícil de manipular en texto plano.last, lastb, lastlog.~/.bash_history, ~/.zsh_history. Característica: puede tener timestamps si HISTTIMEFORMAT está activo.stat: muestra timestamps atime/mtime/ctime de un archivo. Característica: base del timeline en Linux.journalctl, last, lastb, grep, stat, ausearch (auditd).log2timeline/plaso para timeline.bash
mount -o ro,noexec,nodev imagen.dd /mnt/evidencia
Trabaja sobre una imagen de una VM Linux propia montada en solo lectura.
bash
grep -Ei "accepted|failed|sudo" /mnt/evidencia/var/log/auth.log
bash
last -f /mnt/evidencia/var/log/wtmp
lastb -f /mnt/evidencia/var/log/btmp
bash
journalctl --directory=/mnt/evidencia/var/log/journal --no-pager
bash
cat /mnt/evidencia/home/*/.bash_history
cat /mnt/evidencia/root/.bash_history
bash
ls -la /mnt/evidencia/etc/cron*
cat /mnt/evidencia/var/spool/cron/crontabs/*
ls -la /mnt/evidencia/etc/systemd/system/
bash
cat /mnt/evidencia/etc/passwd | awk -F: '$3>=1000'
cat /mnt/evidencia/etc/sudoers
cat /mnt/evidencia/home/*/.ssh/authorized_keys
bash
grep -R . /mnt/evidencia/home/*/.bashrc /mnt/evidencia/etc/rc.local 2>/dev/null
stat sobre archivos sospechosos.En una VM Linux propia, simula una intrusión (crea un usuario extra con UID 0, añade una clave SSH y un cron de persistencia) y luego, desde la imagen, detecta y documenta los tres mecanismos.
Criterio de aceptación: tu informe identifica el usuario malicioso, la clave SSH añadida y la tarea de persistencia, cada uno con la ruta del artefacto, el timestamp relevante y el comando que lo reveló.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
.bash_history vacío |
Atacante lo borró o usó unset HISTFILE. Busca en journald o timeline. |
| journalctl no lee la carpeta | Falta --directory correcto o journal corrupto. Verifica la ruta. |
| Timestamps alterados | El atacante usó touch. Contrasta con ctime y con logs. |
| Montaste con exec | Riesgo de ejecutar malware. Usa siempre ro,noexec,nodev. |
| No ves los logins | Logs rotados/comprimidos. Descomprime auth.log.*.gz. |
❓ ¿journald reemplaza a syslog? Coexisten. journald es el estándar en systemd; muchos sistemas también reenvían a syslog en texto.
❓ ¿El historial de shell tiene fechas?
Solo si HISTTIMEFORMAT estaba configurado. Si no, tienes el orden pero no la hora exacta.
❓ ¿Cómo detecto persistencia?
Revisa cron, systemd timers/services, rc.local, perfiles de shell, y authorized_keys. Compara contra un baseline limpio.
❓ ¿ctime se puede falsificar?
mtime y atime sí con touch; ctime es más difícil (requiere manipular el reloj o el FS), por eso es más confiable.
Clase 205 — Análisis de artefactos de Windows