Skip to content

Limitaciones y antiforense de los ShellBags

Lo que los ShellBags no pueden probar, lo que nunca los crea, cómo los borran PrivaZer o CCleaner y los rastros que dejan el borrado y la manipulación.

Publicado el 7 min de lectura

TL;DR. Los ShellBags prueban navegación en el shell de Windows por parte de una cuenta, nada más. Son ciegos al acceso a archivos por consola, script o API, sus fechas exigen interpretación, Windows limita cuántas carpetas recuerda, y un usuario (o un malware) puede borrarlos con una edición del registro o un limpiador. El borrado rara vez no deja nada: busque claves Bags huérfanas, listas MRUListEx que referencian valores inexistentes, claves borradas en celdas no asignadas del hive, copias antiguas en registros de transacciones e instantáneas, y rastros de ejecución del propio limpiador.

He visto ShellBags ganar casos y los he visto mal usados en informes. El fallo casi siempre es el mismo: tratar el artefacto como un registro completo e inalterable de acceso a carpetas. No es ninguna de las dos cosas.

Lo que los ShellBags no pueden decirle

LimitaciónPor quéQué usar en su lugar
Acceso a archivosSolo se registran carpetasArchivos LNK, Jump Lists, RecentDocs
Actividad por consola / scriptcmd, PowerShell, scripts y API nunca pasan por el espacio de nombres del shellArtefactos de ejecución (Prefetch, Amcache), registros de eventos de PowerShell y Seguridad, diario USN
Hora exacta de visita de la mayoría de entradasSolo el hijo en primera posición MRU de cada carpeta se vincula a una escritura de claveCorrobore; véase las marcas de tiempo de los ShellBags explicadas
Número de visitasNo existe contadorJump Lists (número de accesos en versiones recientes)
Identidad del dispositivoUn item de volumen solo guarda la letra de unidadHistorial de dispositivos del hive SYSTEM, números de serie de volumen de los LNK
Quién estaba al tecladoEl hive pertenece a una cuentaEventos de inicio de sesión, artefactos de RDP, contexto

Lo que nunca crea un ShellBag

dir, cd, robocopy, xcopy, Get-ChildItem, Compress-Archive, rclone, la mayoría de herramientas de administración remota y el malware que enumera archivos mediante API. El resumen de 2026 de Cyber Triage dice lo mismo sobre el acceso por línea de comandos y por navegador. Un atacante que nunca abre el Explorador no deja ningún ShellBag.

Límites de retención

Windows solo recuerda ajustes de vista para un número limitado de carpetas. El valor BagMRU Size, cuyo valor por defecto suele documentarse como 5.000 desde Vista (véase el artículo de Winaero), amplía el límite. En perfiles muy usados, no dé por hecho que la navegación más antigua sigue ahí.

Límites de los parsers

Los shell items no están documentados y son extensibles. Todos los parsers, incluido ShellBags Parser, decodifican algunos items solo en parte (dispositivos MTP, contenido de archivos comprimidos, resultados de búsqueda). Desconocido no significa sospechoso. Conserve el hexadecimal y contraste con una segunda herramienta antes de construir sobre una entrada extraña (comparativa de herramientas).

Estado del hive

Un hive copiado de un sistema en vivo suele estar sucio (dirty): las escrituras más recientes están en .LOG1/.LOG2. Que falten ShellBags recientes es más a menudo un problema de adquisición que de antiforense. Reproduzca primero los registros (la especificación del formato de registro de Suhanov describe el mecanismo).

Cómo se eliminan los ShellBags

MétodoQué haceRastros típicos
Borrado manual (regedit, reg delete) de BagMRU/BagsElimina claves bajo HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell y/o HKCU\Software\Microsoft\Windows\ShellÁrbol diminuto con un LastWrite reciente en la raíz; celdas borradas en el hive
PrivaZerSegún su documentación, elimina el rastro BagMRU; conserva los ajustes Bags salvo que se elija «eliminar todo»; puede limitarse a los «rastros de carpetas borradas»Claves Bags\<n> huérfanas; se conservan entradas de carpetas existentes mientras desaparecen las borradas; artefactos de ejecución de PrivaZer
CCleaner con reglas de la comunidad (Winapp2)Borra las claves listadas en el archivo de reglasArtefactos de ejecución de CCleaner, archivo de reglas en disco
Restablecimiento / perfil nuevoUsrClass.dat nuevoFecha de creación del perfil, restos de la carpeta del perfil anterior
Manipulación de fechasHerramientas como SetRegTime pueden reescribir el LastWrite de las claves mediante la clase documentada KEY_WRITE_TIME_INFORMATIONFechas de clave incoherentes con las fechas incrustadas, el orden padre/hijo y otros artefactos

Detectar una limpieza

1. Incoherencias estructurales

  • Claves Bags huérfanas. Cada entrada BagMRU tiene un NodeSlot que apunta a Bags\<n>. Muchas claves Bags\<n> sin ninguna entrada BagMRU que apunte a ellas encajan con un borrado limitado a BagMRU. ShellBags Parser muestra el NodeSlot de cada entrada; liste las subclaves de Bags en Registry Explorer y compare.
  • MRUListEx que referencia valores inexistentes. Si el MRUListEx de un padre incluye la ranura 3 pero no existe el valor 3, algo eliminó el valor sin reescribir la lista.
  • NodeSlots altos, pocas entradas. Los slots se asignan a medida que las carpetas reciben estado de vista. Un perfil cuyos NodeSlots llegan a los miles pero cuyo BagMRU tiene un puñado de entradas puede haber perdido historial (una heurística; confírmelo con las demás comprobaciones).
  • LastWrite reciente de la raíz en un árbol casi vacío. La clave raíz BagMRU reescrita minutos antes de la adquisición, en un perfil por lo demás activo, merece una pregunta.

2. Copias recuperables

  • Celdas no asignadas del hive. Las claves y valores borrados suelen quedar en celdas libres hasta que se sobrescriben. Registry Explorer muestra claves borradas recuperadas; ShellBags Parser aún no las recupera.
  • Registros de transacciones. UsrClass.dat.LOG1/.LOG2 pueden contener estados anteriores de algunas páginas.
  • Instantáneas de volumen y copias de seguridad suelen contener un UsrClass.dat más antiguo. Analice ambos y compárelos.
  • Otros hives. NTUSER.DAT tiene su propio árbol BagMRU, que algunos limpiadores ignoran.

3. Rastros del limpiador

Un limpiador es un programa. Aparece en Prefetch, Amcache, ShimCache, SRUM y BAM como cualquier otro. PrivaZer o CCleaner ejecutados poco antes de una investigación previsible es un hallazgo en sí.

4. Huecos entre artefactos

LNK, Jump Lists y RecentDocs que apuntan a carpetas sin ShellBags, o un historial de dispositivo USB para una letra de unidad sin ningún ShellBag en esa letra, sugieren que los ShellBags están incompletos. Huecos coherentes en varios artefactos apuntan a un limpiador o a otra cuenta.

Informar con responsabilidad

  • Indique qué muestran los ShellBags, para qué cuenta y con qué tipo de fecha.
  • No infiera nunca acceso a archivos a partir de un ShellBag.
  • No infiera nunca inocencia a partir de una ausencia.
  • Si sospecha una limpieza, enumere las incoherencias concretas, no una conclusión.

Preguntas frecuentes

¿Se pueden borrar los ShellBags?

Sí. Cualquier proceso que se ejecute como el usuario puede borrar las claves BagMRU, y limpiadores como PrivaZer, o CCleaner con reglas de la comunidad, ofrecen limpiarlos. Suelen quedar rastros: claves Bags huérfanas, listas MRU incoherentes, celdas no asignadas del hive, registros de transacciones, instantáneas y la ejecución del propio limpiador.

¿Un árbol de ShellBags vacío significa que el usuario no hizo nada?

No. La actividad por consola y por scripts nunca crea ShellBags, y un árbol vacío o diminuto en un perfil activo es en sí un motivo para buscar una limpieza o un restablecimiento del perfil.

Artículos relacionados

Artículos relacionados