ShellBags y memorias USB: un caso de investigación práctico
Un caso ficticio paso a paso: los ShellBags muestran una cuenta de servicio que recorre un ZIP, un recurso de finanzas y un USB. Qué prueban y qué no.
TL;DR. En este caso ficticio, los ShellBags de svc_backup en el equipo FIN-WKS-07 muestran, en 45 minutos: navegación dentro de Downloads\tools.zip, una carpeta nueva bajo ProgramData\Intel, el recurso compartido \\FILESRV01\Finance (Payroll y después Board) y E:\exfil\finance_2026 en una segunda unidad. Los ShellBags prueban que la cuenta navegó a cada carpeta y dan el orden y horas aproximadas. No prueban que se copiara ningún archivo. El informe afirma la navegación y señala los artefactos que pueden probar el resto.
Escenario ficticio. Todo lo que sigue usa los hives sintéticos del botón Probar un ejemplo de ShellBags Parser: la cuenta, el equipo, el recurso compartido, el SID y las horas son inventados. El caso continúa la misma historia que los sitios hermanos de parsers (una cuenta de servicio maliciosa en FIN-WKS-07). No hay ninguna organización ni persona real implicada.
La pregunta
El equipo de finanzas informa de que documentos del consejo han aparecido en un sitio de pegado. El SOC ve un inicio de sesión interactivo de svc_backup, una cuenta de servicio que nunca debería iniciar sesión de forma interactiva, en FIN-WKS-07 el 2026-09-14. Pregunta para los ShellBags: ¿qué carpetas recorrió esa cuenta en el Explorador y en qué orden?
Adquisición
El técnico de respuesta recogió C:\Users\svc_backup\NTUSER.DAT y ...\AppData\Local\Microsoft\Windows\UsrClass.dat, con sus .LOG1/.LOG2, mediante el target RegistryHivesUser de KAPE (véase dónde se guardan los ShellBags). Ninguno de los dos hives estaba sucio. La clave raíz de UsrClass es S-1-5-21-3623811015-3361044348-30300820-1119_Classes, y los Shell Folders de NTUSER apuntan a C:\Users\svc_backup, así que ambos hives se atribuyen a la misma cuenta.
Lo que muestra el parser
Al soltar los dos hives en ShellBags Parser aparecen 20 entradas. Con Solo señaladas marcado, las interesantes son:
| Ruta | Tipo | Fecha usada | Señales | MFT (entrada/sec.) |
|---|---|---|---|---|
My Computer\C:\Users\svc_backup\Downloads\tools.zip\x64 | directorio dentro de archivo comprimido | última interacción 10:07:20 | archivo comprimido | 0 (sin significado) |
My Computer\C:\ProgramData\Intel | directorio | última interacción 10:09:05 | escribible por el usuario | 91233/1 |
\\FILESRV01\Finance | red | última interacción 10:31:07 | red | n/a |
\\FILESRV01\Finance\Payroll | directorio | última escritura de la clave 10:32:40 | red | 70112/1 |
\\FILESRV01\Finance\Board | directorio | última interacción 10:36:18 | red | 70140/1 |
My Computer\E:\exfil | directorio | última interacción 10:45:51 | otra unidad | 35/1 |
My Computer\E:\exfil\finance_2026 | directorio | última interacción 10:45:51 | otra unidad | 36/1 |
Todas las horas del 2026-09-14, en UTC. «Última interacción» significa que la entrada era la primera del MRUListEx de su padre y toma el LastWrite de la clave padre; «última escritura de la clave» es la de la propia clave de la entrada. La diferencia importa: véase las marcas de tiempo de los ShellBags explicadas.
Lectura, entrada por entrada
1. El kit de herramientas dentro de un ZIP
tools.zip es un item file entry bajo Downloads, y x64 está debajo de él en el árbol. Es decir, el usuario abrió el ZIP en el Explorador como carpeta comprimida y navegó a su directorio x64. Las fechas incrustadas del ZIP (creación 10:06:12, modificación 10:06:40, acceso 10:07:02) son sus fechas en el sistema de archivos cuando se registró el item, coherentes con una descarga hacia las 10:06. La clave tools.zip se escribió por última vez a las 10:07:20 con x64 en la primera posición MRU: navegación dentro del archivo hacia las 10:07.
Lo que no muestra: la extracción. Recorrer un ZIP en el Explorador no lo extrae. Busque los archivos extraídos en la MFT y en el diario USN. Más en ShellBags y archivos ZIP.
2. Una carpeta nueva en ProgramData
C:\ProgramData\Intel tuvo su última interacción a las 10:09:05. Su fecha de creación incrustada es 10:09:00, mientras que ProgramData data del 2026-09-01. Una carpeta con nombre de fabricante creada un minuto antes de recorrerla, en una ubicación escribible por el usuario, es un patrón clásico de preparación. La referencia MFT (entrada 91233, secuencia 1) permite extraer su registro y sus hijos de la $MFT. Si dispone de artefactos de ejecución (Prefetch, Amcache, BAM en el registro), compruebe qué se ejecutó desde esa carpeta.
3. El recurso compartido de finanzas
Tres hechos:
\\FILESRV01era el hijo más reciente deNetwork, yFinanceel hijo más reciente de\\FILESRV01, cuando esas claves se escribieron a las 10:31:07.- El
MRUListExdeFinancees1, 0:Board(ranura 1) se usó después dePayroll(ranura 0). Boardhereda el LastWrite deFinance, 10:36:18.Payroll, no; el LastWrite de su propia clave (10:32:40), sin subclaves, aproxima cuándo se registró su entrada.
Redacción sólida: «La cuenta navegó a \\FILESRV01\Finance\Payroll y después a \\FILESRV01\Finance\Board; Board era la subcarpeta de Finance usada más recientemente a las 10:36:18 UTC». Las referencias MFT incrustadas (70112, 70140) son registros NTFS del servidor de archivos, útiles cuando examine FILESRV01. En el lado del servidor, la auditoría de acceso a recursos compartidos (eventos de seguridad 5140 y 5145, si está activada) puede confirmar la sesión y los archivos tocados.
4. La segunda unidad
E: era el hijo más reciente de My Computer a las 10:45:51, y exfil\finance_2026 se recorrió entonces. Según sus fechas incrustadas, exfil se creó a las 10:40 y finance_2026 a las 10:45. Ambos llevan referencias MFT, así que el volumen E: estaba formateado en NTFS en ese momento; números de entrada bajos como 35 y 36 son lo esperable en un volumen recién formateado, una pista que conviene comprobar, no una conclusión.
El parser la señala como «Otra unidad (¿USB?)» porque la letra no es C:. Los ShellBags por sí solos no pueden decir que fuera USB. Eso sale del historial de dispositivos del hive SYSTEM, de los registros de setupapi y de eventos, y de los LNK cuyo número de serie de volumen coincida.
5. La Papelera a las 10:50
La clave raíz BagMRU se escribió por última vez a las 10:50:03 con Recycle Bin en primera posición. La cuenta abrió la Papelera cinco minutos después de la actividad en E:. Por sí solo, anecdótico. En contexto, un motivo para analizar $Recycle.Bin (parser de la Papelera) y ver qué se borró.
La cronología
| Hora (UTC) | Hallazgo de ShellBags | Siguiente artefacto a revisar |
|---|---|---|
| ~10:02 | Primera actividad del Explorador en el árbol de NTUSER (My Computer\C:) | Eventos de inicio de sesión (4624 tipo 2/10) |
| ~10:07 | Navegación dentro de Downloads\tools.zip\x64 | MFT/USN para la extracción, Zone.Identifier |
| 10:09 | ProgramData\Intel (creada a las 10:09) | Prefetch/Amcache/BAM para binarios de esa carpeta |
| 10:31–10:36 | \\FILESRV01\Finance, Payroll y después Board | LNK/Jump Lists, 5140/5145 en el servidor |
| 10:40–10:45 | E:\exfil, finance_2026 creadas y recorridas | Historial USB, número de serie del volumen en los LNK |
| 10:50 | Papelera | Archivos $I de $Recycle.Bin |
Lo que los ShellBags no pueden decir
- Que se abriera, copiara o subiera ningún archivo.
- Que E: fuera un dispositivo USB, ni cuál.
- Nada de lo hecho desde una consola: en la historia asociada, las herramientas de línea de comandos del atacante no dejan ShellBags.
- Que no se recorrieran otras carpetas: una sesión del Explorador con otra cuenta, o claves limpiadas, no aparecerían.
Por eso la sección del informe dedicada a los ShellBags es breve y precisa, y cada fila de la cronología tiene una columna de «siguiente artefacto». Para la elección de artefactos, véase ShellBags frente a archivos LNK, Jump Lists y RecentDocs.
Reprodúzcalo
Abra ShellBags Parser, haga clic en Probar un ejemplo, marque Solo señaladas y alterne entre Árbol y Cronología. La guía paso a paso explica cada panel.