ShellBags y archivos ZIP: probar la navegación interna
Cómo registran los ShellBags la navegación dentro de ZIP y otros archivos comprimidos en el Explorador, qué contienen esos items y cómo interpretar sus rutas.
TL;DR. Cuando un usuario abre un archivo ZIP en el Explorador, Windows lo trata como una carpeta, y el árbol de ShellBags recibe una entrada para el ZIP (un item file entry) con entradas hijas para cada directorio recorrido dentro. Eso prueba que el usuario miró dentro del archivo y qué carpetas internas abrió. No prueba extracción ni ejecución. Según libfwsi, los items internos de un ZIP son items «compressed folder» identificados por su ancestro, y en Windows 10 incluyen los tamaños de la entrada, el método de compresión, el CRC-32 y la fecha de modificación como texto.
Los archivos comprimidos aparecen en casi todos los casos de intrusión y de amenaza interna: kits de herramientas entregados en ZIP, datos preparados en un archivo antes de la exfiltración, un usuario que afirma que «nunca abrió» un adjunto. Los ShellBags son uno de los pocos artefactos que pueden mostrar lo que un usuario miró dentro de un archivo comprimido sin extraerlo.
Cómo gestiona el Explorador los archivos comprimidos
Desde Windows XP, el gestor integrado de carpetas comprimidas permite al Explorador mostrar un ZIP como si fuera una carpeta. Hacer doble clic en tools.zip abre una vista de carpeta; hacer doble clic en un directorio interno navega más adentro. Cada una de esas navegaciones pasa por el espacio de nombres del shell, así que cada una obtiene una entrada BagMRU, como cualquier otra carpeta.
En Windows 11, la actualización KB5031455 de Microsoft (octubre de 2023) añadió la lectura nativa de .rar, .7z, .tar, .tar.gz, .tgz y formatos relacionados mediante el proyecto libarchive. Recorrerlos en el Explorador probablemente deja rastros comparables, pero no he visto una descripción pública y probada de sus shell items. Si su caso depende de ello, pruébelo en la misma build.
Los archivos abiertos en herramientas de terceros (el gestor de archivos de 7-Zip, WinRAR) no pasan por el gestor de archivos comprimidos del Explorador, así que no crean entradas bajo el archivo. Esas herramientas tienen su propio historial, a menudo en NTUSER.DAT bajo claves del fabricante.
Cómo se ve el árbol
De la muestra de ShellBags Parser (datos ficticios):
My Computer\C:\Users\svc_backup\Downloads directory MFT 88530/1
My Computer\C:\Users\svc_backup\Downloads\tools.zip file MFT 91004/2 [archive]
My Computer\C:\Users\svc_backup\Downloads\tools.zip\x64 [archive]
tools.zipes un item file entry con el indicador de «archivo» (tipo de clase0x32), no un directorio. Tiene fechas incrustadas normales y una referencia MFT, porque el propio ZIP es un archivo NTFS.x64está dentro del archivo. Su padre en el árbol es la clave del ZIP. Esa relación es la prueba de la navegación interna.- El LastWrite de la clave
tools.zip, conx64en primera posición de suMRUListEx, da la «última interacción» dex64. Véase las marcas de tiempo de los ShellBags explicadas.
El parser señala cualquier ruta que pase por .zip, .7z, .rar, .cab, .iso, .tar, .gz, .tgz o .vhd(x) como Dentro de un archivo comprimido, así que estas entradas aparecen con el filtro Solo señaladas. Los ISO y VHD se incluyen porque Windows los monta como unidades; en ese caso su contenido suele aparecer bajo una nueva letra de unidad y no debajo del archivo.
Qué contienen los items internos
El Windows Shell Item format de libfwsi documenta el compressed folder shell item como identificado por su ascendencia (su padre es el archivo comprimido) y no por un valor de tipo de clase. Su estructura cambia según la versión:
| Versión | Campos destacados |
|---|---|
| Windows XP | Fecha de modificación como cadena UTF-16 (mm/dd/yy HH:MM), cadenas de nombre |
| Windows 10 | Tamaño sin comprimir y comprimido, método de compresión (0x00 almacenado, 0x08 DEFLATE), CRC-32, fecha de modificación como texto (mm/dd/yyyy HH:MM:SS, o una cadena «N/A»), cadenas de nombre |
Es evidencia útil:
- El CRC-32 y los tamaños de la entrada tal como estaba dentro del archivo pueden ayudar a relacionar un archivo visto en este equipo con otro recuperado en otro lugar.
- La fecha de modificación es la guardada para esa entrada en el ZIP, en texto, no una fecha del sistema de archivos de este equipo. Considere su zona horaria desconocida mientras no la haya probado.
- Sin referencia MFT: el contenido no existe como archivo NTFS hasta que se extrae.
Soporte en los parsers
La decodificación varía. ShellBags Parser decodifica el file entry del propio archivo comprimido y conserva la ruta completa, pero su README indica que los items de contenido ZIP (0x52) aún no se decodifican del todo: espere un nombre aproximado, o una etiqueta «unknown shell item» con el hexadecimal en bruto en el panel de detalles. SBECmd y ShellBags Explorer manejan más de estos items. En casos con muchos archivos comprimidos, contraste con ellos (comparativa de herramientas).
Interpretar las entradas de archivos comprimidos
| Ve | Puede decir | No puede decir |
|---|---|---|
Entrada para x.zip sin hijos | Se recorrió la carpeta padre del ZIP y el ZIP se listó/seleccionó allí | Que se abriera el ZIP |
Hijos bajo x.zip | El usuario abrió el ZIP en el Explorador y recorrió esas carpetas internas | Que se extrajeran, abrieran o ejecutaran archivos |
x.zip en Downloads creado minutos antes de recorrerlo | Coherente con descarga e inspección inmediata | De dónde procede (revise Zone.Identifier, el historial del navegador) |
| ZIP borrado (ya no está en disco) con hijos en los ShellBags | El archivo existió y se recorrió; su registro MFT puede revisarse | Qué más contenía aparte de las carpetas recorridas |
Probar el paso siguiente
- Extracción: busque los archivos extraídos en la $MFT y en el diario USN (ráfagas de creación de archivos bajo una carpeta nueva justo después de la hora de navegación).
- Abrir un archivo desde dentro del ZIP: Windows suele abrirlo desde una copia temporal; los archivos LNK y las Jump Lists apuntan a la ruta temporal.
- Ejecución: Prefetch, Amcache, ShimCache.
- Origen: descargas del navegador (forense de navegadores), adjuntos de correo (forense de mensajería).
Archivos de preparación para la exfiltración
El patrón inverso también es común: datos comprimidos en un archivo y luego movidos. Los ShellBags ayudan cuando el usuario entró en el archivo para comprobar su contenido, o recorrió la carpeta que lo contenía. Crear el archivo con 7z.exe o con Compress-Archive de PowerShell desde una consola no deja ShellBags; mire en su lugar los artefactos de ejecución y el diario USN.
Preguntas frecuentes
¿Muestran los ShellBags que se extrajo un archivo ZIP?
No. Muestran que el usuario recorrió el interior del archivo en el Explorador. La extracción crea archivos en disco, que se prueban con la MFT, el diario USN o los archivos LNK, no con los ShellBags.
¿Registran los ShellBags los archivos 7z y RAR?
Solo cuando los recorrió el propio Explorador. Windows 11 abre de forma nativa RAR, 7z y variantes de tar desde la actualización de octubre de 2023 KB5031455, pero su rastro aún está poco documentado; los archivos abiertos en 7-Zip o WinRAR no pasan por el gestor de archivos comprimidos del Explorador.