Investigación con el $LogFile paso a paso (caso ficticio)
Una intrusión ficticia en FIN-WKS-07 resuelta con el $LogFile de NTFS: cuenta falsa, herramientas, binario antedatado, rclone, una nota borrada y el informe.
TL;DR. Este caso es ficticio. Usa el $LogFile y el $MFT sintéticos incluidos en el analizador de $LogFile en el navegador (Probar un ejemplo). En 57 minutos de diario, una cuenta ilegítima svc_backup obtiene un perfil, descarga tools.zip, descomprime m64.exe, lo mueve a \ProgramData\Intel y lo antedata a 2019, deja rc.tmp y lo renombra rclone.exe, escribe y borra creds.txt, y deja un .lnk hacia Payroll_2026.xlsx. El diario demuestra los movimientos, la reescritura y el borrado con los valores de antes y después. No demuestra la ejecución ni la exfiltración; para eso hacen falta otros artefactos.
La historia continúa la que se cuenta en esta familia de sitios de analizadores: un puesto de trabajo del departamento financiero, una cuenta con aspecto de servicio que no debería existir y un archivo de nóminas que acabó en una memoria USB. Todos los nombres, horas y bytes que siguen son inventados, y el diario se generó a partir del formato publicado, no se capturó de Windows.
La situación (ficticia)
- Equipo: FIN-WKS-07, Windows 11, departamento financiero.
- Desencadenante: una alerta de DLP por datos de nóminas en un soporte extraíble; una cuenta llamada
svc_backupque nadie creó a propósito. - Pregunta del responsable del incidente: «¿Qué hizo
svc_backupen esta máquina esta mañana y qué tocó?» - Adquirido (en vivo, con KAPE, a un disco externo):
C:\$LogFile,C:\$MFT,C:\$Extend\$UsnJrnl:$J, Prefetch, colmenas del registro, registros de eventos. Método de adquisición como en cómo adquirir el $LogFile de NTFS.
Primer vistazo al diario
La línea de cabecera del analizador:
- LFS 2.0, no desmontado limpiamente → capturado en vivo en Windows 8 o posterior (1.1 frente a 2.0).
- 1 página tomada del área de páginas rápidas → los registros más recientes solo existían ahí.
- 100 registros, LSN 115720 → 117880, sin avisos.
El diario real de un volumen de sistema rondaría los 64 MiB con cientos de miles de registros; el sintético ocupa 256 KiB para que la historia siga siendo legible.
Línea temporal reconstruida a partir del diario
Horas en UTC, tomadas de los datos de los registros (columna Hora obtenida de). «≈» significa que se toma prestada del evento fechado más cercano.
| Hora (UTC) | Evento | Ruta | Hora obtenida de |
|---|---|---|---|
| 09:58:12 | Creación (carpeta) | \Users\svc_backup | creación $FN |
| 09:58:12 | Creación (carpetas) | …\svc_backup\Desktop, …\Downloads | creación $FN |
| 10:04:55 | Creación | …\Downloads\tools.zip | creación $FN |
| 10:06:52 | Creación | …\Downloads\tools\m64.exe, readme.txt | creación $FN |
| 10:06:52 ≈ | Datos residentes escritos | …\tools\readme.txt ("m64 - memory utility v2.2 …") | prestada |
| 10:07:03 | Creación | \Windows\Prefetch\7ZFM.EXE-8A1F2C3D.pf | creación $FN |
| 10:09:31 | Creación (carpeta) | \ProgramData\Intel | creación $FN |
| 10:09:40 | Renombrado / movido | …\tools\m64.exe → \ProgramData\Intel\m64.exe | cambio $FN |
| 10:09:40 ≈ | Cambio de $SI, 4 indicios de timestomping | \ProgramData\Intel\m64.exe | prestada |
| 10:12:18 | Creación | \Windows\Prefetch\M64.EXE-1C9E54B7.pf | creación $FN |
| 10:31:44 | Creación | \Users\Public\rc.tmp | creación $FN |
| 10:31:58 | Renombrado | rc.tmp → \Users\Public\rclone.exe | cambio $FN |
| 10:38:10 | Creación + datos | …\svc_backup\Desktop\creds.txt | creación $FN |
| 10:38:27 | Cambio de $SI | creds.txt | nuevo $SI |
| 10:47:12 | Creación | …\AppData\Roaming\Microsoft\Windows\Recent\Payroll_2026.xlsx.lnk | creación $FN |
| ≥ 10:38:27 | Borrado | …\Desktop\creds.txt | última conocida |
| 10:55:20 | Cambio de $SI | …\svc_backup\Desktop | nuevo $SI |
Se ha omitido el ruido de fondo: actualizaciones de marcas de tiempo de la base de datos SRUM a las 10:15 y a las 10:45, y un archivo temporal creado y borrado en \Windows\Temp a las 10:20.
Lectura fase por fase
Primer inicio de sesión (09:58). Aparecen las carpetas del perfil de svc_backup. La carpeta Recent bajo AppData no está en el diario que ha sobrevivido —sus registros se sobrescribieron—, pero el $MFT la nombra, y por eso el .lnk se resuelve más tarde con la ruta completa. Sin el $MFT, varias rutas empezarían por [MFT #n].
Kit de herramientas (10:04–10:07). tools.zip llega a Downloads; a continuación aparece una carpeta tools con m64.exe y readme.txt. El texto del readme es residente, así que sus primeros bytes se ven en el diario: describe m64.exe como una «memory utility» que hay que ejecutar como administrador, una pista hacia una herramienta de volcado de memoria. A las 10:07:03 se crea un archivo Prefetch para 7ZFM.EXE, coherente con que se ejecutara el administrador de archivos de 7-Zip en torno a la extracción.
Ocultar el binario (10:09). Se crea una carpeta nueva \ProgramData\Intel, se mueve m64.exe a ella y después se reescriben sus marcas de tiempo de $STANDARD_INFORMATION: antes, creación 10:06:52.3551871; después, las cuatro marcas 2019-03-19 07:14:22.0000000. El analizador enumera cuatro motivos: fecha de creación reescrita, valores que retroceden, segundos exactos y creación de $SI anterior a la creación de $FN. El método y sus falsos positivos se explican en detectar timestomping con el $LogFile de NTFS. Aquí no hay ninguna extracción ni restauración en ese momento, el objetivo es un ejecutable en una carpeta con aspecto de fabricante y el cambio sigue a un movimiento deliberado: un hallazgo sólido, que hay que corroborar con el BASIC_INFO_CHANGE del diario USN para obtener la hora real.
Indicio de ejecución (10:12). Se crea M64.EXE-1C9E54B7.pf. La creación de un archivo Prefetch es un indicio fuerte de que m64.exe se ejecutó; confírmalo analizando el propio archivo Prefetch (analizador de Prefetch) para obtener el número de ejecuciones y sus horas.
Preparar herramientas de exfiltración (10:31). Se deja rc.tmp en \Users\Public y se renombra rclone.exe catorce segundos después. El renombrado está en el diario con ambos nombres. Si rclone llegó a ejecutarse y adónde envió datos son preguntas para Prefetch, Amcache (analizador de Amcache), el uso de red de SRUM (analizador de SRUM) y los registros del proxy.
Nota de credenciales (10:38). Se crea creds.txt en el Escritorio, se escribe su contenido (residente, visible en el diario: una ruta de recurso compartido y el nombre de la cuenta, marcados SYNTHETIC), se modifica a las 10:38:27 y luego se borra. El borrado no tiene hora propia: «a las 10:38:27 o después». Consulta recuperar evidencias de archivos borrados del $LogFile.
Nóminas (10:47). Aparece un acceso directo Payroll_2026.xlsx.lnk en Recent, es decir, el usuario abrió un archivo con ese nombre. Su ruta de destino y el número de serie del volumen están en el propio .lnk (analizador LNK); en esta historia apunta a la unidad USB E:.
Qué va en el informe
Escribe observaciones, no marcas:
En el diario de transacciones NTFS del volumen C: (registros LSN 116846 y 116951), el archivo
\ProgramData\Intel\m64.exe(entrada de la MFT 322) se movió desde\Users\svc_backup\Downloads\tools\y sus marcas de tiempo de$STANDARD_INFORMATIONse cambiaron de 2026-09-14 10:06:52 UTC (creación) a 2019-03-19 07:14:22 UTC en los cuatro valores. El diario no registra la hora del cambio; se produjo después de las 10:09:40 UTC (movimiento) y antes del siguiente evento fechado.
Cita los LSN, conserva las exportaciones en bruto (CSV/JSON de los eventos filtrados y sus registros) e indica la herramienta y sus límites: el analizador usado aquí está validado con datos sintéticos, así que los mismos registros deben confirmarse con una segunda herramienta (comparativa de analizadores).
Lo que el diario no pudo responder
- ¿Se ejecutó
rclone.exe? ¿Se enviaron datos? No es una cuestión de metadatos del sistema de archivos. - ¿Cuándo exactamente se antedató
m64.exeo se borrócreds.txt? Diario USN. - ¿Qué pasó antes de las 09:58? Fuera de la ventana del diario; el diario USN y las instantáneas de volumen llegan más atrás (límites del $LogFile).
- ¿Quién estaba al teclado? Eventos de inicio de sesión, artefactos de RDP (analizador EVTX).
La aportación del $LogFile es estrecha pero sólida: un relato preciso y ordenado de los cambios de metadatos de la última hora, incluidos valores que los demás artefactos sobrescriben.