Cómo analizar ActivitiesCache.db en el navegador
Paso a paso: abra ActivitiesCache.db y su -wal en un visor gratuito, filtre aplicaciones, archivos, tiempo de foco y portapapeles, y exporte a CSV o JSON.
Resumen. Abra Windows Timeline Parser, suelte ActivitiesCache.db y ActivitiesCache.db-wal (o la carpeta completa del perfil, o un ZIP de KAPE/Velociraptor), lea las advertencias y filtre por tipo: Apertura (app / archivo) para archivos, En uso (foco) para tiempo de foco, Portapapeles para texto copiado, Operaciones pendientes para eliminaciones. Abra cualquier fila para ver el JSON original. Exporte a CSV o JSON. Todo se ejecuta localmente en WebAssembly; no se sube nada.
Este es el complemento práctico de la guía completa de análisis forense de Windows Timeline. Da por hecho que ya tiene los archivos; si no, empiece por dónde está ActivitiesCache.db y cómo adquirirlo.
Antes de empezar
| Necesita | Por qué |
|---|---|
Una copia de ActivitiesCache.db | La base tras el checkpoint |
El ActivitiesCache.db-wal correspondiente | La actividad confirmada más reciente (por qué) |
La ruta Users\<name>\ conservada en la adquisición | Atribuir cada base a una cuenta |
| Un navegador de escritorio actual | El parser se ejecuta como WebAssembly en un Web Worker |
El parser es de solo lectura por diseño: lee bytes, no incluye ningún motor SQLite y no tiene ninguna ruta de código que escriba en sus archivos. Aun así, trabaje sobre copias, porque es una buena práctica con cualquier herramienta.
Paso 1: adquirir la base de datos con su WAL
Tome la carpeta ConnectedDevicesPlatform completa de cada usuario. Un target WindowsTimeline de KAPE o una recolección de Velociraptor ya lo hacen (target de KapeFiles). Calcule el hash de lo adquirido.
Paso 2: abrir la herramienta y cargar los archivos
Vaya a la página de inicio de la herramienta. Puede:
- Soltar archivos:
ActivitiesCache.dbmásActivitiesCache.db-wal. - Soltar una carpeta o usar Elegir una carpeta: la herramienta encuentra cada
ActivitiesCache.dby lo empareja con su WAL. - Soltar un ZIP: los archivos de triaje se abren en el navegador, incluidos los ZIP anidados; los archivos no relacionados se cuentan y se ignoran.
- Probar un ejemplo: una base sintética de una intrusión ficticia, con las últimas acciones todavía en el WAL. Útil para aprender la interfaz antes de tocar evidencia.
La cuenta se deduce de Users/<name>/ en la ruta o de la carpeta L.<name> en las cuentas locales.
Paso 3: leer las advertencias y los contadores
No se salte este paso. Las advertencias le dicen si la cronología está completa.
| Mensaje | Significado | Qué hacer |
|---|---|---|
| No hay archivo -wal para esta base | Probablemente falta la actividad reciente | Vuelva a la adquisición y localice el WAL |
| El archivo -wal no corresponde a esta base | WAL de otro momento o de otra base; se ignora | Vuelva a adquirir ambos archivos juntos |
| N frame(s) de una transacción no confirmada ignorado(s) | Normal en un sistema en ejecución | Nada; anótelo |
| Empieza por ceros | El archivo estaba bloqueado o escribiéndose al copiarlo | Vuelva a adquirir con una herramienta de acceso raw al disco |
| Archivo WAL sin su ActivitiesCache.db | Adquisición demasiado estrecha | Adquiera la base |
Los contadores dan la forma de los datos: Cuentas, Actividades, Solo en el WAL, Portapapeles, Eliminaciones, Señaladas. Un número alto de filas «solo en el WAL» es lo esperable en una adquisición en caliente; cero en un sistema en ejecución es motivo para comprobar que el WAL se adquirió.
Paso 4: filtrar según la pregunta
| Pregunta | Filtro |
|---|---|
| ¿Qué archivos abrió el usuario? | Tipo Apertura (app / archivo) |
| ¿En qué aplicación trabajó realmente y durante cuánto tiempo? | Tipo En uso (foco), ordene por la columna Foco |
| ¿Qué copió? | Tipo Portapapeles y luego Copiar / pegar para los eventos |
| ¿Quitó entradas de Timeline? | Tipo Operaciones pendientes, busque Operación: eliminación |
| ¿Algo relacionado con USB, recursos compartidos o carpetas raras? | Solo señaladas |
| Un archivo, un host o una fecha concretos | El filtro de texto (busca en aplicación, archivo, texto, portapapeles y fecha) |
| Varios usuarios o equipos | El selector de base (Todas las bases por defecto) |
Las marcas son heurísticas, no veredictos: Portapapeles, Solo en el WAL, Modificada en el WAL, Eliminación, Carpeta escribible por el usuario (AppData, Downloads, Desktop, Public, ProgramData, Windows\Temp, Papelera de reciclaje, PerfLogs), Otra unidad (¿USB?) para una letra de unidad distinta de C:, y Ruta de red para rutas UNC. Su función es señalarle las filas que merece la pena leer.
Paso 5: inspeccionar una fila
Abra cualquier fila para ver:
- La aplicación resuelta (GUID de carpetas conocidas mostrados como
%ProgramFiles%,%SystemRoot%\System32, ...) y el nombre visible de la aplicación. - El archivo o carpeta decodificado a partir de
contentUri. - El texto del portapapeles, decodificado desde Base64.
- Inicio, fin, duración de foco, última modificación, caducidad y, en las operaciones, cuándo se creó la operación.
- La zona horaria del usuario según el payload.
- El estado WAL: en la base volcada, solo en el WAL o modificada en el WAL.
- El JSON original del Payload y del AppId, con formato, para todo lo que la tabla no muestra.
El significado de los campos está en tipos de actividad y campos del payload de ActivitiesCache.db.
Paso 6: elegir la zona horaria y exportar
El selector UTC / Local cambia la visualización. Elija una y dígalo en sus notas. Exportaciones:
- CSV: una fila por actividad con columnas de fecha en UTC, tipo, aplicación, ruta del archivo, texto del portapapeles, estado WAL, marcas, propietario y archivo de origen. Las celdas que empiezan por caracteres de fórmula se neutralizan para que el archivo se abra de forma segura en una hoja de cálculo.
- JSON: todos los campos decodificados (incluidos
Group,TageIsLocalOnly), más metadatos por origen: ruta, propietario, recuento de frames WAL, tablas y advertencias del parser.
Las exportaciones solo contienen las filas que coinciden con los filtros activos. Quite los filtros si quiere exportarlo todo.
Lo que la herramienta no hace (todavía)
- No recupera mediante carving registros eliminados de páginas libres ni de frames obsoletos del WAL.
- Carga cada base completa en memoria, así que las colecciones muy grandes están limitadas por el navegador.
- Se ha construido sobre el esquema documentado y archivos de prueba sintéticos; valide los hallazgos importantes con un segundo parser como WxTCmd. Vea comparativa de parsers de ActivitiesCache.db.