Thumbs.db-Forensik: Catalog, Type-1-Bilder und Freigaben
Wie Thumbs.db Vorschaubilder, Originaldateinamen und Änderungszeiten speichert, warum alte Type-1-Bilder beschädigt wirken und wo Windows Thumbs.db noch anlegt.
Thumbs.db ist der ordnerbezogene Vorschau-Cache älterer Windows-Versionen.
Er taucht auch in aktuellen Fällen noch auf: auf externen Laufwerken, die
zuletzt mit XP-Systemen genutzt wurden, in Archiven und Backups sowie auf
Dateiservern, wo aktuelles Windows ihn weiterhin anlegt. Anders als der
moderne Thumbcache speichert er oft den
ursprünglichen Dateinamen und dessen letzte Änderungszeit, was ihn sehr
wertvoll macht.
Container: eine OLE-Compound-Datei
Thumbs.db ist eine Microsoft-Compound-Datei (derselbe Container wie alte
.doc-Dateien), Signatur D0 CF 11 E0 A1 B1 1A E1. Darin liegen
Storage-Streams:
Catalog: der Index (Windows 98 → XP);- ein Stream pro Vorschaubild, benannt nach seinem Catalog-Index mit
umgekehrter Ziffernfolge (Index 12 ergibt Stream
21); - bei Netzwerkfreigabe-Varianten ab Vista Streams mit Namen wie
256_<cache id>, und kein Catalog.
Der Catalog-Stream
| Offset | Größe | Feld |
|---|---|---|
| 0 | 2 | Headerlänge (meist 16) |
| 2 | 2 | Version |
| 4 | 4 | Anzahl der Einträge |
| 8 | 4 | Vorschaubildbreite |
| 12 | 4 | Vorschaubildhöhe |
Jeder Eintrag enthält dann:
| Offset | Größe | Feld |
|---|---|---|
| 0 | 4 | Eintragslänge |
| 4 | 4 | Index (→ Streamname, Ziffern umgekehrt) |
| 8 | 8 | FILETIME: letzte Änderungszeit der Quelldatei |
| 16 | … | Dateiname, UTF-16LE, NUL-terminiert |
Die FILETIME ist die Änderungszeit der Quelldatei zum Zeitpunkt der Vorschaubild-Erzeugung, nicht der Zeitpunkt, zu dem der Ordner angezeigt wurde. Sie erlaubt es, ein Vorschaubild einer bestimmten Dateiversion zuzuordnen, und bleibt erhalten, wenn die Datei selbst verschwunden ist.
Vorschaubild-Streams: Type 2 und Type 1
Die meisten XP-Vorschaubilder („Type 2“) bestehen aus einem 12-Byte-Header
(Headerlänge 0x0C, einer Konstante, der Datengröße), gefolgt von einem
gewöhnlichen JFIF-JPEG. Jeder Viewer kann sie öffnen.
Type-1-Vorschaubilder, von Windows 98, ME, 2000 und einigen frühen
XP-Systemen, sind anders. Nach dem ersten Header folgt ein zweiter (Marker
1, eine Größe, Breite und Höhe) und dann ein JPEG-Fragment:
- es besitzt SOI-, SOF- und SOS-Marker, aber keine DQT- oder DHT-Tabelle: Die Quantisierungs- und Huffman-Tabellen fehlen, weil Windows stets die Standardtabellen aus der JPEG-Spezifikation (Anhang K) verwendete;
- seine vier Komponenten sind als RGBA beschriftet, enthalten aber Y, M, C und einen Alphakanal;
- das Bild ist kopfüber gespeichert.
Um ein solches Bild anzuzeigen, müssen die Standardtabellen wieder eingefügt, das Bild dekodiert, R = 255 − C, G = 255 − M, B = 255 − Y berechnet und vertikal gespiegelt werden. Der Thumbcache Parser erledigt das automatisch und kennzeichnet das Ergebnis als Rekonstruiert. Die gemeldeten Hashes beziehen sich auf den Original-Stream, sodass das Beweismittel selbst nie verändert wird.
Wo man suchen sollte
- Benutzerdatenordner, besonders Bilderordner, auf Images aus der XP-Ära.
- Wechseldatenträger: Ein mit dem Explorer kopierter Ordner nimmt seine
versteckte
Thumbs.dbmit, einschließlich der Vorschaubilder vor der Kopie gelöschter Dateien. - Netzwerkfreigaben: Clients ab Vista schreiben dort standardmäßig
weiterhin
Thumbs.db. Das Durchsuchen einer Freigabe mit Vorschaubildern kann Spuren auf dem Server hinterlassen, nicht auf dem Client. - Überall auf einem Datenträger. Anders als Thumbcache ist sie nicht an ein Profil gebunden, durchsuchen Sie also das gesamte Dateisystem (z. B. mit dem Thumbnail-Cache-Preset des Disk Image Parser).
Achten Sie auch auf ehthumbs.db und ehthumbs_vista.db, dasselbe Format,
geschrieben vom Windows Media Center.
Hinweise zur Berichterstattung
Dokumentieren Sie den vollständigen Pfad der Thumbs.db (er zeigt, welcher
Ordner durchsucht wurde), Catalog-Name und FILETIME für jedes Vorschaubild,
den Streamnamen sowie den Hash der Stream-Bytes. Vermerken Sie bei
Type-1-Bildern, dass das angezeigte Bild mit Standard-JPEG-Tabellen
rekonstruiert wurde.