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