miércoles, 24 de octubre de 2012

Evidencias de programas ejecutados: Shellbags y UserAssist.

La situación es tener que demostrar la utilización de programas desde equipos, de los cuales tenía alertas en los IDS sobre la utilización de determinado programa, en los que al revisarlos el administrador de turno no encontraba rastro de ellos en la lista que Windows le ofrece de programas instalados.
Parece que se trata entonces de programas que o bien no necesitan instalación o bien son versiones portables, que se han configurado y preparado para no necesitarla, y que en muchos casos presumen de eliminar todo rastro de su ejecución en el equipo desde el que se lanza.
Para detectar este tipo de software hay una serie de carpetas y artefactos del sistema operativo que pueden evidenciar su uso como son:
  • Las claves del registro conocidas como "Shellbags".
  • Claves del registro UserAssist.
  • Archivos Prefetch.
  • Carpeta de archivos temporales del usuario.
  • Carpeta de archivos recientes del usuario.
  • Búsqueda de archivos borrados (MFT e INDX de carpetas).
  • Registros de eventos del sistema.
Voy a centrarme en las dos primeras fuentes de información en esta entrada y dejo para otra la parte de los archivos Prefetch. Para lo relativo a búsquedas en la MFT e INDX he comentado en los dos artículos anteriores buenas referencias, pero creo que volveré sobre el tema para juntar toda la información.

Bueno, empezando por los "Shellbags": se trata de claves del registro en las que el sistema guarda las preferencias de los usuarios sobre las aplicaciones y las carpetas. Esta información se guarda en el registro del usuario, el NTUSER.DAT, y como novedad en Windows Vista/7 hay que tener en cuenta el nuevo registro específico de cada usuario denominado USRCLASS.DAT y que se encuentra en :
%user profile%\AppData\Local\Microsoft\Windows.

Las claves específicas son:

  • NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU 
  • NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags 
  • NTUSER.DAT\Software\Microsoft\Windows\ShellNoRoam\BagMRU 
  • NTUSER.DAT\Software\Microsoft\Windows\ShellNoRoam\Bags
  • USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
  • USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\Bags
  • USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\ShellNoRoam\BagMRU 
  • USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\ShellNoRoam\Bags 

Sin embargo tal y como refiere Chad Tilbury en el artículo que referencio tampoco he encontrado las claves correspondientes a ShellNoRoam en equipos con Windows 7.
Imprescindible leer al menos lo que se dice en las siguientes referencias:

  1. Windows Incident Response: Shellbag analysis
  2. TZWorks: sbag.
  3. Sans Computer Forensics: Windows 7 Shellbags.
  4. Willi Ballenthin: Windows shellbag forensics.
  5. Yuandong Zhu, Pavel Gladyshev, Joshua James: Using shellbag information to reconstruct user activities.
En cuanto a la clave UserAssist del registro: se trata de un seguimiento que hace el sistema operativo de las aplicaciones que se han ejecutado desde la interfaz gráfica. Sus valores son específicos de cada usuario, por lo que se almacenan en su correspondiente NTUSER.DAT, y además lo hacen cifradas con el algoritmo ROT13. Se encuentra en:


  • NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

Referencias fundamentales:

  1. Didier Stevens: UserAssist.
  2. AccessData: Understanding the UserAssist Registry Key.
  3. Nirsoft: UserAssist_View.

Y aparte de las herramientas referenciadas lo que nunca debe faltarnos a la hora de examinar el registro:


Nota: Para el caso concreto de unidades U3 hay un buen estudio en Edith Cowan University - The Impact of U3 Devices on Forensic Analysis.

Por último decir que efectivamente en el caso que me ocupó encontré evidencias del uso de ejecutables portables en la clave UserAssist del usuario.


No hay comentarios:

Publicar un comentario