FeatureUsage, RecentApps y elementos anclados a la barra de tareas¶
Qué son¶
El Explorador conserva en el NTUSER.DAT del usuario varios registros de cómo utiliza este las aplicaciones:
- FeatureUsage (Windows 10 y posteriores): contadores por aplicación, según el tipo de uso.
AppSwitched: cuántas veces cambió el usuario a la ventana de la aplicación (clic en la barra de tareas, Alt+Tab).AppLaunch: cuántas veces se inició desde la barra de tareas (un elemento anclado).ShowJumpView: cuántas veces se abrió su Jump List (clic con el botón derecho en la barra de tareas).AppBadgeUpdated: cuántas veces cambió su distintivo en la barra de tareas (un recuento de elementos no leídos).TrayButtonClicked: cuántas veces se hizo clic en cada botón de la barra de tareas (StartButton,SearchButton,TaskViewButton,ClockButton, …).
Una aplicación es un identificador de modelo de usuario de aplicación (Microsoft.Windows.Explorer,
Microsoft.WindowsCalculator_8wekyb3d8bbwe!App), una ruta cuya primera parte puede ser el GUID de una
carpeta conocida ({1AC14E77-…}\cmd.exe es %windir%\system32\cmd.exe) o un identificador de proceso
(*PID00001d74) para las ventanas que el Explorador no pudo asociar a una aplicación.
- RecentApps (de Windows 10 hasta la versión 1709): las aplicaciones que un usuario ejecutó recientemente, con un recuento
de inicios y la última hora; debajo de cada una, los archivos que abrió (RecentItems).
- Elementos anclados a la barra de tareas (Taskband): los programas anclados a la barra de tareas, como elementos del shell
(Favorites) y como el vínculo de cada acceso directo anclado (FavoritesResolve). En Windows 10 y
posteriores, cada elemento anclado indica si lo ancló Windows (SystemPinned) o el usuario (UserPinned).
- ProgramsCache (StartPage, StartPage2; de Windows XP a 7): los programas en caché del menú Inicio
(ProgramsCache) y, en Windows 7, los anclados al menú Inicio y a la barra de tareas
(ProgramsCacheSMP, ProgramsCacheTBP).
Mejor conclusión: este usuario utilizó esta aplicación este número de veces de esta forma (FeatureUsage), la ejecutó a esta hora (RecentApps) o la ancló. Los contadores no tienen hora propia; solo la última escritura de la clave y las horas de RecentApps permiten fechar algo.
Ubicación¶
C:\Users\<user>\NTUSER.DAT
Software\Microsoft\Windows\CurrentVersion\Explorer\FeatureUsage\<kind> value: application, data: count
Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{GUID} AppId, AppPath, LaunchCount, LastAccessedTime
Software\Microsoft\Windows\CurrentVersion\Search\RecentApps\{GUID}\RecentItems\{GUID} DisplayName, Path, LastAccessedTime
Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband Favorites, FavoritesResolve
Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage2 ProgramsCache, ProgramsCacheSMP, ProgramsCacheTBP
Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage ProgramsCache (Windows XP, Vista)
El KeyCreationTime de FeatureUsage indica cuándo empezó a contar; el resumen lo muestra. Recopile
NTUSER.DAT con sus registros de transacciones para cada perfil, así como los hives SYSTEM y
SOFTWARE del sistema para obtener el host y el SID del usuario.
Precauciones para el analista¶
- Recuentos sin horas. Un recuento de FeatureUsage indica con qué frecuencia, no cuándo. La hora de última escritura
de la clave del tipo (
KeyLastWrittenUTC) corresponde al cambio más reciente de cualquiera de sus recuentos. - No todas las ejecuciones.
AppSwitchedcuenta los cambios de ventana, no los inicios; una aplicación que se ejecutó sin ventana, o a la que el usuario nunca cambió, no se cuenta.AppLaunchsolo cuenta los inicios desde la barra de tareas. - Aplicaciones empaquetadas y rutas. Una aplicación recibe el nombre con el que Windows agrupó sus ventanas: el identificador de una
aplicación empaquetada, un identificador que el propio programa estableció (
Chrome,VMware.Workstation.vmui) o una ruta.AppPathproporciona la ruta con el GUID de la carpeta conocida sustituido por la ruta predeterminada de la carpeta. - Elementos anclados predeterminados. Los perfiles nuevos reciben elementos anclados predeterminados (Explorador de archivos, Edge, la Store); en Windows 10
y posteriores indican
SystemPinned. Un elemento ancladoUserPinnedes una elección del usuario. - Elementos anclados en dos listas.
FavoritesyFavoritesResolvedescriben los mismos elementos anclados en el mismo orden (Index), pero se proporcionan como registros independientes. - Las rutas de ProgramsCache son relativas: una carpeta (
Programs\Accessories) va seguida de los accesos directos que contiene (Notepad.lnk). - Valores dañados. Un recuento que no es
REG_DWORD, una hora que no esREG_QWORD, un elemento anclado que no se entiende o un vínculo que no lo es conserva sus bytes (DataRaw) y se notifica enProblems.
Análisis con Juntei¶
Usage: juntei parse-registry feature-usage <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find NTUSER.DAT hives
-f, --file <FILE> Parse one NTUSER.DAT
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry feature-usage -d evidence/ -o featureusage.csv
juntei parse-registry feature-usage -f NTUSER.DAT -t jsonl \
| jq 'select(.Source == "AppSwitched") | [.Count, .AppPath // .App]'
El resumen enumera los registros por origen, cuándo empezó a contar FeatureUsage en cada hive, las aplicaciones a las que más se cambió, las aplicaciones y elementos recientes (los más nuevos primero) y los elementos anclados a la barra de tareas.
Campos de salida¶
| Campo | Interpretación |
|---|---|
Host, User, UserSID, SourcePath |
Host, nombre de la carpeta del perfil, SID del usuario según el ProfileList del sistema y el hive. |
Source |
AppSwitched, AppLaunch, ShowJumpView, AppBadgeUpdated, TrayButtonClicked (FeatureUsage), RecentApps, RecentItems, Taskband o ProgramsCache. |
App |
Nombre de un valor de FeatureUsage, AppId de una aplicación reciente o identificador de modelo de usuario de aplicación de un elemento anclado. |
AppPath |
App como ruta, con el GUID de una carpeta conocida sustituido por su ruta predeterminada; vacío para los identificadores. |
Count |
Un recuento de FeatureUsage o el LaunchCount de una aplicación reciente. |
LastAccessedUTC |
El LastAccessedTime de una aplicación o un elemento recientes. |
ItemPath |
El Path de un elemento reciente (o el AppPath de una aplicación reciente); la ruta del elemento del shell de un elemento anclado o de un programa en caché (User Pinned\TaskBar\File Explorer.lnk, Applications\<app ID>); la ruta de un vínculo de FavoritesResolve. |
DisplayName |
El DisplayName de un elemento reciente. |
PinType |
SystemPinned o UserPinned, para un elemento anclado de Favorites. |
Index |
Posición de un elemento anclado o de un programa en caché en su lista. |
ValueName, KeyPath, KeyLastWrittenUTC |
El valor y la clave de los que procede, y la última escritura de la clave. |
DataRaw |
Bytes (hexadecimal) que no se pueden decodificar. |
TransactionLogStatus, LogsApplied |
Contexto de la recuperación del Registro. |
Problems |
Valores del tipo incorrecto, elementos anclados o listas que no se entienden, vínculos que no son vínculos. |
Estrategia de investigación¶
- Ordene
AppSwitchedporCountpara conocer las aplicaciones con las que más trabajó un usuario y busque herramientas de administración, acceso remoto, compresión y transferencia, así como rutas en ubicaciones con permisos de escritura para el usuario (\Users\,Downloads,Temp). - Revise los elementos anclados: una herramienta
UserPinnedo un elemento anclado cuyo acceso directo se encuentre en una ubicación inusual. - Utilice las horas de RecentApps, junto con UserAssist, Prefetch, BAM y Jump Lists, para fechar el uso.
- Compare
KeyCreationTimecon la creación del perfil: los recuentos comienzan entonces. - Utilice
parse-registry read --recover-deletedpara los contadores y elementos anclados eliminados.