courses

Windows Forensic Investigations: Guidelines and Methodology

This page covers the investigative methodology and workflow for Windows forensic investigations, including evidence acquisition, modern Windows artifacts, and anti-forensics awareness. For specific artifact locations (Registry, event logs, link files, Recycle Bin, browser history, etc.), see the companion Windows Forensics page. For NTFS file system internals, see NTFS Analysis.


Order of Volatility

Evidence must be collected in order of decreasing volatility. Data that disappears first must be captured first. This ordering comes from RFC 3227 and is reinforced by NIST SP 800-86:

Priority Source Persistence
1 CPU registers and cache Nanoseconds
2 RAM (processes, network state, decrypted keys) Lost at power-off
3 Network state (routing table, ARP cache, active connections) Lost at power-off
4 Disk (file system, swap, hibernation) Persistent until overwritten
5 Remote logs (SIEM, domain controller, central syslog) Persistent, independent of suspect system
6 Archival media (backups, tapes) Persistent

The practical consequence: if the system is running, capture memory before touching the disk.


Evidence Acquisition

Live Response vs. Dead-Box

Live response collects volatile data from a running system. It is essential when:

The tradeoff is that every action on a live system alters it. Run portable tools from external media, never install anything on the evidence system, and document everything you do.

Dead-box acquisition images the disk from a powered-off system (or via a forensic boot environment). It preserves disk state with no risk of alteration, but all volatile data is lost. Preferred when the system is already off or when full-disk integrity is the priority.

Best practice: capture memory first (live response), then shut down and image the disk (dead-box).

Disk Imaging

Tool Notes
FTK Imager GUI and CLI. Produces E01 (EnCase format) or raw/dd images. Built-in hashing. FTK Imager Lite runs from USB without installation.
FTK Imager Lite Portable version – runs from USB, no installation required. Avoids altering the evidence system.
dd / dc3dd Raw bit-for-bit image. No metadata container. dc3dd adds hashing, progress output, and error logging.
Arsenal Image Mounter Mounts forensic images (E01, raw) as real SCSI devices in Windows, automatically exposing Volume Shadow Copies.

Always write the image to external media. Hash the image immediately (SHA-256) and record the hash in your notes. Verify the hash after any copy or transfer.

For virtual machines, prefer hypervisor-level snapshots (.vmem, .vmsn, .vmdk) over in-guest imaging tools – they are faster, more complete, and do not alter the guest.

Memory Acquisition

Tool Notes
WinPmem Open-source. Kernel driver-based. Long-standing standard for open-source Windows memory acquisition.
DumpIt (MoonSols) Freeware. Simple double-click execution produces a raw memory dump. Field-friendly.
Magnet RAM Capture Free. Minimal system footprint. Raw output.
FTK Imager Can capture physical memory and the pagefile in addition to disk imaging.

Always dump to external media. Memory images are analyzed with Volatility, Rekall, or commercial tools.

KAPE: Triage Collection

KAPE (Kroll Artifact Parser and Extractor), created by Eric Zimmerman, is designed for rapid targeted artifact collection rather than full-disk imaging. It is the standard triage tool when time or bandwidth does not allow a full image.

Architecture:

The community-maintained target and module repository lives at github.com/EricZimmerman/KapeFiles.

KAPE is not a substitute for a full disk image – it collects only what its targets specify. But for initial triage, incident response, or situations where full imaging is impractical, it provides structured, repeatable artifact collection in minutes.


Volatile Data Sources

These exist on disk but contain data that originated in memory and may be partially or fully overwritten at any time.

pagefile.sys

Location: C:\pagefile.sys

The Windows page file contains memory pages that have been swapped out of physical RAM. It is not structured – there is no index or table of contents. Contents include fragments of running processes, credentials, URLs, chat messages, document content, and anything else that was in memory.

Analysis approach: string searches, YARA rule scans, bulk_extractor. You are looking for specific data (IP addresses, passwords, filenames) rather than trying to reconstruct the page file’s structure.

swapfile.sys

Location: C:\swapfile.sys

Introduced in Windows 8. Dedicated to UWP (Microsoft Store) applications. When a UWP app is suspended, its state is paged here. Same analysis approach as pagefile.sys, but content is limited to Store apps.

hiberfil.sys

Location: C:\hiberfil.sys

Contains a compressed snapshot of physical memory captured at hibernation time. This includes running processes, logged-in credentials, encryption keys, open documents, browser sessions, and everything else in RAM at the moment of hibernation.

Important: Windows 8 and later use “Fast Startup” by default, which performs a partial hibernation on every normal shutdown. Even on a system where the user has never deliberately hibernated, hiberfil.sys contains a kernel-session memory image from the last shutdown. This makes hiberfil.sys relevant on virtually all modern Windows systems.

Format: PO_MEMORY_IMAGE header followed by Xpress-compressed data blocks. Tools for analysis include Volatility (with the hibernation layer), Arsenal Hibernation Recon, and vol.py -f hiberfil.sys --profile=<profile> imagecopy to convert to a raw memory image for further analysis.


Volume Shadow Copies (VSS)

Volume Shadow Copies are point-in-time snapshots of NTFS volumes managed by the Volume Shadow Copy Service. Introduced in Windows XP SP1, they became comprehensive block-level snapshots starting with Vista. System Restore points and Windows Backup both create shadow copies.

Forensic Value

Accessing Shadow Copies

On a live system (admin required):

vssadmin list shadows

This lists all shadow copies with creation timestamps and shadow copy IDs.

To mount a specific shadow copy:

mklink /d C:\vss_mount \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\

From a forensic image:

Anti-Forensics Note

Attackers and knowledgeable suspects may delete shadow copies to destroy historical evidence:

vssadmin delete shadows /all /quiet

The execution of vssadmin.exe will appear in Prefetch (vssadmin.exe-*.pf) and potentially in Sysmon or command-line audit logs. The absence of any shadow copies on a system that should have them (System Restore enabled, regular backup schedule) is itself suspicious.


Modern Windows Artifacts

These artifacts supplement the Registry, event logs, and file system artifacts covered in Windows Forensics. Many were introduced in Windows 8 or 10 and are not yet widely known.

SRUM (System Resource Usage Monitor)

Introduced in Windows 8.

SRUM records per-application resource usage:

Data Detail
Application execution Full path to executable, even for programs since deleted
Network usage Bytes sent and received per application
Network context SSID of the connected WiFi network at time of activity
Resource consumption CPU time and memory usage per application

Retention is approximately 30 days for application data and 60 days for network data. Data is written hourly and at shutdown.

Tools: SrumECmd (Eric Zimmerman), srum-dump (Mark Baggett).

Forensic significance: SRUM can prove that a specific application sent a specific number of bytes over the network while connected to a specific WiFi network. This is powerful for data exfiltration investigations – even if the application has been uninstalled and the browser history cleared, SRUM retains the record.

Amcache.hve

Introduced in Windows 8.

Records application execution with rich metadata:

Tools: AmcacheParser (Eric Zimmerman), Registry Explorer.

Forensic significance: the SHA-1 hash is the key value. Even if a malicious executable has been deleted, the Amcache retains its hash, allowing you to identify the malware family or confirm it was present.

ShimCache (AppCompatCache)

Present from Windows XP through current versions.

Records file path, file size, and last modified time for executables that the Application Compatibility shim engine has processed. The cache is held in memory and written to the registry at shutdown.

Critical caveat: a ShimCache entry does not prove execution. It proves the file was present and was scanned by the shim engine, which can happen when a directory listing is displayed or a file is accessed without execution. In Windows 10, an execution flag exists (last 4 bytes = 1), but it is not conclusive.

Tools: AppCompatCacheParser (Eric Zimmerman), ShimCacheParser (Mandiant).

Jump Lists

Introduced in Windows 7.

Jump Lists record recently opened files per application, linked by an application ID. Each entry includes the file path, timestamps, and an access count. They are stored as OLE compound files.

Tools: JumpListExplorer, JLECmd (Eric Zimmerman).

Forensic significance: Jump Lists persist after files are deleted and after Recent Items are cleared. They provide per-user, per-application file access history.

BAM/DAM (Background/Desktop Activity Moderator)

Introduced in Windows 10 version 1709.

Records the full path of executed binaries with a last execution timestamp, attributed to a specific user by SID.

Limitation: entries clear on reboot or after approximately 7 days.

Windows Timeline (ActivitiesCache.db)

Introduced in Windows 10 version 1803.

Records application usage, files opened, websites browsed, and duration of activity. If the user has a Microsoft account, this data syncs across devices.

Tools: WxTCmd (Eric Zimmerman).

PowerShell Logging

PowerShell supports three logging mechanisms, controlled by Group Policy or registry settings:

Type Event ID Registry Key What It Captures
Script Block Logging 4104 HKLM\...\PowerShell\ScriptBlockLogging EnableScriptBlockLogging = 1 All executed PowerShell code, including de-obfuscated output
Module Logging 4103 HKLM\...\PowerShell\ModuleLogging Pipeline execution details
Transcription N/A (text files) HKLM\...\PowerShell\Transcription EnableTranscripting = 1 Full session text written to disk at the path specified in OutputDirectory

Event ID 4104 (Script Block Logging) is the most forensically valuable because it captures the actual code after all layers of obfuscation have been resolved. Logs are written to Microsoft-Windows-PowerShell/Operational.

Registry path prefix for all three: HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\

WMI Repository Persistence

Attackers create WMI Event Subscriptions (an EventFilter + EventConsumer + FilterToConsumerBinding) for fileless persistence that survives reboots. The malicious payload lives entirely within the WMI repository – no files on disk.

Detection: Event ID 5861 in the Microsoft-Windows-WMI-Activity/Operational log records permanent event consumer registration.

Tools: PyWMIPersistenceFinder (Mandiant), flare-wmi (Mandiant).

Windows Search Index

Contains indexed file metadata, partial file content, email subjects and bodies, and file paths – including paths to files that have since been deleted. If the search indexer indexed a file before it was deleted, the index entry persists.

Tools: WinSearchDBAnalyzer, SIDR, ESEDatabaseView.

BITS Queue Database

BITS (Background Intelligent Transfer Service) manages background downloads and uploads. Legitimate uses include Windows Update and application patching. Attackers use BITS jobs for persistent, resumable file downloads and C2 communication – BITS jobs survive reboots and resume automatically.

Tools: BitsParser (Mandiant/FireEye), bits_parser (ANSSI-FR).

Scheduled Tasks

Windows Notification Database

Contains push notifications in XML format, including application names, notification content, and timestamps. May contain previews of chat messages, email subjects, calendar reminders, and other notification content from applications that the user may not have otherwise saved.


Anti-Forensics Detection

Timestomping

Timestomping modifies the $STANDARD_INFORMATION (SI) timestamps in NTFS MFT entries to disguise when a file was actually created or modified. Common tools include Timestomp, PowerShell Set-ItemProperty, and NirSoft BulkFileChanger.

Detection methods:

  1. SI vs. FN timestamp comparison: the $FILE_NAME (FN) attribute timestamps are set by the kernel and are not modified by standard timestomping tools. If the SI timestamps are older than the FN timestamps (file appears to have been created before it existed), timestomping has occurred.
  2. USN Journal ($UsnJrnl:$J): the USN Journal records file creation, modification, rename, and deletion events with independent timestamps. These entries contradict falsified SI timestamps.
  3. Automated detection: MFTECmd (Eric Zimmerman) automatically flags entries where SI timestamps precede FN timestamps.

Limitation: advanced tools exist that can also modify FN timestamps, and some legitimate installers set SI timestamps during installation. Context matters.

Log Clearing

The presence of Event ID 1102 with no preceding security events is a strong indicator of deliberate evidence destruction.

Mitigation: forward event logs to a centralized SIEM or syslog server so that remote copies survive local clearing.

Secure Deletion Tools

Tool Forensic Trace
SDelete (Sysinternals) Renames files to sequential patterns (AAAAAA.AAA, etc.) before overwriting and deleting. Rename operations appear in the USN Journal ($UsnJrnl:$J).
Cipher.exe Three-pass wipe (0x00, 0xFF, random). Leaves Prefetch entries (cipher.exe-*.pf).
Eraser, BleachBit, BCWipe Leave Prefetch entries, Amcache/ShimCache records, and potentially SRUM network activity entries for download.

Detection approach: check the USN Journal for rapid rename-overwrite-delete sequences. Check Prefetch for secure deletion tool executables. Check Amcache for SHA-1 hashes of deletion tools.

BitLocker

BitLocker provides full-volume encryption. If the system is live and the volume is unlocked, the data is accessible – image the live system or capture the encryption keys from memory.

If the system is powered off and the volume is locked, the data is unrecoverable without the recovery key. Recovery keys may be stored in:

This makes live acquisition critical for encrypted systems. If you encounter a running system with BitLocker, capture memory and image the disk before powering off.


Investigation Workflow

Initial Response

  1. Document the scene: photograph the system, note what is on screen, record the system clock time and its offset from actual time
  2. Decide: live response or power off? If the system is encrypted, running malware, or has active network connections of interest – live response first
  3. If live: capture memory (WinPmem/DumpIt to external USB), then capture volatile network state:
    ipconfig /all
    netstat -anob
    arp -a
    tasklist /v
    net session
    net use
    
  4. Image the disk: power off (pull the plug for desktops to avoid shutdown scripts; hold power for laptops), then image via write-blocked connection or forensic boot environment
  5. Hash everything: SHA-256 the memory dump and disk image immediately

Triage Phase

If time or circumstances do not allow full imaging, use KAPE to collect:

Common Scenarios

Malware incident: Memory analysis (Volatility: process list, DLL injection, network connections) -> Prefetch and Amcache for execution evidence -> SRUM for network activity -> Event Logs (PowerShell Event ID 4104, Sysmon if present) -> Scheduled Tasks and WMI repository for persistence -> BITS queue for download staging -> Timeline reconstruction via $MFT and USN Journal.

Insider threat: USB device history (HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR and setupapi.dev.log) -> Jump Lists and Recent Items for file access -> SRUM for network exfiltration volume -> Browser history and downloads -> BAM/DAM for execution attribution -> Windows Timeline for activity duration -> Email and notification databases for intent.

Data exfiltration: SRUM (bytes sent per application, connected SSID) -> Event Logs for RDP/VPN sessions (Event ID 4624/4625 for logon, Event ID 1149 for RDP) -> USB history -> Cloud storage client artifacts (OneDrive, Dropbox sync logs) -> Browser downloads -> BITS queue for staged transfers.

Timeline Construction

Integrate all artifact timestamps into a unified chronological timeline. Tools:

Normalize all timestamps to UTC before integrating. Verify the system clock offset against known time sources (NTP logs, domain controller logs) to correct for clock skew.


Key Event IDs

Event ID Log Meaning
1102 Security Audit log was cleared
104 System System log was cleared
4624 Security Successful logon
4625 Security Failed logon
4648 Security Logon using explicit credentials (pass-the-hash, runas)
4672 Security Special privileges assigned to new logon (admin logon)
4688 Security New process created (requires audit process creation policy)
4697 Security Service installed
1149 TerminalServices-RemoteConnectionManager RDP authentication succeeded
7045 System New service installed
4104 PowerShell/Operational Script block logged (de-obfuscated code)
106 TaskScheduler/Operational Scheduled task registered
140 TaskScheduler/Operational Scheduled task updated
5861 WMI-Activity/Operational Permanent WMI event consumer registered

Tool Summary

Tool Purpose Source
FTK Imager / Lite Disk imaging, memory capture Exterro (free)
WinPmem Memory acquisition Open source
DumpIt Memory acquisition MoonSols (free)
KAPE Triage artifact collection Kroll (free)
Volatility 3 Memory analysis Open source
Arsenal Image Mounter Mount forensic images with VSC access Arsenal Recon (free community edition)
Eric Zimmerman tools Parse Amcache, ShimCache, SRUM, Jump Lists, MFT, USN Journal, Registry, Prefetch, Timeline Open source (ericzimmerman.github.io)
plaso / log2timeline Unified timeline generation Open source
Autopsy GUI forensic suite (The Sleuth Kit frontend) Open source
RegRipper Automated registry analysis Open source

Further Reading