Speicherort der ShellBags: Registry-Pfade und Sicherung
ShellBags-Speicherorte in UsrClass.dat und NTUSER.DAT von Windows XP bis 11 und wie Sie gesperrte Hives samt Transaktionsprotokollen pro Benutzer sichern.
TL;DR. Unter Windows 7, 10 und 11 liegen ShellBags hauptsächlich in UsrClass.dat unter Local Settings\Software\Microsoft\Windows\Shell\BagMRU (und Bags), dazu ein zweiter, kleinerer Baum in NTUSER.DAT unter Software\Microsoft\Windows\Shell\BagMRU. Windows XP nutzte nur NTUSER.DAT, einschließlich ShellNoRoam. Beide Hives sind gesperrt, solange der Benutzer angemeldet ist: Sichern Sie sie per Rohkopie mit ihren .LOG1- und .LOG2-Dateien, ein Paar pro Benutzer.
„Wo werden ShellBags gespeichert?“ klingt nach einer Antwort in einer Zeile. In der Praxis gingen die meisten übersehenen ShellBags, die ich in Reviews gesehen habe, auf den falschen Hive zurück, auf nur einen von zwei Hives oder auf einen Hive ohne seine Transaktionsprotokolle. Dieser Beitrag ist die Checkliste.
Registry-Pfade nach Windows-Version
| Windows-Version | Hive | Schlüsselpfad im Hive | Live-Ansicht (regedit) |
|---|---|---|---|
| XP / Server 2003 | NTUSER.DAT | Software\Microsoft\Windows\ShellNoRoam\BagMRU und \Bags | HKCU\Software\Microsoft\Windows\ShellNoRoam |
| XP / Server 2003 | NTUSER.DAT | Software\Microsoft\Windows\Shell\BagMRU und \Bags | HKCU\Software\Microsoft\Windows\Shell |
| Vista, 7, 8, 8.1, 10, 11 | UsrClass.dat | Local Settings\Software\Microsoft\Windows\Shell\BagMRU und \Bags | HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell |
| Vista, 7, 8, 8.1, 10, 11 | NTUSER.DAT | Software\Microsoft\Windows\Shell\BagMRU und \Bags | HKCU\Software\Microsoft\Windows\Shell |
Quellen: die ShellBags-Übersicht von Magnet Forensics für die Aufteilung XP / Vista+, Chad Tilburys SANS-Beitrag für Windows 7 und das Velociraptor-Artefakt Windows.Forensics.Shellbags, das genau die beiden modernen Pfade oben durchsucht.
Zwei praktische Hinweise:
- Das Volumen steckt in UsrClass.dat. Auf modernen Systemen ist der Baum in NTUSER.DAT meist klein (Desktop-Elemente, einige Netzwerkeinträge). Schließen Sie nicht allein aus NTUSER.DAT auf „keine ShellBags“.
Wow6432Node. Einige Parser, darunter der ShellBags Parser, prüfen zusätzlichWow6432Node\Local Settings\Software\Microsoft\Windows\Shell\BagMRUin UsrClass.dat, wohin 32-Bit-Shell-Komponenten unter 64-Bit-Windows schreiben können. Meist ist er leer; die Prüfung kostet nichts.
Die Hive-Dateien auf dem Datenträger
| Hive | Pfad (ab Vista) | Eingebunden unter |
|---|---|---|
| UsrClass.dat | C:\Users\<user>\AppData\Local\Microsoft\Windows\UsrClass.dat | HKEY_USERS\<SID>_Classes, zusammengeführt in HKCU\Software\Classes |
| NTUSER.DAT | C:\Users\<user>\NTUSER.DAT | HKEY_USERS\<SID>, sichtbar als HKCU |
Jeder Hive hat seine Transaktionsprotokolle im selben Ordner: UsrClass.dat.LOG1, UsrClass.dat.LOG2, NTUSER.DAT.LOG1, NTUSER.DAT.LOG2. Microsoft beschreibt das Verhältnis von Hive und Datei unter Registry Hives. AppData ist versteckt; UsrClass.dat und NTUSER.DAT sind versteckte Systemdateien.
Der Wurzelschlüssel von UsrClass trägt die SID des Benutzers mit dem Suffix _Classes (S-1-5-21-...-1104_Classes). So ordnet ein Parser eine einzelne UsrClass.dat einem Konto zu, auch wenn die Datei umbenannt wurde. NTUSER.DAT trägt die SID nicht im Wurzelnamen, aber ihre Werte unter Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders zeigen auf das Profil (C:\Users\<name>\Desktop), was den Benutzernamen liefert.
Innerhalb der Schlüssel
...\Shell\BagMRU values: 0, 1, 2 (shell items), MRUListEx, NodeSlot, NodeSlots
...\Shell\BagMRU\0 children of item 0, same layout, recursively
...\Shell\Bags\<NodeSlot>\Shell view settings for the folder whose NodeSlot = <n>
...\Shell\Bags\<NodeSlot>\ComDlg view settings saved from Open/Save dialogs
- Nummerierte
REG_BINARY-Werte enthalten je ein Shell-Item. MRUListExist eine Liste von 32-Bit-Slotnummern, die jüngste zuerst, abgeschlossen mit0xFFFFFFFF.NodeSlotverknüpft einen BagMRU-Schlüssel mit seinem EinstellungsschlüsselBags\<n>.
Die Beiträge zum Shell-Item-Format und zu den Zeitstempeln gehen tiefer.
Die Hives sichern
Windows öffnet beide Hives exklusiv, solange das Profil geladen ist. copy schlägt fehl; manche naiven Werkzeuge erzeugen eine Datei der richtigen Größe voller Nullen. Diese Methoden funktionieren:
| Methode | Wann | Hinweise |
|---|---|---|
KAPE mit dem Target RegistryHivesUser | Live-Triage | Rohlesezugriff; sichert NTUSER.DAT, UsrClass.dat und ihre Protokolle für jedes Profil und behält die Struktur Users\<name>\ bei. |
| Velociraptor | Live, in der Breite | Dateien sichern oder Windows.Forensics.Shellbags serverseitig ausführen und trotzdem die Roh-Hives behalten. |
| FTK Imager („Obtain Protected Files“ oder Dateiexport) | Einzelner Rechner | Funktioniert auf Live-Systemen und Abbildern. |
| Volumeschattenkopie (VSS) | Live, älterer Zustand | Liefert eine zweite, ältere Kopie zum Vergleich. |
| Datenträgerabbild | Offline | Export aus dem eingebundenen Abbild (Disk-Image-Parser für einen ersten Blick). |
Checkliste:
- Jedes Profil. Gehen Sie
C:\Users\*durch, einschließlich Dienst- und Administratorkonten. Bei Einbrüchen gehören die interessanten ShellBags oft einem Konto, mit dem sich niemand interaktiv anmeldet. - Beide Hives pro Benutzer. NTUSER.DAT und UsrClass.dat.
- Protokolle neben jedem Hive.
.LOG1und.LOG2. Weichen die Sequenznummern im Basisblock voneinander ab, ist der Hive dirty, und die jüngsten Schreibvorgänge stehen womöglich nur in den Protokollen. Maxim Suhanovs Spezifikation des Registry-Dateiformats dokumentiert den Mechanismus. - Ordnerstruktur beibehalten (
Users\<name>\...) oder pro Benutzer umbenennen, damit das Analysewerkzeug die Konten unterscheiden kann. - Hashwerte der gesicherten Dateien bilden.
Dirty Hives und das Einspielen der Protokolle
Ein von einem Live-System kopierter Hive ist oft dirty. Spielen Sie die Protokolle vor einer abschließenden Auswertung ein, etwa mit Eric Zimmermans rla.exe (aus seinen Tools) oder indem Sie den Hive in Registry Explorer laden und eine bereinigte Kopie speichern. SBECmd spielt Protokolle standardmäßig ein.
Der ShellBags Parser erkennt dirty Hives und warnt Sie, spielt die Protokolle aber noch nicht ein. Meldet er einen dirty Hive, spielen Sie ihn mit einem der genannten Werkzeuge ein und legen den bereinigten Hive ab. Er zeigt außerdem an, wenn eine abgelegte Datei ein Transaktionsprotokoll, ein anderer Hive oder voller Nullen ist (das übliche Zeichen einer Kopie einer gesperrten Datei).
Kurzreferenz
- Modernes Windows:
UsrClass.dat→Local Settings\Software\Microsoft\Windows\Shell\BagMRU, dazuNTUSER.DAT→Software\Microsoft\Windows\Shell\BagMRU. - XP:
NTUSER.DAT→Software\Microsoft\Windows\ShellNoRoam\BagMRUundShell\BagMRU. - Rohkopie, mit
.LOG1/.LOG2, alle Profile, beide Hives.
Häufige Fragen
Kann ich UsrClass.dat auf einem laufenden System kopieren?
Nicht mit einer normalen Dateikopie: Der Hive ist gesperrt, solange das Benutzerprofil geladen ist. Verwenden Sie ein Rohkopie-Werkzeug wie KAPE, Velociraptor oder FTK Imager, eine Volumeschattenkopie oder ein Datenträgerabbild.
Brauche ich die Dateien .LOG1 und .LOG2?
Ja. Ist der Hive dirty, stehen die jüngsten Schreibvorgänge noch in den Transaktionsprotokollen. Sichern Sie sie neben dem Hive und spielen Sie sie ein, bevor Sie den neuesten ShellBags vertrauen.