Forense a UserAssist en Windows

  • Posted on: 27 May 2014
  • By: ReYDeS

UserAssist es una característica en Windows, la cual permite rastrear el uso de las aplicaciones, accesos directos, y otros ítemes por su frecuencia de uso y último momento de uso. Captura las acciones del usuario hasta que algo o alguien elimine las entradas del registro o deshabilite los registros. Las entradas de UserAssist están cifradas con ROT13, el cual es muy sencillo de descifrar. Esta entradas se almacenan en el archivo de registtro NTUSER.DAT de cada uno de los usuarios del sistema.

Desde el UserAssist se puede determinar la frecuencia de la ejecución de un programa por el usuario, la última vez que el programa se ejecutó, desde donde los ítemes fueron ejecutados más frecuentemente, cambios en la fecha y hora del sistema, evidencia de programas después de su borrado o desinstalación, por cuanto tiempo un usuario interactuó con un programa (Windows 7), y Evidencia de ausencia.

Para la siguiente práctica se utilizará la imagen forense obtenida desde el disco duro de un Sistema Windows XP, y SIFT.

La disposición típica en un Sistema Windows XP de la llave UserAssist es en:

{5E6AB780-7743-11CF-A12B-00AA004AE837}\Count
{75048700-EF1F-11D0-9888-006097DEACF9}\Count

Estos dos números GUID son globalmente únicos y son los mismos entre diferentes plataformas. Dentro de cada GUID existe una llave de nombre “Count”.

Se utiliza la herramienta Reglookup para consultar la llave del archivo de registro pertinente.

$ reglookup -p /Software/Microsoft/Windows/CurrentVersion/Explorer/UserAssist /mnt/windows_mount3/Documents\ and\ Settings/mario/NTUSER.DAT

ROT-13

ROT13 es un cifrado de substitución simple que reemplaza una letra con la letra que se ubica a 13 posiciones siguientes en el alfabeto. ROT13 es una ejemplo del cifrado Cesar, desarrollado en la antigua Roma.

Se procede a decodificar el contenido en ROT-13 en la siguiente llave.


/Software/Microsoft/Windows/CurrentVersion/Explorer/UserAssist/{75048700-EF1F-11D0-9888-006097DEACF9}/Count/HRZR_EHACNGU:P:\x5CJVAQBJF\x5Cflfgrz32\x5Cpzq.rkr,BINARY,\x05\x00\x00\x00\x06\x00\x00\x00\xB0\xD3\xEC\xA9&>\xCA\x01

Codificado en ROT-13:

HRZR_EHACNGU:P:\x5CJVAQBJF\x5Cflfgrz32\x5Cpzq.rkr

Antes de realizar la decodificación mencionar que el valor \x5C en hexadecimal corresponde al símbolo en ASCII “\” (Back Slash).

La decodificación desde ROT-13, se puede realizar con el comando “tr” en Linux. Luego de reemplazar los espacios en blanco por el símbolo “\”.

$ echo "HRZR_EHACNGU:P: JVAQBJF flfgrz32 pzq.rkr" | tr 'A-Za-z' 'N-ZA-Mn-za-m'

El resultado es:

UEME_RUNPATH:C:\WINDOWS\system32\cmd.exe

La entrada “UEME_RUNPATH” mantiene datos sobre los programas ejecutados.

Otra manera sencilla de obtener la información del UserAssist es utilizar la herramienta Access Data Registry Viewer.

Para la siguiente práctica se utiliza la imagen forense obtenida desde el disco duro de un sistema Windows 7.

Para el escenario de un Sistema Operativo Windows 7, la disposición típica de la llave UserAssist es como sigue:

{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count
{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count

Se realiza la consulta a la llave del registro pertinente utilizando la herramienta Reglookup.

$ reglookup -p /Software/Microsoft/Windows/CurrentVersion/Explorer/UserAssist/{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F} /mnt/windows_mount1/Users/issa/NTUSER.DAT

También es factible utilizar la herramienta RegRipper para extraer, interpretar y analizar el UserAssist de este Sistema Windows 7.

$ sudo rip.pl -p userassist -r /mnt/windows_mount1/Users/issa/NTUSER.DAT

Los valores en el registro de UserAssist entre Windows XP y Windows 7 tienen estructuras binarias diferentes. En el caso de Window 7 se añade el tiempo de la interacción o enfoque de la aplicación; menores cambios a los desplazamientos del tiempo.

Existen los prefijos “UEME_” en Windows XP, pero estos son inexistentes en Windows 7. La “Cuenta de Ejecución” inicia con el número “5” en lugar del número “0”. La mayoría de herramientas UserAssist convierten este número para aliviar la cuenta de ejecuciones adicionales, esto está solucionado en Windows 7.

Se mantiene un rastro del número veces en el cual una aplicación/applet se ejecutó (mediante acceso directo, Shell, panel de control, etc.); esto influencia cuales ítemes son automáticamente listados en el menú de inicio (programas utilizados más frecuentemente) para cada usuario. Esto difiere de la cuenta de ejecuciones de Prefetch, pues no es específica para cada usuario, como si lo es la cuenta de UserAssist.

Y puede mantener un rastro de como se ejecutó un programa (más fácil de determinar sobre Widows XP).

Fuentes:

http://forensicartifacts.com/2010/07/userassist/
http://forensicsfromthesausagefactory.blogspot.com/2010/05/prefetch-and-...
http://en.wikipedia.org/wiki/ROT13
http://www.4n6k.com/2013/05/userassist-forensics-timelines.html
http://www.accessdata.com/supplemental-class-material
http://www.accessdata.com/support/product-downloads
http://projects.sentinelchicken.org/reglookup/
https://code.google.com/p/regripper/wiki/RegRipper

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense