Anti-forensics & deletion
Volume Shadow Copies (VSS)
Volume Shadow Copies cheat sheet: store files in System Volume Information, copy-on-write blocks, deletion by ransomware, mounting and parsing.
- Location
- C:\System Volume Information\{GUID}{3808876b-c176-4e48-b7ae-04046e6cc752}
- Proves
- Earlier versions of files, registry hives and logs, and deletion of snapshots
- Timestamps
- Snapshot creation time as FILETIME, UTC in the catalog (vssadmin shows local time); files inside keep their NTFS UTC times
- Retention
- Oldest snapshots deleted when the diff area is full (up to 512 per volume); often deleted by attackers and ransomware
- Access
- Administrator; System Volume Information not directly readable: link the GLOBALROOT device path or process offline from an image
- Type
- File / file system
- Windows
- Vista / 78 / 8.11011
- KAPE target
- No dedicated target
- Velociraptor
- No dedicated target
Tools
Compare all toolsWhat it is
The Volume Shadow Copy Service (VSS) creates point-in-time snapshots of a volume. On Windows client versions the built-in system provider uses copy-on-write: when a block of the live volume is about to be overwritten, the original content is first copied into a diff area (shadow copy storage). Combining the preserved blocks with the unchanged blocks of the live volume rebuilds the volume as it was when the snapshot was taken.
A shadow copy is therefore a time machine for everything on the volume: earlier versions of registry hives, event logs, $MFT, $UsnJrnl, user documents and even files deleted since. Deleting shadow copies is one of the most common ransomware and anti-forensics steps.
Location
| Windows version | Path | Notes |
|---|---|---|
| Vista / 7 / 8 / 10 / 11 | <volume>\System Volume Information\{3808876b-c176-4e48-b7ae-04046e6cc752} | Catalog: list of snapshots and their stores |
| Vista / 7 / 8 / 10 / 11 | <volume>\System Volume Information\{<store GUID>}{3808876b-c176-4e48-b7ae-04046e6cc752} | One store file per snapshot, holding preserved blocks in 16 KiB units |
| Live system | \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy<N>\ | Device path of each mounted snapshot |
{3808876b-c176-4e48-b7ae-04046e6cc752} is the identifier VSS uses for its metadata files. The diff area must be on an NTFS volume and is normally on the same volume. Windows XP has the VSS service but does not keep persistent client snapshots; its System Restore used a different format.
What it proves
- Earlier state of any file on the volume at snapshot time, including files later modified, encrypted or deleted.
- Historical artifacts: older copies of registry hives, EVTX logs, the
$MFTand the$Jstream extend every other timeline backwards. - Snapshot creation time: when each restore point or backup snapshot was taken.
- Tampering: missing or recently deleted snapshots, a shrunken storage limit, and matching commands or events.
- A snapshot does not contain every block ever written: only the blocks changed after it was taken are preserved, and unchanged data is read from the live volume. It says nothing about who used the files.
Key fields
| Field | Meaning |
|---|---|
| Shadow copy ID | GUID of the snapshot (shown by vssadmin list shadows) |
| Shadow copy set ID | Groups snapshots created together |
| Creation time | When the snapshot was taken |
| Original volume | Volume GUID path of the source |
| Shadow copy volume | \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy<N> device name |
| Provider / type | System provider; client restore points are ClientAccessibleWriters |
| Store file | {GUID}{3808876b-…} file in System Volume Information |
| Shadow storage limits | Used, allocated and maximum size of the diff area (vssadmin list shadowstorage) |
Timestamps
| Timestamp | Set when | Format | Pitfalls |
|---|---|---|---|
| Snapshot creation time | Snapshot committed | FILETIME in the catalog, UTC; vssadmin displays local time | Snapshot N reflects the volume at that time, not the time any file inside was changed |
| File timestamps inside a snapshot | As they were at snapshot time | NTFS, UTC | Compare with the live volume to see what changed afterwards |
| Store file timestamps ($SI) | Store creation and updates | NTFS, UTC | Store files keep growing as blocks are preserved after the snapshot |
Retention and clearing
- Snapshots are created by System Restore (before updates, driver or application installs, and on schedule), by Windows backup features, and by third-party backup tools. Whether System Protection is enabled at all varies by build, disk size and image, so check before assuming snapshots exist.
- The diff area has a maximum size. When it is full, the oldest snapshots are deleted; the system provider supports up to 512 snapshots per volume.
- Attackers and ransomware delete them:
vssadmin delete shadows /all /quiet,wmic shadowcopy delete, PowerShellWin32_ShadowCopydeletion, orvssadmin resize shadowstorageto a tiny size so Windows purges them itself. - The System event log records
volsnapevents such as 33 (oldest shadow copy deleted to stay under the storage limit) and 25 (shadow copies deleted because storage could not grow in time). - Files listed under
HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshotare removed from new snapshots on a best-effort basis; paging files are always excluded.
Collection
- KAPE target: none dedicated. Add
--vssto any target run (for exampleKapeTriageorRegistryHives) to collect the same files from every shadow copy, deduplicated by SHA-1. - Velociraptor (
Windows.Triage.Targets): no dedicated target. Set theVSS_MAX_AGE_DAYSparameter to also search shadow copies newer than that many days;Windows.Search.VSSfinds a given file across all snapshots. - Built-in: list snapshots and link one as a folder (note the trailing backslash):
vssadmin list shadows
vssadmin list shadowstorage
mklink /d C:\vsc1 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\
robocopy C:\vsc1\Windows\System32\config E:\case\vsc1\config SYSTEM SOFTWARE SAM SECURITY /COPY:DAT
rmdir C:\vsc1
For a full image, snapshots live inside the image: process them offline rather than on the live host.
Parsing tools
- libvshadow (Joachim Metz, open source):
vshadowinfolists snapshots with creation times;vshadowmountexposes each one as a raw volume image on Linux or macOS. - Arsenal Image Mounter (free mode): mounts a disk image as a real disk so Windows itself exposes its shadow copies; direct snapshot mounting is part of the paid mode.
- VSCMount (Eric Zimmerman): mounts all shadow copies of a volume as folders for review.
- dfir_ntfs (Maxim Suhanov):
vsc_mount --listand--mounton raw images;ntfs_parsercan read metadata files from shadow copies. - Plaso:
log2timeline.py --vss_stores alladds every snapshot to the super timeline. - MFTECmd (Eric Zimmerman):
--vss(with--dedupe) processes the$MFTor$Jof every shadow copy on a live drive.
Investigation tips
- Compare the snapshot list with System Restore expectations: a machine with regular restore points that suddenly has none, plus
vssadmin.exeorwmic.exein Prefetch, points to deliberate deletion. - Search process-creation logs and PowerShell logs for
delete shadows,shadowcopy deleteandresize shadowstorage; correlate with volsnap events in the event logs. - Pull older registry hives from each snapshot to see persistence keys, services and user activity as they were days or weeks earlier.
- Parse
$MFTand$Jfrom every snapshot to extend the USN journal and recover names of files deleted before the live journal rolled over. - After a ransomware incident, check every volume: attackers sometimes miss shadow copies on data drives, and unencrypted originals may still be there.
Related artifacts
- Registry hivesRegistry hives cheat sheet: SYSTEM, SOFTWARE, SAM, SECURITY, NTUSER.DAT, UsrClass.dat, transaction logs, RegBack, LastWrite times and collection.
- Master File Table ($MFT)$MFT cheat sheet: FILE records, $SI vs $FN timestamps, resident data, deleted records, sequence numbers, timestomping checks and MFTECmd parsing.
- USN Journal ($UsnJrnl:$J)USN journal cheat sheet: $UsnJrnl:$J and $Max, record fields, reason flags, parent references, default size, rollover, fsutil and MFTECmd parsing.
- Windows event logs (EVTX)Windows event log cheat sheet: EVTX locations, must-know event IDs for logons, processes, services and log clearing, retention, audit policy and parsing tools.
- $LogFile (NTFS transaction log)$LogFile cheat sheet: NTFS metadata journal (MFT record 2), 64 MB default, redo/undo operations, restart area, short retention and parsers.
- NTDS.dit and domain controllersNTDS.dit cheat sheet: the Active Directory database, what it proves, theft traces on a DC, and the Kerberos, NTLM and DCSync event IDs investigators need.
Glossary terms
- Volume Shadow Copy (VSS)A Windows service that creates point-in-time snapshots of a volume, letting investigators recover earlier file and registry states.
- Anti-forensicsTechniques used to destroy, hide or falsify evidence, such as log clearing, timestomping, wiping and deleting shadow copies or the USN journal.
- Triage collectionTargeted acquisition of high-value artifacts (hives, event logs, $MFT, Prefetch) instead of a full disk image, using KAPE or Velociraptor.
- NTFSNTFS (New Technology File System) is the default Windows file system; its metadata files such as $MFT, $LogFile and $UsnJrnl are core forensic sources.