Thumbs.db forense: Catalog, Type 1 y recursos compartidos
Cómo Thumbs.db guarda miniaturas, nombres de archivo originales y fechas de modificación, por qué las imágenes Type 1 antiguas parecen corruptas y dónde sigue creándose.
Thumbs.db es la caché de miniaturas por carpeta de las versiones más
antiguas de Windows. Todavía aparece en casos actuales: en unidades externas
usadas por última vez con equipos de la era XP, en archivos comprimidos y
copias de seguridad, y en servidores de archivos, donde Windows actual sigue
creándolo. A diferencia del thumbcache
moderno, a menudo registra el nombre de archivo original y su fecha de
última modificación, lo que lo hace muy valioso.
Contenedor: un archivo compuesto OLE
Thumbs.db es un Microsoft Compound File (el mismo contenedor que los
antiguos archivos .doc), con firma D0 CF 11 E0 A1 B1 1A E1. Dentro hay
streams de almacenamiento:
Catalog: el índice (Windows 98 → XP);- un stream por miniatura, cuyo nombre es el índice del catálogo con los
dígitos invertidos (el índice 12 es el stream
21); - en las variantes de recursos compartidos de red de Vista+, streams con
nombres como
256_<id de caché>, y sin Catalog.
El stream Catalog
| Offset | Tamaño | Campo |
|---|---|---|
| 0 | 2 | Longitud de cabecera (normalmente 16) |
| 2 | 2 | Versión |
| 4 | 4 | Número de entradas |
| 8 | 4 | Ancho de miniatura |
| 12 | 4 | Alto de miniatura |
Cada entrada contiene además:
| Offset | Tamaño | Campo |
|---|---|---|
| 0 | 4 | Longitud de entrada |
| 4 | 4 | Índice (→ nombre del stream, dígitos invertidos) |
| 8 | 8 | FILETIME: fecha de última modificación del archivo de origen |
| 16 | … | Nombre de archivo, UTF-16LE, terminado en NUL |
El FILETIME es la fecha de modificación del archivo de origen en el momento en que se generó la miniatura. No es la fecha en que se examinó la carpeta. Permite vincular una miniatura a una versión concreta de un archivo, y sobrevive aunque el propio archivo haya desaparecido.
Streams de miniatura: Type 2 y Type 1
La mayoría de las miniaturas de XP («Type 2») son una cabecera de 12 bytes
(longitud de cabecera 0x0C, una constante, el tamaño de los datos) seguida
de un JPEG JFIF normal. Cualquier visor puede abrirlas.
Las miniaturas Type 1, de Windows 98, ME, 2000 y algunos sistemas XP
tempranos, son distintas. Tras la primera cabecera viene una segunda
(marcador 1, un tamaño, el ancho y el alto), y después un fragmento JPEG:
- tiene marcadores SOI, SOF y SOS pero sin DQT ni DHT: faltan las tablas de cuantización y Huffman, porque Windows siempre usaba las estándar de la especificación JPEG (Anexo K);
- sus cuatro componentes están etiquetados como RGBA pero contienen canales Y, M, C y un canal alfa;
- la imagen se almacena boca abajo.
Para verla, hay que reinsertar las tablas estándar, decodificar, convertir R = 255 − C, G = 255 − M, B = 255 − Y, y voltear verticalmente. Thumbcache Parser hace esto automáticamente y marca el resultado como Reconstruida. Los hashes que reporta son los del stream original, así que la evidencia en sí nunca se altera.
Dónde buscar
- Carpetas de usuario, especialmente carpetas de imágenes, en volúmenes de la era XP.
- Medios extraíbles: una carpeta copiada con el Explorador se lleva
consigo su
Thumbs.dboculto, incluidas las miniaturas de archivos eliminados antes de la copia. - Recursos compartidos de red: los clientes Vista+ todavía escriben
Thumbs.dballí por defecto. Examinar un recurso compartido con miniaturas puede dejar evidencia en el servidor, no en el cliente. - En cualquier parte de un volumen. A diferencia de thumbcache, no está ligado a un perfil, así que busca en todo el sistema de archivos (por ejemplo, con el preset de caché de miniaturas de Disk Image Parser).
Busca también ehthumbs.db y ehthumbs_vista.db, el mismo formato escrito
por Windows Media Center.
Notas para el informe
Registra la ruta completa del Thumbs.db (indica qué carpeta se examinó), el
nombre del Catalog y el FILETIME de cada miniatura, el nombre del stream y el
hash de sus bytes. Para las imágenes Type 1, indica que la imagen mostrada se
reconstruyó con las tablas JPEG estándar.