Investigación

El rey ha muerto, ¡larga vida al nuevo rey! Fin de la vida útil de Windows 10 y artefactos forenses de Windows 11

Introducción

Windows 11 se lanzó hace cuatro años, pero se ha adoptado de forma limitada en entornos corporativos. Según estadísticas basadas en investigaciones del Equipo Global de Respuesta a Incidentes Cibernéticos (GERT, por sus siglas en inglés), a principios de 2025, el sistema operativo Windows 7 (sin soporte desde 2020) seguía presente en los entornos de clientes con una frecuencia apenas menor que la del sistema operativo más reciente. La mayoría de los sistemas, no obstante, aún funcionan con Windows 10:

Principales versiones de Windows presentes en la infraestructura de las organizaciones. La estadística se basa en los datos del Equipo Global de Respuesta a Incidentes Cibernéticos (GERT, Global Emergency Response Team) (descargar)

Además, el sistema operativo más extendido fue lanzado hace más de 10 años, y hoy, 14 de octubre de 2025, Microsoft finaliza el soporte de Windows 10. Por lo tanto, no queda duda de que veremos crecer la cantidad de sistemas con Windows 11 en las organizaciones a las que brindamos servicios de investigación de incidentes. Por esta razón, decidimos compartir un breve resumen de los cambios en los artefactos forenses introducidos en este sistema, información que puede ser útil para nuestros colegas del sector. Los artefactos descritos corresponden a Windows 11 versión 24H2, la versión más reciente del sistema operativo al momento de redactar este artículo.

Novedades en Windows 11

Recall

La función Recall se presentó por primera vez en mayo de 2024. Permite “recordar” todo lo que el usuario ha hecho en su equipo durante los últimos meses. Su funcionamiento es el siguiente: cada pocos segundos, el sistema toma capturas de toda la pantalla. Después, una inteligencia artificial local las analiza en segundo plano, extrayendo toda la información útil, que luego se almacena en una base de datos. Sobre esta base se realiza una búsqueda inteligente. A partir de mayo de 2025, la función Recall está disponible en equipos con NPU (un chip especializado para cómputo de IA, que en la actualidad es compatible solo con procesadores de arquitectura ARM).

Microsoft Recall es, sin duda, una de las funciones más destacadas y controvertidas que se han anunciado para Windows 11. Desde su primer anuncio, ha sido objeto de críticas en la comunidad de seguridad informática por los riesgos que representa para la confidencialidad de los datos. Microsoft realizó ajustes antes del lanzamiento, pero persisten ciertas inquietudes al respecto. Debido a su naturaleza ambigua, la opción viene desactivada de forma predeterminada en las compilaciones corporativas de Windows 11. No obstante, conviene examinar sus artefactos en caso de que hayan sido activados por atacantes o por software malicioso. En teoría, el departamento de TI de una organización también podría habilitar Recall mediante políticas de grupo, aunque lo consideramos poco probable.

Como mencionamos antes, Recall se basa en capturas de pantalla que, por supuesto, deben almacenarse de forma temporal mientras se procesan. Las imágenes sin procesar en formato JPEG se encuentran en la siguiente ruta: %AppData%\Local\CoreAIPlatform.00\UKP\{GUID}\ImageStore\*. Los nombres de archivo corresponden a los identificadores únicos de las capturas (más adelante se ampliará sobre este punto).

Junto con las capturas, se almacenan metadatos en la etiqueta estándar Exif.Photo.MakerNote (0x927c), que incluyen información relevante: coordenadas de la ventana en primer plano, marca de tiempo (cuándo se tomó la captura), título de la ventana, identificador de ventana, ruta completa del proceso que generó la ventana; y, si en el momento de la captura se utilizaba un navegador, también pueden guardarse el URI y el dominio, entre otros datos.
La función Recall se activa de forma independiente para cada usuario. En el registro, la clave del perfil de usuario que controla la activación/desactivación del almacenamiento de capturas es: Software\Policies\Microsoft\Windows\WindowsAI\. Además, en las compilaciones más recientes de Windows 11, Microsoft añadió varias claves de registro adicionales relacionadas con la gestión de Recall.

Cabe señalar que, en la versión modificada tras las críticas iniciales, la función incluye un filtro especial diseñado para impedir el almacenamiento de capturas y texto cuando en pantalla aparece información confidencial: ventanas de navegador en modo incógnito, formularios de pago, administradores de contraseñas, etc. Sin embargo, según algunos investigadores, este filtro no siempre funciona como debería.

Para realizar búsquedas rápidas en los datos extraídos de las capturas, se utilizan dos bases de datos vectoriales DiskANN (SemanticTextStore.sidb y SemanticImageStore.sidb). No obstante, la base de datos más interesante para el análisis forense es una base SQLite ubicada en: %AppData%\Local\CoreAIPlatform.00\UKP\{GUID}\ukg.db, que consta de 20 tablas. En la versión más reciente, está accesible sin privilegios de administrador, aunque cifrada. Al momento de redactar este artículo, no existen métodos públicos conocidos para descifrarla de forma directa; por ello, a continuación describimos las tablas más relevantes que se observan en la versión beta de Windows 11 con Recall, lanzada en 2024.

  • Tabla App: contiene datos sobre el proceso que inició la ventana de la interfaz gráfica de una aplicación.
  • Tabla AppDwellTime: registra la ruta completa del proceso que inició la ventana (columna WindowsAppId), la fecha y hora de inicio (HourOfDay, DayOfWeek, HourStartTimestamp) y la duración de visualización de la ventana (DwellTime).
  • Tabla WindowCapture: incluye el tipo de evento (columna Name):
    • WindowCreatedEvent: evento de creación de la primera instancia de una ventana de la aplicación. Puede vincularse con el proceso que creó la ventana.
    • WindowChangedEvent: evento de modificación de una instancia de ventana. Permite rastrear movimientos o cambios de tamaño mediante el identificador de ventana (WindowId).
    • WindowCaptureEvent: evento de creación de una captura de pantalla que contiene la ventana de la aplicación. Además del identificador de ventana, incluye un token de imagen (ImageToken) que permite recuperar más adelante el archivo JPEG correspondiente desde el directorio ImageStore (el nombre del archivo coincide con dicho identificador).
    • WindowDestroyedEvent: evento de cierre de una ventana de aplicación.
    • ForegroundChangedEvent: evento que no contiene datos útiles desde el punto de vista del análisis forénsico.

    Además, la tabla WindowsCapture incluye un indicador de si la ventana estaba en primer plano (IsForeground), las coordenadas de sus límites en pantalla (WindowBounds), el título de la ventana (WindowTitle), un campo de propiedades (Properties) y la marca de tiempo del evento (TimeStamp).

  • Tabla WindowCaptureTextIndex_content: contiene el texto extraído mediante reconocimiento óptico de caracteres (OCR) de la captura de pantalla (columna c2), el título de la ventana (WindowTitle), la ruta de la aplicación (App.Path), la marca de tiempo de la captura (TimeStamp) y el nombre (Name). Esta tabla puede usarse junto con WindowCapture (las columnas c0 e Id contienen datos idénticos que se pueden usar para unir las tablas) y con App (los datos coinciden en las columnas AppId e Id).

Los artefactos de Recall (si la función estaba activada en el sistema antes del incidente) son una “mina de oro” para los analistas de respuesta a incidentes. Con su ayuda es posible reconstruir con gran detalle la actividad de un atacante en un sistema comprometido. Por otro lado, esta función también puede emplearse con fines maliciosos: como se mencionó, el filtro de información privada no es infalible, por lo que atacantes y malware podrían aprovechar Recall para localizar credenciales y otros datos confidenciales.

Aplicaciones predeterminadas actualizadas

En Windows 11 también se actualizaron las aplicaciones predeterminadas; en algunas se cambió tanto la interfaz como la funcionalidad. En particular, ahora aplicaciones como Bloc de notas, Explorador de archivos y Símbolo del sistema admiten el modo de “múltiples pestañas en una sola ventana”. Además, Bloc de notas conserva el estado de las pestañas incluso después de que el proceso haya finalizado. En consecuencia, Windows 11 introduce nuevos artefactos relacionados con el uso de esta aplicación. Estos artefactos fueron estudiados en detalle por nuestro colega AbdulRhman Alfaifi, cuyo trabajo puede consultarse aquí.

El directorio principal de artefactos de Bloc de notas en Windows 11 es: %LOCALAPPDATA%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\

Este directorio contiene dos subdirectorios:

  • TabState: almacena un archivo de estado {GUID}.bin por cada pestaña de Bloc de notas. Aquí se guarda el contenido de la pestaña si no se la ha guardado en un archivo. Para las pestañas guardadas, incluye la ruta completa al archivo, el hash SHA-256 del contenido, el contenido en sí, la marca de tiempo de la última escritura y otros metadatos.
  • WindowsState: almacena información sobre el estado de la ventana de la aplicación (número total de pestañas, su orden, la pestaña activa, dimensiones y posición en pantalla). Los archivos de estado se denominan *.0.bin o *.1.bin.

La estructura del archivo {GUID}.bin para pestañas guardadas es la siguiente:

Campo Tipo Valor y comentario
Firma [u8;2] NP
? u8 00
Archivo_guardado bool 00: el archivo no ha sido guardado en la ruta indicada
01: el archivo ha sido guardado
Longitud_de_la_ruta uLEB128 Longitud en caracteres de la ruta completa al archivo donde se escribió el contenido de la pestaña
Ruta_al_archivo UTF-16LE La ruta completa al archivo en el que se escribió el contenido de la pestaña
Tamaño_archivo uLEB128 El tamaño del archivo en el que se escribió el contenido de la pestaña en el disco
Codificación u8 Codificación del archivo:
0x01 – ANSI
0x02 – UTF-16LE
0x03 – UTF-16BE
0x04 – UTF-8BOM
0x05 – UTF-8
Tipo_retorno u8 Tipo de salto de línea de retorno de carro:
0x01 — CRLF
0x02 — CR
0x03 — LF
Hora_última_escritura uLEB128 Hora de la última escritura (tab save) en el archivo (en formato FILETIME).
hash_sha256 [u8;32] Hash SHA-256 del contenido de la pestaña
? [u8;2] 00 01
Inicio_de_sección uLEB128 Offset del inicio de la sección desde el principio del archivo
Fin_de_sección uLEB128 Offset del final de la sección desde el principio del archivo
Configuración ConfigBlock Configuración en una estructura de tipo ConfigBlock
Longitud_del_contenido uLEB128 Longitud del texto del archivo
Contenido UTF-16LE Contenido de la pestaña antes de modificarla con nuevos datos. En caso de que la pestaña se guarde en el disco sin modificaciones posteriores: ninguno.
Contiene_datos_no_guardados bool 00: el contenido de la pestaña en el archivo {GUID}.bin coincide con el contenido de la pestaña en el archivo en disco
01: los cambios en la pestaña no se guardan en el disco
Suma_de_comprobación [u8;4] Suma de comprobación CRC32 del contenido del archivo {GUID}.bin con offset 0x03 desde el principio del archivo
Chunks_sin_guardar [UnsavedChunk] Lista de estructuras UnsavedChunk. Ausente en caso de guardar una pestaña en disco sin modificaciones posteriores
Ejemplo de contenido de un archivo {GUID}.bin correspondiente a una pestaña guardada y luego modificada sin guardar los cambios

Ejemplo de contenido de un archivo {GUID}.bin correspondiente a una pestaña guardada y luego modificada sin guardar los cambios

Para las pestañas no guardadas, la estructura del archivo {GUID}.bin en TabState es más simple:

Campo Tipo Valor y comentario
Firma [u8;2] NP
? u8 00
Archivo_guardado bool 00: el archivo no se guarda en la ruta especificada (siempre)
Inicio_de_sección uLEB128 Offset del inicio de la sección desde el principio del archivo
Fin_de_sección uLEB128 Offset del final de la sección desde el principio del archivo
Configuración ConfigBlock Configuración en una estructura de tipo ConfigBlock
Longitud_del_contenido uLEB128 Longitud del texto del archivo
Contenido UTF-16LE Contenido del archivo
Contiene_datos_no_guardados bool 01: los cambios en la pestaña no se guardan en el disco (siempre)
Suma_de_comprobación [u8;4] Suma de comprobación CRC32 del contenido del archivo {GUID}.bin con offset 0x03 desde el principio del archivo
Chunks_sin_guardar [UnsavedChunk] Lista de estructuras UnsavedChunk
Ejemplo de contenido de un archivo {GUID}.bin correspondiente a una pestaña no guardada.

Ejemplo de contenido de un archivo {GUID}.bin correspondiente a una pestaña no guardada.

Cabe señalar que el guardado de pestañas puede desactivarse en la configuración de Bloc de notas. En ese caso, los artefactos TabState y WindowsState no estarán disponibles para análisis.

Si están disponibles, se puede utilizar la herramienta notepad_parser escrita por nuestro colega AbdulRhman Alfaifi para automatizar el trabajo.
Este artefacto puede ser clave para recuperar el contenido de scripts o archivos por lotes maliciosos. Asimismo, podría contener resultados o registros generados por escáneres de red, utilidades de extracción de credenciales u otros ejecutables utilizados por atacantes, en especial si se realizaron modificaciones que, por accidente, no llegaron a guardarse.

Cambios en artefactos existentes en Windows 11

Además de los nuevos artefactos, Windows 11 introduce modificaciones relevantes en algunos artefactos ya existentes, que deben considerarse durante las investigaciones forenses.

Cambios en el comportamiento de las marcas de tiempo de NTFS

En comparación con Windows 10, Windows 11 modifica el comportamiento de las marcas de tiempo en dos estructuras del registro maestro de archivos (MFT): $STANDARD_INFORMATION y $FILE_NAME.

Cambios en $STANDARD_INFORMATION:

Evento Acceso al archivo Renombrar un archivo Copiar un archivo a una nueva carpeta Mover un archivo dentro de un volumen Mover un archivo entre volúmenes
Win 10
1903
Se actualizará la hora del último acceso al archivo. Si el volumen del sistema es superior a 128 GB, el tiempo de acceso a los archivos no cambiará. El tiempo del último acceso al archivo no cambiará Se actualizarán los metadatos de la copia El tiempo del último acceso al archivo no cambiará Los metadatos se heredarán del archivo original
Win 11 24H2 Se actualizará la hora del último acceso al archivo La hora de último acceso al archivo se actualizará en función de la hora de modificación Los metadatos de la copia se heredarán del archivo original La hora de último acceso al archivo se actualizará en función de la hora de reubicación Se actualizarán los metadatos

Cambios en $FILE_NAME:

Evento Renombrar un archivo Mover un archivo dentro de un volumen usando el Explorador Mover un archivo a la papelera de reciclaje
Win 10
1903
Las marcas de tiempo y los metadatos permanecen inalterados Las marcas de tiempo y los metadatos permanecen inalterados Las marcas de tiempo y los metadatos permanecen inalterados
Win 11 24H2 Las marcas de tiempo, así como los metadatos de acceso y modificación, se heredan de la versión anterior de $STARNDARD_INFORMATION Las marcas de tiempo, así como los metadatos de acceso y modificación, se heredan de la versión anterior de $STARNDARD_INFORMATION Las marcas de tiempo, así como los metadatos de acceso y modificación, se heredan de la versión anterior de $STARNDARD_INFORMATION

Estos cambios deben tenerse en cuenta al analizar archivos del sistema de archivos NTFS.

Program Compatibility Assistant

El Asistente para la compatibilidad de programas (PCA) se introdujo en Windows Vista (2006) para ejecutar aplicaciones diseñadas para versiones anteriores del sistema operativo, y es un artefacto relevante para la identificación de indicios de ejecución de programas.

Con Windows 11 aparecen nuevos archivos relacionados con esta función, de interés forense para rastrear programas ejecutados. Se ubican en: C:\Windows\appcompat\pca\:

  • PcaAppLaunchDic.txt. Cada línea registra el último lanzamiento de un archivo ejecutable: marca de tiempo en formato YYYY-MM-DD HH:MM:SS.f (UTC) y ruta completa al archivo. Los campos están separados por el caracter “|”. Cada vez que el archivo se vuelve a ejecutar, la línea correspondiente se actualiza. El archivo usa codificación ANSI (CP-1252); por lo tanto, los nombres de archivo con caracteres Unicode “rompen” el registro: las nuevas entradas dejan de generarse (solo se actualizan las existentes).

  • PcaGeneralDb0.txt y PcaGeneralDb1.txt se alternan entre sí al escribir datos: las nuevas entradas se guardan en el archivo primario hasta que su tamaño alcanza dos megabytes. Después de eso, el archivo secundario se limpia y pasa a ser el nuevo archivo primario, mientras que el primario sobresaturado se convierte en secundario. Este ciclo se repite de forma indefinida. Los campos están separados por “|”. Usan codificación UTF-16LE y contienen los siguientes campos:
    • Marca de tiempo de ejecución (UTC)
    • Tipo de registro (0–4):
      • 0: Error de instalación
      • 1: Driver bloqueado
      • 2: Cierre anómalo de proceso
      • 3: Llamada a PCA Resolve (componente que resuelve errores de compatibilidad)
      • 4: Valor no establecido
    • Ruta del ejecutable (sin la letra de unidad, a menudo con variables de entorno: %USERPROFILE%, %systemroot%, %programfiles%, y otros)
    • Nombre del producto (del encabezado PE, en minúsculas)
    • Nombre de la compañía (del encabezado PE, en minúsculas)
    • Versión del producto (del encabezado PE)
    • ID de programa de Windows (como en AmCache)
    • Mensaje

Es importante destacar que estos archivos de texto solo registran ejecuciones realizadas mediante el Explorador de Windows. Las ejecuciones desde la consola no se registran.

Windows Search es el mecanismo integrado de indexación y búsqueda de archivos. Al principio, escaneaba los archivos de forma directa, lo que resultaba lento. Más tarde apareció una aplicación independiente que creaba un índice rápido de archivos y, solo desde 2006 (Windows Vista), la búsqueda pasó a integrarse por completo en el sistema y la indexación de archivos empezó a realizarse en segundo plano.

Desde Windows Vista hasta Windows 10 inclusive, el índice de archivos se almacenaba en la base de datos Extensible Storage Engine (ESE): %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb.

En Windows 11, el almacén se dividió en tres bases de datos SQLite:

  • %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows-gather.db: contiene metadatos generales de archivos y carpetas indexados. La mayor atención la merece la tabla SystemIndex_Gthr, donde se almacenan los datos del nombre del archivo o directorio indexado (columna FileName), la última modificación del archivo o directorio indexado (LastModified), así como el identificador para vincularlo con el objeto superior (ScopeID) y el identificador único del archivo o directorio (DocumentID). Mediante ScopeID y la tabla SystemIndex_GthrPth (que incluye Name, Scope e Parent), es posible reconstruir la ruta completa del archivo. La tabla SystemIndex_GthrPth contiene el nombre de la carpeta (Name), el identificador del ámbito (Scope) y el del directorio superior (Parent). Así, al vincular ScopeID del archivo con Scope de la carpeta, se identifica su ubicación.
  • %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.db contiene información sobre los metadatos de los archivos indexados. Resulta de interés para el análisis la tabla SystemIndex_1_PropertyStore, donde se encuentra el identificador único del objeto indexado (columna WorkId), el tipo de metadatos (ColumnId) y los propios metadatos. Los tipos de metadatos se describen en SystemIndex_1_PropertyStore_Metadata (el campo Id corresponde a ColumnId), y el significado de cada tipo se especifica en UniqueKey.
  • %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows-usn.db no contiene información útil para análisis forense.

Como se muestra en la imagen de abajo, el análisis del archivo Windows-gather.db con DB Browser for SQLite puede aportar evidencia sobre la presencia de ciertos archivos (por ejemplo, archivos de malware, archivos de configuración, archivos creados y dejados por atacantes, entre otros).

Cabe señalar que la columna LastModified se almacena en formato Windows FILETIME, que contiene un valor de fecha y hora de 64 bits (sin signo) y representa el número de intervalos de 100 nanosegundos desde el 1 de enero de 1601. Con una utilidad como DCode, podemos ver este valor en UTC, como se muestra en la imagen.

Otros cambios menores pero relevantes en Windows 11

También vale la pena señalar algunos cambios pequeños pero importantes en Windows 11 que no requieren un análisis detallado:

  • Eliminación total de NTLMv1, lo que hace que ataques como Pass-the-hash vayan quedando obsoletos;
  • Eliminación del artefacto Windows 10 Timeline, conocido por muchos; A pesar de que ya no funciona, su base de datos sobre las actividades del usuario aún persiste en: %userprofile%\AppData\Local\ConnectedDevicesPlatform\ActivitiesCache.db
  • De forma similar, Windows 11 eliminó Cortana y Internet Explorer, pero los artefactos de estos componentes aún se encuentran en el sistema operativo. Esta característica puede resultar útil en investigaciones realizadas en equipos actualizados desde Windows 10 a la versión más reciente.
  • Investigaciones previas mostraron también que el Event ID 4624, que registra los intentos exitosos de inicio de sesión en Windows, permaneció en gran medida sin cambios entre versiones hasta que apareció una actualización notable en Windows 11 Pro (22H2). Esta versión introduce un campo nuevo, llamado Remote Credential Guard, que representa un cambio sutil pero potencialmente relevante en el análisis forense. Aunque aún no hay evidencia de su uso en entornos reales ni de su utilidad forense, su presencia sugiere los esfuerzos continuos de Microsoft por mejorar la telemetría relacionada con la autenticación.
  • Amplia compatibilidad con el sistema de archivos ReFS. En la última vista previa de Windows 11, ya es posible instalar el sistema operativo directo en volúmenes ReFS, y se ha agregado compatibilidad con BitLocker. Asimismo, este sistema de archivos tiene muchas diferencias con respecto al habitual NTFS, que vale la pena conocer de antemano:
    • En ReFS no existe la tabla $MFT habitual para los analistas forenses, que contiene todos los registros actuales de los archivos en el disco;
    • No se generan nombres cortos (como en NTFS, para compatibilidad con DOS);
    • No admite enlaces duros (hard links) ni atributos extendidos;
    • Aumentan los límites máximos: tanto el volumen como el archivo único alcanzan hasta 35 PB (frente a 256 TB en NTFS).

Conclusión

En este artículo, le hemos ofrecido un breve panorama de los cambios clave en los artefactos de Windows 11 relevantes para el análisis forense, ante todo de los cambios introducidos en PCA y las modificaciones del mecanismo de búsqueda de Windows. Solo el tiempo dirá cuán útiles resultarán en investigaciones reales. No obstante, recomendamos incorporar de inmediato la recolección de los archivos descritos a sus herramientas de triage forense.

El rey ha muerto, ¡larga vida al nuevo rey! Fin de la vida útil de Windows 10 y artefactos forenses de Windows 11

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Informes

BlindEagle vuela alto en LATAM

Kaspersky proporciona información sobre la actividad y los TTPs del APT BlindEagle. Grupo que apunta a organizaciones e individuos en Colombia, Ecuador, Chile, Panamá y otros países de América Latina.

MosaicRegressor: acechando en las sombras de UEFI

Encontramos una imagen de firmware de la UEFI infectada con un implante malicioso, es el objeto de esta investigación. Hasta donde sabemos, este es el segundo caso conocido en que se ha detectado un firmware malicioso de la UEFI usado por un actor de amenazas.