Skip to content

ShellBags y carpetas borradas: probar que existieron

Demuestre con los ShellBags que una carpeta borrada o renombrada existió: ruta, fechas incrustadas, entrada y secuencia MFT, $MFT y diario USN.

Publicado el 7 min de lectura

TL;DR. Los ShellBags conservan las entradas después de borrar la carpeta, así que la ruta completa, el nombre y las fechas incrustadas de una carpeta desaparecida sobreviven en el hive del usuario. En NTFS, el shell item también guarda el número de entrada MFT y de secuencia de la carpeta. Busque esa entrada en la $MFT actual: misma secuencia y mismo nombre, la carpeta (o su registro) sigue ahí; secuencia mayor, se borró y el registro se reutilizó; registro no asignado con la misma secuencia, borrada pero aún no reutilizada. Después lleve la referencia de archivo al diario USN para fechar el borrado.

«Esa carpeta nunca existió» y «la borré hace meses» son afirmaciones que los ShellBags están bien situados para comprobar. Este es el procedimiento que uso, con sus límites.

Por qué sobrevive la entrada

El Explorador no limpia las entradas BagMRU cuando se borra una carpeta. La clave describe un lugar al que el usuario navegó, no un objeto vivo. Los profesionales se apoyan en esto desde las primeras investigaciones sobre ShellBags, por ejemplo el artículo de Chad Tilbury en SANS sobre la reconstrucción de dispositivos extraíbles desaparecidos hace tiempo. Lo que sí elimina entradas: el propio límite de Windows de carpetas recordadas, los restablecimientos de perfil y las herramientas de limpieza (véase limitaciones y antiforense).

La entrada superviviente le da:

CampoOrigenUso
Ruta completaUnida desde el árbol BagMRUDónde estaba la carpeta, aunque sus padres también hayan desaparecido
Nombre largo y nombre 8.3Item file entry + bloque 0xBEEF0004Nombre exacto, incluidos caracteres que se pierden en algunos listados
Creación / modificación / accesoFechas FAT incrustadasCuándo se creó la carpeta, según el sistema de archivos
Entrada MFT + secuenciaBloque de extensión versión 7+Vincula la entrada a un registro NTFS concreto
LastWrite de clave, posición MRURegistroCuándo estuvo el usuario por última vez en ella o cerca

Paso 1: encontrar entradas candidatas

Liste todo lo que hay en los ShellBags del usuario y compárelo con el sistema de archivos actual. Con ShellBags Parser, exporte a CSV y compare las rutas con un listado de archivos de la imagen (o con un análisis de la $MFT). Las carpetas que están en los ShellBags pero no en disco son sus candidatas.

Dos cosas que conviene apartar pronto:

  • Rutas extraíbles y de red. Un E:\exfil que falta no está borrado; la unidad simplemente no está aquí. Compruébelo en el dispositivo o en el servidor si puede obtenerlo.
  • Rutas dentro de archivos comprimidos. Los items bajo un .zip nunca existieron en disco como carpetas. Véase ShellBags y archivos ZIP.

Paso 2: leer la referencia MFT

Para cada candidata local en NTFS, anote la entrada MFT y la secuencia del panel de detalles (el cuadro de búsqueda también filtra por número de entrada MFT). El formato es la estructura MFT_SEGMENT_REFERENCE de Microsoft: un número de entrada de 48 bits y un número de secuencia de 16 bits, que Microsoft describe como una etiqueta reutilizada de forma circular. La documentación de NTFS de libyal señala que el número de secuencia se incrementa cada vez que se libera el registro.

Sin referencia MFT (items de la época de XP con extensión de versión 3, volúmenes FAT/exFAT, items de red), pase al paso 4.

Paso 3: comparar con la $MFT actual

Analice la $MFT del mismo volumen y busque la entrada:

Registro actual en la $MFTInterpretación
En uso, misma secuencia, mismo nombre y padreLa carpeta sigue existiendo (quizá se le pasó). Si el nombre difiere, compruebe un renombrado.
En uso, misma secuencia, nombre distintoRenombrada (o movida dentro del volumen): mismo registro, nombre nuevo.
No en uso, misma secuenciaCarpeta borrada, registro aún no reutilizado. Sus atributos, y quizá sus entradas de índice, pueden seguir siendo legibles.
Secuencia mayor que en el ShellBagCarpeta original borrada; el registro pertenece ahora a otra cosa.
Secuencia menor que en el ShellBagVolumen equivocado, u otra imagen del volumen. Vuelva a comprobar.

Esa comparación convierte «un ShellBag nombra esta carpeta» en «este registro de carpeta concreto existió y se borró», algo mucho más difícil de discutir.

Un renombrado merece nota aparte. Si dos entradas de ShellBags del mismo padre comparten entrada y secuencia MFT pero tienen nombres distintos, es muy probable que la carpeta se renombrara entre ambas visitas. El nombre antiguo es el de la entrada con la fecha de clave más antigua.

Paso 4: fechar el borrado

El ShellBag no dice cuándo se borró la carpeta. Otros artefactos sí:

  • Diario USN. Filtre $UsnJrnl:$J por el número de referencia de archivo de la carpeta (entrada + secuencia). Un motivo FILE_DELETE da la hora; un par RENAME_OLD_NAME/RENAME_NEW_NAME da los renombrados. El parser USN lo hace en el navegador.
  • Papelera de reciclaje. Una carpeta enviada a la Papelera se convierte en $R... con un archivo $I... asociado que guarda la ruta original y la fecha de borrado. El parser de la Papelera lee los archivos $I.
  • Instantáneas de volumen. Una instantánea anterior puede contener aún la carpeta y su contenido.
  • Archivos LNK y Jump Lists. Los archivos abiertos desde la carpeta antes de borrarla pueden estar referenciados por archivos LNK y Jump Lists, con sus propias referencias MFT.

Paso 5: acotar la cronología

Combine las piezas:

  1. Fecha de creación incrustada: la carpeta existía al menos desde ese momento.
  2. Fechas de clave de los ShellBags (derivadas del MRU cuando sea posible): el usuario estuvo allí hacia ese momento. Véase las marcas de tiempo de los ShellBags explicadas.
  3. USN / Papelera: la carpeta se borró en ese momento.

Una redacción hipotética (valores inventados): «Existió una carpeta llamada staging en C:\Users\Public\staging (entrada MFT 104233, secuencia 3), creada el [fecha]. La cuenta la recorrió, por última vez hacia [hora]. El registro se liberó y se reutilizó (secuencia actual 4). El diario USN registra su borrado a las [hora]». Cada cláusula tiene una única fuente que puede mostrar.

Límites

  • Sin referencia MFT, no hay comprobación de registro. Los items de la época de XP, los volúmenes FAT/exFAT y algunos tipos de item carecen de referencia útil.
  • La entrada puede ser más antigua de lo que cree. Un ShellBag creado hace años en un perfil migrado puede referirse a una carpeta de un disco que ya no existe.
  • Las herramientas de limpieza apuntan justo a este uso. Las herramientas que eliminan «rastros de carpetas borradas» borran los ShellBags cuyas carpetas ya no existen. Una ausencia no prueba nada.
  • No todas las herramientas recuperan claves borradas. Las entradas eliminadas del hive pueden seguir en celdas no asignadas; Registry Explorer puede mostrar claves borradas. ShellBags Parser todavía no las recupera.

Preguntas frecuentes

¿Conservan los ShellBags entradas de carpetas borradas?

Sí. Borrar una carpeta no elimina su entrada BagMRU. La entrada permanece hasta que Windows la poda o una herramienta de limpieza la borra, con la ruta de la carpeta, sus fechas incrustadas y, en NTFS, su número de entrada MFT y de secuencia.

¿Cómo sé si el registro MFT de la carpeta se reutilizó?

Compare el número de secuencia del ShellBag con el registro actual de la $MFT para la misma entrada. NTFS incrementa el número de secuencia cuando se libera un registro, así que un valor actual mayor significa que la carpeta original ya no existe y el registro se recicló.

Artículos relacionados

Artículos relacionados