Kurze Antwort: Jeder Volume-Shadow-Copy-Snapshot enthält eine eingefrorene Kopie von $MFT aus dem Moment, in dem der Snapshot angelegt wurde. Einen älteren Snapshot zu mounten und dessen $MFT zu exportieren erlaubt Ihnen, das heutige Dateisystem mit dem von vor einer Woche zu vergleichen, zwischen Snapshots gelöschte Dateien wiederherzustellen und die Entwicklung der Metadaten über die Zeit zu verfolgen.
Was VSS erfasst
Der Volume Shadow Copy Service (VSS) erstellt Momentaufnahmen eines NTFS-Volumes. Jeder Snapshot ist ein Copy-on-Write-Delta: Bevor ein Block geändert wird, wird das Original zuerst im Shadow Copy gesichert. Der Snapshot spiegelt das Volume daher exakt so wider, wie es zum Zeitpunkt der Erstellung war, einschließlich der Master File Table.
Auf einem typischen Windows-Endpunkt werden Snapshots automatisch erstellt — üblicherweise vor einem Windows-Update, manchmal durch die Systemwiederherstellung, häufig durch Drittanbieter-Backup-Software. Eine Arbeitsstation kann leicht ein halbes Dutzend Snapshots haben, die Wochen zurückreichen.
Warum das für die Forensik wichtig ist
Die Live-$MFT ist eine Beobachtung. Ein Volume mit fünf Snapshots liefert Ihnen sechs Beobachtungen: heute plus fünf historische. Jede historische $MFT zeichnet den Zustand des Volumes zu diesem Zeitpunkt auf, einschließlich:
- Dateien, die damals existierten und seither gelöscht wurden — vollständig wiederherstellbar.
- Dateien, die heute existieren, damals aber fehlten — als Beleg, wann sie eingeführt wurden.
- Einträge, deren Zeitstempel von heute abweichen, was Umbenennungen, Verschiebungen und Timestomping zwischen Snapshots aufdeckt.
Snapshots sind besonders nützlich in Ransomware-Fällen: Wurde VSS nicht gelöscht (manche Ransomware versucht es — siehe Ransomware-Muster in der MFT), enthält einer der älteren Snapshots die vorverschlüsselte $MFT und häufig auch die ursprünglichen Dateidaten.
Snapshots auflisten
Aus einer erhöhten PowerShell:
vssadmin list shadows
Jeder Eintrag zeigt einen Shadow Copy Volume-Pfad, der wie \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7 aussieht. Dieser Pfad ist mountbar.
Aus einem forensischen Image verwenden Sie libvshadow. Das Tool vshadowinfo listet Snapshots in einem .dd- oder .E01-Image auf; vshadowmount macht sie als einzelne virtuelle Volumes verfügbar.
vshadowinfo disk.dd
vshadowmount disk.dd /mnt/shadows
Nach dem Mounten erhalten Sie vss1, vss2, ... als separate Dateien, jede als NTFS-Volume parsbar.
$MFT aus einem Snapshot extrahieren
Sobald ein Snapshot gemountet ist (Live-System oder über vshadowmount), liegt $MFT am gleichen Offset wie auf dem Parent-Volume — der Wurzel des Snapshots. Holen Sie sie mit denselben Werkzeugen wie die Live-Variante:
fsutil(Live-System):fsutil file queryextents \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7\$Mft- FTK Imager: fügen Sie das Shadow-Copy-Gerät als Beweis hinzu, navigieren Sie zu
$MFTund exportieren Sie. icataus The Sleuth Kit (Image):icat -o <offset> vss1 0 > mft_vss1.bin(Inode 0 ist immer$MFT).- KAPE mit dem
MFT-Target gegen jeden gemounteten Snapshot.
Siehe Extrahieren von $MFT für die Live-System-Mechanik.
Zwei MFTs vergleichen
Die nützlichste günstige Analyse ist ein Diff. Parsen Sie beide $MFT-Dateien zu CSV (eine Zeile pro Eintrag), sortieren Sie nach Eintragsnummer und diffen Sie:
mft_dump -o csv mft_today.bin > today.csv
mft_dump -o csv mft_vss3.bin > vss3.csv
diff <(sort today.csv) <(sort vss3.csv) > changes.diff
Worauf Sie achten:
- Einträge in
vss3vorhanden, aber intodayfehlend oder als gelöscht markiert — Dateien, die im Intervall gelöscht wurden. - Einträge in
todayvorhanden, aber invss3fehlend — Dateien, die im Intervall eingeführt wurden. - Einträge, deren
$STANDARD_INFORMATION-Zeitstempel rückwärts gesprungen sind — möglicher Timestomping-Befund (der Snapshot ist die Grundwahrheit). - Einträge, deren
$FILE_NAME-Parent-Referenz sich geändert hat — Datei wurde in ein anderes Verzeichnis verschoben.
Derselbe Diff auf $UsnJrnl-Ebene ist noch reichhaltiger; kombinieren Sie ihn mit dem MFT-Diff für ein vollständiges Bild.
Grenzen
- Snapshots können gelöscht werden.
vssadmin delete shadows /allist ein Einzeiler-Wipe und steht in jedem Ransomware-Playbook. Bereits verdrängte Snapshots sind weg — VSS hält ein festes Maximum (standardmäßig 64). - Snapshots sind keine beliebigen Zeitpunkte. Sie bekommen, was geplant oder von einem Installer ausgelöst wurde. Selten gibt es einen Snapshot genau zum Zeitpunkt eines Vorfalls.
- Residente Daten in einer älteren
$MFTbleiben nicht über den Snapshot hinaus erhalten. Existierte die Datei im Snapshot und war klein, hält dieser Snapshot die residenten Bytes. Erwarten Sie nicht, Daten aus einem Snapshot zu retten, der nach der Löschung erstellt wurde.
Häufig gestellte Fragen
Kann ich einen VSS-Snapshot unter Linux lesen?
Ja — libvshadow ist plattformübergreifend. Mounten Sie das Image mit vshadowmount; jedes NTFS-fähige Werkzeug liest die Snapshot-Volumes danach wie gewöhnliche Dateien.
Enthalten Snapshots Systemdateien wie $MFT?
Ja. Ein VSS-Snapshot erfasst jeden Block des Volumes zum Snapshot-Zeitpunkt, einschließlich der Metadatendateien am Anfang von $MFT.
Wie viele Snapshots behält Windows?
Standardmäßig bis zu 64 pro Volume. Die Einstellung heißt MaxShadowCopies in der Registry und wird selten angepasst. Auf Servern mit Backup-Software ist die effektive Grenze in der Regel das, was die Backup-Software vorhält.
Sind Shadow-Copy-Daten gegen Wischen resistent?
Sie sind resistent gegen das Löschen einzelner Dateien auf dem Live-Volume — das ist der Zweck. Sie sind nicht resistent gegen vssadmin delete shadows, gegen vollständige Disk-Wipes oder physischen Schaden am Medium.