Plaso (anteriormente llamado Log2Timeline) es el framework de análisis forense digital de referencia mundial. Desarrollado y mantenido por equipos DFIR profesionales, es la herramienta que utilizan analistas forenses, fuerzas del orden, equipos de respuesta a incidentes (CSIRT/CERT) y el FBI para reconstruir la actividad de un sistema en el tiempo.
Su función principal es procesar cientos de fuentes de artefactos distintas (Event Logs de Windows, historial de navegadores, ficheros Prefetch, registros IIS, MFT del sistema de archivos, registros del sistema...) y combinarlas en una única super línea de tiempo ordenada cronológicamente. Esta visión unificada es imprescindible para entender cómo se movió un atacante a través de un sistema o una red entera.
El pipeline tiene tres herramientas principales:
- log2timeline.py — El motor de procesado: extrae eventos de las fuentes y los almacena en una base de datos SQLite llamada Plaso Storage File (.plaso)
- psort.py — El motor de filtrado y exportación: filtra, ordena y exporta los eventos del .plaso en múltiples formatos (CSV, JSON, Timesketch...)
- pinfo.py — El inspector: muestra estadísticas y metadatos de un archivo .plaso
| Fase | Herramienta | Entrada | Salida |
|---|---|---|---|
| 1. Extracción | log2timeline.py | Imagen de disco, carpeta, archivo individual | Archivo .plaso (SQLite) |
| 2. Inspección | pinfo.py | Archivo .plaso | Estadísticas, parsers usados, rango de fechas |
| 3. Filtrado/Export | psort.py | Archivo .plaso + filtros | CSV, JSON, Timesketch, OpenSearch |
| 4. Visualización | Timesketch / Excel / Kibana | CSV o JSON exportado | Línea de tiempo interactiva |
Plaso funciona con un sistema de parsers y plugins:
- Parsers: leen formatos de archivo específicos (evtx, sqlite, csv, lnk, prefetch, registry...) y extraen eventos con timestamp
- Plugins de parsers: procesan sub-formatos dentro de un archivo (ej: dentro de un SQLite de Firefox hay plugins para historial, descargas, cookies)
- Analizadores: procesan los eventos ya extraídos para detectar patrones (dominios DGA, hashes de malware conocidos, etc.)
- Formatters: convierten los eventos al formato de salida deseado
El caso de uso más potente de Plaso es procesar una imagen de disco completa (E01, VMDK, raw DD). Plaso la monta internamente y aplica automáticamente todos los parsers relevantes según el sistema operativo detectado, extrayendo millones de eventos de decenas de fuentes distintas en un solo comando.
Ver solución
Ver solución
Ver solución
Ver solución
Ver solución
psort.py es la herramienta de post-procesado de Plaso. Permite filtrar los eventos del archivo .plaso con una sintaxis muy expresiva y exportarlos en múltiples formatos. Dominar sus filtros es clave para trabajar eficientemente con líneas de tiempo grandes.
Ver solución
Timesketch es una plataforma web open source creada por Google para el análisis colaborativo de líneas de tiempo forenses. Permite visualizar los eventos de Plaso en una interfaz gráfica interactiva, añadir comentarios, etiquetar eventos sospechosos, colaborar con otros analistas y ejecutar queries de búsqueda avanzada. Es la plataforma usada por los equipos de Google Mandiant.
Escenario: el CSIRT recibe una alerta de que el servidor FILESERVER01 fue comprometido. Tienes disponibles los Event Logs de tres servidores (DC01, WEBSERVER01, FILESERVER01), los logs IIS del servidor web y los archivos Prefetch de FILESERVER01. Tu misión: reconstruir exactamente cómo entró el atacante, cómo se movió lateralmente y qué acciones realizó.
| Parser | Fuente | Artefactos extraídos |
|---|---|---|
evtx | Windows Event Logs (.evtx) | Todos los eventos de Windows: auth, procesos, red, servicios |
prefetch | Windows Prefetch (.pf) | Programas ejecutados + timestamps de primera/ultima ejecución |
winreg | Windows Registry (NTUSER.DAT, SYSTEM...) | Run keys, MRU, servicios, timezone, USB, shellbags |
mft | NTFS Master File Table | Timestamps de todos los archivos (creación, modificación, acceso) |
lnk | Accesos directos Windows (.lnk) | Archivos accedidos recientemente con timestamps |
chrome_history | Google Chrome / Edge (SQLite) | URLs visitadas, descargas, cookies, búsquedas |
firefox_history | Mozilla Firefox (SQLite) | URLs visitadas, descargas, cookies, marcadores |
iis | Microsoft IIS logs (W3C format) | Peticiones HTTP: URL, IP, user agent, código de respuesta |
apache_access | Apache/Nginx access logs | Peticiones HTTP en formato Combined Log |
syslog | Linux syslog, auth.log | Autenticación SSH, sudo, inicio de servicios |
utmp | Linux wtmp/utmp/btmp | Logins de consola y SSH con timestamps |
sqlite | Cualquier base de datos SQLite | Contenido de tablas con timestamps |
pe | Ejecutables PE (.exe/.dll) | Metadata de compilación, timestamps, imports |
olecf | Documentos Office (.doc, .xls, .ppt) | Timestamps de modificación, metadata de autor |
| Formato (-o) | Herramienta destino | Extensión | Mejor para |
|---|---|---|---|
l2tcsv | Excel, LibreOffice, grep, Python | .csv | Análisis manual, filtrado rápido |
json | Scripts Python, jq, OpenSearch | .json | Procesado programático |
dynamic | Timesketch, OpenSearch | .jsonl | Visualización colaborativa |
xlsx | Excel (directo) | .xlsx | Informes formateados |
tln | Timeline Explorer (Eric Zimmerman) | .tln | Análisis con Timeline Explorer |
huma | Terminal / revisión rápida | (stdout) | Visualización rápida en terminal |
| Táctica MITRE | Artefactos que deja | Parser Plaso | Campo a buscar |
|---|---|---|---|
| Initial Access (TA0001) | Peticiones HTTP al vector de entrada | iis, apache_access | URL del exploit, IP atacante |
| Execution (TA0002) | Nuevos procesos creados | evtx, prefetch | Event ID 4688, archivos .pf |
| Persistence (TA0003) | Run keys, servicios, tareas programadas | winreg, evtx | 7045, 4698, Registry Run keys |
| Privilege Escalation (TA0004) | Cuentas añadidas a grupos admin | evtx | 4728, 4732, 4672 |
| Defense Evasion (TA0005) | Logs borrados, timestamps manipulados | evtx, mft | 1102, 104, discrepancias de timestamps |
| Credential Access (TA0006) | Ejecución de Mimikatz, volcado LSASS | prefetch, evtx | mimikatz.pf, acceso a lsass.exe |
| Lateral Movement (TA0008) | Logons de red desde otros hosts | evtx | 4624 LogonType=3, IP de origen |
| Collection (TA0009) | Acceso masivo a archivos | mft, evtx | Timestamps MFT, 4663 (Object Access) |
| Exfiltration (TA0010) | Uploads en historial web, transferencias | chrome_history, evtx | URLs de servicios de almacenamiento |