File & folder access
Mounted Disk Images (ISO, IMG, VHD, VHDX)
Mounted disk images cheat sheet: ISO/IMG/VHD/VHDX mounts, VHDMP events, MountedDevices, LNK and Jump List traces, Mark-of-the-Web gaps and a detection workflow.
- Location
- C:\Windows\System32\winevt\Logs\Microsoft-Windows-VHDMP-Operational.evtx
- Proves
- A disk image file was mounted as a volume, when, under which drive letter, and which files on it were opened or executed
- Timestamps
- VHDMP and Partition event times (UTC), MountedDevices and MountPoints2 key LastWrite (FILETIME, UTC), LNK and Jump List target and volume data (UTC)
- Retention
- VHDMP Operational log is small and rolls over (commonly about 1 MB); MountedDevices and MountPoints2 entries persist until cleaned; LNK files persist until deleted
- Access
- Admin to read the SYSTEM hive and active .evtx files (locked: raw copy or VSS); user-side LNK and Jump Lists are readable per profile
- Evidence of
- File & folder accessExecution
- Type
- Event log
- Windows
- 8 / 8.11011
- KAPE target
- EventLogsRegistryHivesSystemRegistryHivesUserLNKFilesAndJumpLists
- Velociraptor
- Windows.Triage.Targets:EventLogsRegistryHivesSystemRegistryHivesUserLNKFilesAndJumpLists
Tools
Compare all toolsWhat it is
Since Windows 8, double-clicking an .iso, .img, .vhd or .vhdx file mounts it as a new drive letter (VHD/VHDX could already be attached through Disk Management on Windows 7). Phishing campaigns abused this heavily from 2019 onwards: an ISO attached to an email or downloaded from a link carries a shortcut, a DLL and a decoy, and for years the files inside did not inherit the Mark-of-the-Web of the container. The mount itself is handled by the VHDMP (virtual disk miniport) driver and looks, to the rest of Windows, much like attaching a removable drive. That is why the investigation borrows most of its method from USB device forensics.
Location
| Source | Path |
|---|---|
| Virtual disk events | Microsoft-Windows-VHDMP-Operational.evtx (channel Microsoft-Windows-VHDMP-Operational; file name can differ slightly by build) |
| Disk arrival events | Microsoft-Windows-Partition%4Diagnostic.evtx (Windows 10 1703+), Microsoft-Windows-Kernel-PnP%4Configuration.evtx |
| Drive letter mapping | HKLM\SYSTEM\MountedDevices |
| Device enumeration | HKLM\SYSTEM\<ControlSet00x>\Enum\SCSI\CdRom&Ven_Msft&Prod_Virtual_DVD-ROM\... (ISO) and ...\Disk&Ven_Msft&Prod_Virtual_Disk\... (VHD/VHDX) |
| Per-user mounts | NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{Volume GUID} |
| User file access | LNK files, Jump Lists, ShellBags, RecentDocs (.iso / .vhd extension subkeys) |
| The image file | Usually Downloads, %TEMP% or an Outlook cache folder, with its Zone.Identifier stream |
What it proves
- Mount: VHDMP events name the full path of the image file that was surfaced as a disk, and when it was detached.
- Drive letter and volume: MountedDevices ties
\DosDevices\E:to aMsft Virtual DVD-ROMorMsft Virtual Diskdevice, and MountPoints2 shows which user's Explorer saw the volume. - File access and execution: LNK files and Jump Lists record targets on that drive letter with the image's volume serial number and label; Prefetch of a payload lists a CD-ROM or virtual volume device path.
It does not prove the user opened any file inside the image, and a mount event alone does not tell you who double-clicked. Attribution comes from MountPoints2, user-side LNK and Jump List entries, and the process that performed the mount. Third-party mounters (Daemon Tools, 7-Zip extraction) bypass VHDMP entirely.
Key fields
| Field | Meaning |
|---|---|
| VHDMP event: file path | Full path of the .iso / .vhdx that was attached |
| VHDMP event: disk number | Physical disk number the image surfaced as |
MountedDevices \DosDevices\X: | Binary data containing the device instance string, e.g. SCSI#CdRom&Ven_Msft&Prod_Virtual_DVD-ROM#... |
MountedDevices \??\Volume{GUID} | Volume GUID; matches the MountPoints2 subkey name |
| LNK drive type | DRIVE_CDROM for ISO mounts, DRIVE_FIXED or removable for VHD/VHDX |
| LNK volume serial / label | Serial and label of the image's file system; ISO labels are often descriptive ("INVOICE_2024") |
| Partition/Diagnostic 1006 | Disk arrival with model, serial and raw partition data (hedge: coverage of virtual disks varies by build) |
Timestamps
- VHDMP events: UTC. The commonly observed IDs are 1 (virtual disk surfaced / attached) and 2 (removed / detached), with other IDs such as 12 and 22 to 25 covering handle and lifecycle operations. IDs and message wording differ between builds, so verify on a reference system and read the event text.
- MountedDevices / MountPoints2 LastWrite (FILETIME, UTC): last time the key changed, which on the first mount is close to the mount time. A later mount of another image reusing the same letter overwrites the
\DosDevicesvalue. - LNK files: creation of the
.lnkinRecentmarks first opening; the embedded target times come from the image's file system, often the attacker's build time, which is itself useful intelligence. - The image file: $SI and $FN times in the $MFT and the
Zone.Identifierstream give the download time and source.
Retention and clearing
The VHDMP Operational log is small (commonly about 1 MB) and overwrites quickly on hosts that use VHDX for FSLogix profiles or Hyper-V. MountedDevices keeps entries for volume GUIDs indefinitely unless cleaned. Detaching the image (event 2) or deleting the .iso removes the drive letter, but not LNK files, Jump List entries or Prefetch. Deleting the image leaves its name and deletion time in the USN journal.
Collection
KAPE targets EventLogs, RegistryHivesSystem, RegistryHivesUser and LNKFilesAndJumpLists, plus $MFT for the image file. On a live system:
Get-WinEvent -LogName 'Microsoft-Windows-VHDMP-Operational' -ErrorAction SilentlyContinue |
Select-Object TimeCreated, Id, Message | Export-Csv E:\case\vhdmp.csv -NoTypeInformation
Get-WinEvent -LogName 'Microsoft-Windows-Partition/Diagnostic' -ErrorAction SilentlyContinue |
Select-Object TimeCreated, Id | Export-Csv E:\case\partition.csv -NoTypeInformation
Get-ChildItem -Path C:\Users\*\Downloads, C:\Users\*\AppData\Local\Temp -Include *.iso,*.img,*.vhd,*.vhdx -Recurse -ErrorAction SilentlyContinue |
ForEach-Object { $_.FullName; Get-Content -Path $_.FullName -Stream Zone.Identifier -ErrorAction SilentlyContinue }
reg query HKLM\SYSTEM\MountedDevices
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
Preserve the image file itself: it is the payload container, and you can mount it read-only in a lab to see exactly what the user saw.
Parsing tools
- EvtxECmd for VHDMP, Partition/Diagnostic and Kernel-PnP events.
- Registry Explorer or RegRipper (
mountdev,mp2plugins) for MountedDevices and MountPoints2. - LECmd and JLECmd to list targets whose drive type is CD-ROM or whose volume serial matches the image.
- PECmd to find payloads run from
\VOLUME{...}or\DEVICE\CDROM*paths. - MFTECmd for the image file and its
Zone.Identifieralternate data stream.
Investigation tips
- Build the chain: download (browser history, Zone.Identifier) → mount (VHDMP 1, MountPoints2) → open (LNK with DRIVE_CDROM) → execution (Prefetch, 4688, Sysmon) → detach (VHDMP 2).
- Mark-of-the-Web: files inside ISO and VHD containers did not receive MotW before Microsoft's November 2022 updates (CVE-2022-41091). Patched builds propagate the container's zone to files opened from ISO images, but coverage for other formats and third-party tools varies. Do not expect a
Zone.Identifierstream on files within the mounted volume: ISO9660/UDF has no ADS, so check the container. - Prefetch of
rundll32.exe,mshta.exeorcmd.exereferencing a file on a CD-ROM device path is a strong indicator of ISO-delivered execution. - On VDI and Citrix hosts, VHDX mounts are routine (FSLogix profile containers); filter those paths before hunting.
- Compare the ISO volume label and creation time from LNK files across hosts to link infections to the same campaign.
Related artifacts
- Zone.Identifier (Mark of the Web)Zone.Identifier cheat sheet: Mark of the Web ADS, ZoneId 0 to 4, ReferrerUrl and HostUrl per browser, loss and bypass cases, and collection from the $MFT.
- LNK shortcut filesLNK cheat sheet: Recent folder shortcuts, first and last open times, embedded target timestamps, volume serial, network share and TrackerDataBlock MAC.
- Jump ListsJump Lists cheat sheet: AutomaticDestinations and CustomDestinations, AppIDs, DestList entries with last access, access count and pin status, and JLECmd.
- USB device historyUSB forensics cheat sheet: USBSTOR and USB keys, serial numbers, first and last connection times, drive letters, volume serials, setupapi.dev.log and event IDs.
- Prefetch Files (.pf)Windows Prefetch cheat sheet: .pf location per version, run count, the last eight run times, referenced files, retention limits and how to parse.
- ShellBagsShellBags cheat sheet: BagMRU and Bags keys in UsrClass.dat and NTUSER.DAT, shell items, folder timestamps, deleted and USB folders, and parsing with SBECmd.
- Browser artifacts (Chrome, Edge, Firefox)Browser forensics cheat sheet: Chromium and Firefox profile files, History and places.sqlite tables, WebKit and PRTime timestamps, downloads, cookies, cache.
- 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.
Glossary terms
- Mark of the Web (MOTW)The Zone.Identifier alternate data stream Windows adds to downloaded files, recording the security zone and often the source URL.
- Volume serial numberThe identifier written to a volume when it is formatted; recorded in LNK files and Prefetch, it ties file activity to a specific volume.
- Alternate Data Stream (ADS)An additional named $DATA stream attached to an NTFS file, invisible in Explorer, used for Mark of the Web and sometimes to hide data.
- Windows event IDThe number identifying an event type within a given provider; it only has meaning when paired with its provider and log channel.
- Registry key LastWrite timeThe single FILETIME stored in every registry key that records when the key or one of its values was last changed, in UTC.
Guides
- User Activity Forensics: ShellBags, LNK Files and Jump ListsProve which files and folders a Windows user opened, and when: ShellBags, LNK files, Jump Lists, MRU keys, Office Trust Records and Timeline, correlated.
- USB Device Forensics: Tracing Drives, Users and FilesIdentify every USB drive connected to a Windows host, date its connections, tie it to a user and prove which files were opened from it, step by step.
- Windows Event Log Forensics: EVTX, Event IDs and HuntingA practitioner guide to Windows event logs: EVTX format, key channels, Security and Sysmon event IDs, audit policy, cleared-log recovery and hunting tools.
- Evidence of Execution: Prefetch, Amcache, BAM and MoreProve a program ran on Windows, not just existed: Prefetch, ShimCache, Amcache, BAM, UserAssist, SRUM, PCA, WER and 4688 compared, with parsing commands.
- Phishing Forensics: MotW, ISO, LNK and Initial AccessTrace a phishing attack from email to first execution: Outlook temp files, Zone.Identifier, ISO and LNK MotW bypass, macros, OneNote, LOLBins and a timeline.