Windows Forensics Artifacts
Windows leaves a rich trail of forensic evidence across the registry, file system, and event logs — knowing where to look and what each artifact proves is core GCFA knowledge.
Five Artifact Categories
| Artifact | Proves Execution? | Timestamps | SHA-1 Hash? | Notes |
|---|---|---|---|---|
| Prefetch | ✅ Yes | Last 8 run times | ❌ No | Not on Server OS by default |
| Amcache.hve | ✅ Yes | First execution / install | ✅ Yes | Best for IOC matching via hash |
| UserAssist | ✅ GUI only | Last run time | ❌ No | ROT13 encoded; GUI programs only |
| BAM/DAM | ✅ Yes | Last execution timestamp | ❌ No | Win10+ only; resets on restart |
| ShimCache (Win7) | ✅ Yes | Last modified time | ❌ No | Win7 has execution flag |
| ShimCache (Win8+) | ⚠️ Presence only | Last modified time | ❌ No | No execution flag; file was present |
Registry Forensics
The Windows Registry is a hierarchical database containing system configuration, user activity, and evidence of attacker persistence.
System Hive Files — C:\Windows\System32\config\
User Hive Files
Key Registry Locations for Forensics
| Registry Key | Evidence Provided |
|---|---|
HKLM\SYSTEM\...\Enum\USBSTOR | Device VID, PID, serial number, friendly name |
HKLM\SYSTEM\...\Enum\USB | USB vendor/product IDs for all USB devices |
HKLM\SOFTWARE\...\Windows Portable Devices\Devices | Drive letter assigned to the device |
HKLM\SOFTWARE\...\MountedDevices | Volume GUIDs for mounted volumes |
HKCU\SOFTWARE\...\Explorer\MountPoints2 | Drive letters seen by this user account |
| Windows Event Log (System) Event IDs 20001–20003 | Device driver installation timestamps |
Execution Artifacts
Windows records program execution across multiple artifact types — each provides different levels of proof and detail. Knowing what each artifact does and does not prove is essential.
| Field | Details | Forensic Value |
|---|---|---|
| Executable name | Name of the .exe (up to 29 chars) | Identifies what ran |
| Run count | Total number of executions recorded | Frequency of use |
| Last 8 run times | FILETIME timestamps of last 8 executions | Timeline reconstruction |
| Volume information | Volume serial number, creation time, path | Identify source drive |
| File references | All files/dirs accessed in first 10 seconds | Loaded DLLs, staged files, data access |
| Path hash | Hash of the exe's directory path (8 hex chars in filename) | Same exe name, different location = different hash |
File Access & NTFS Artifacts
File access artifacts record what files and folders a user interacted with. NTFS internals like $MFT and $USNJrnl provide a complete audit trail of file system changes.
File Access Artifacts
- Created when user opens a file by double-clicking
- Persists even after source file is deleted
- Contains: original full path, file size, MAC timestamps of source, volume serial number, NetBIOS name of host
- Reveals access to files on USB drives, network shares, deleted volumes
- Zone.Identifier ADS indicates web download origin
...\Recent\CustomDestinations\*.customDestinations-ms
- AutomaticDestinations: OS-generated; records recently used files per application
- CustomDestinations: app-generated; pinned items, frequent locations
- AppID in filename identifies the application
- Each entry is essentially an LNK record — same rich metadata
- Persists records of files even after deletion
NTUSER.DAT: HKCU\SOFTWARE\...\Explorer\Shell Folders
- Records folder view preferences (size, position, sort order, icon view)
- Created when any folder is opened in Explorer — including network shares, USB drives, ZIP files
- Persist after folder/drive deletion or unmounting
- Prove user accessed a folder that no longer exists
- Timestamp = when folder was first accessed, last written
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
- RecentDocs: files opened recently, organized by extension
- RunMRU: commands typed into Win+R Run dialog
- OpenSavePidlMRU: files selected in open/save dialogs
- Entries stored as binary data with MRUListEx ordering
- WordWheelQuery: searches typed into Explorer search bar
NTFS Internal Structures
Event Log & Browser Artifacts
Practice Quiz
Ten GCFA-style questions on Windows forensic artifacts. Select your answers and submit to see your score.
Review the explanations above for any questions you missed.
Memory Hooks
Mnemonics and high-yield patterns for fast recall on exam day.
Prefetch (execution + 8 timestamps), Amcache (execution + SHA-1 hash), UserAssist (GUI only + ROT13), BAM/DAM (Win10+, resets on boot), ShimCache (presence only on Win8+).
| Artifact | Unique Capability | Key Location | Tool |
|---|---|---|---|
| Amcache.hve | Only execution artifact with SHA-1 hash | C:\Windows\appcompat\Programs\ | AmcacheParser |
| Prefetch | Last 8 run times + files accessed in first 10s | C:\Windows\Prefetch\ | PECmd |
| Shellbags | Proves folder access after deletion/unmount | UsrClass.dat | SBECmd |
| $USNJrnl | Proves file existed even after deletion | \$Extend\$UsnJrnl ($J) | MFTECmd -f $J |
| LNK files | Source path + timestamps survive file deletion | ...\Recent\*.lnk | LECmd |
| USBSTOR | USB device history (serial, VID/PID, timestamps) | HKLM\SYSTEM\...\Enum\USBSTOR | Registry Explorer |
| UserAssist | GUI-only execution, ROT13 encoded, run count | NTUSER.DAT (HKCU) | Registry Explorer |
| BAM/DAM | Per-user execution timestamps (Win10+ only) | HKLM\SYSTEM\...\bam\State\... | Registry Explorer |
| Event 4648 | Explicit credential use (pass-the-hash signal) | Security.evtx | Event Viewer / EQL |
| Event 7045 | New service = persistence detection | System.evtx | Event Viewer / Splunk |
Ready for More Practice?
Test yourself with full-length GCFA practice exams on FlashGenius.
Unlock Full Practice Tests on FlashGenius →Flashcards
Click any card to flip it and reveal the answer.
What are the five system hive files and their primary forensic content?
SYSTEM (ShimCache, USB, timezone, network), SOFTWARE (Run keys, installed apps, last user), SAM (local accounts, NTLM hashes), SECURITY (audit policy, cached creds), NTUSER.DAT (UserAssist, MRU, Run keys per user)
Which artifact proves execution AND provides a SHA-1 hash, and where is it located?
Amcache.hve — C:\Windows\appcompat\Programs\Amcache.hve. Contains SHA-1 hash, publisher, product name, first execution time. Best artifact for IOC matching. Parse with AmcacheParser.exe.
What do M-A-C-E stand for in NTFS timestamps, and what's the timestomping detection rule?
Modified (data changed), Accessed (data read), Changed (MFT entry changed), Entry Created (file born). Detection rule: if $STANDARD_INFORMATION timestamps < $FILE_NAME timestamps → timestomping. FN timestamps are kernel-set and harder to manipulate.
Where are Shellbags stored and why are they forensically unique?
Primary location: UsrClass.dat (C:\Users\...\AppData\Local\Microsoft\Windows\UsrClass.dat). Unique value: persist after folders, USB drives, or network shares are deleted/unmounted. Prove user accessed a location that no longer exists. Parse with SBECmd or ShellBagsExplorer.
What information is stored inside a Prefetch file and what does the filename hash represent?
Inside: exe name, run count, last 8 execution times, volume info, files/dirs accessed in first 10 seconds of launch. Filename format: [EXE]-[HASH].pf where the 8-char hash is computed from the executable's DIRECTORY PATH (not file content). Same exe in different folders = different hash.
How does ShimCache behavior differ between Windows 7 and Windows 8+?
Windows 7: includes execution flag — confirms the program was executed. Windows 8+: execution flag removed — only proves the file was PRESENT on the system (OS processed it for compatibility). Written to registry on shutdown, so in-memory data lost on crash. Parse with AppCompatCacheParser.
What is the difference between $MFT, $USNJrnl, and $LogFile?
$MFT: directory of all files/dirs with MACE timestamps; deleted entries marked unallocated. $USNJrnl ($J): change journal logging ALL operations including deletions — files may be evidenced here after deletion. $LogFile: NTFS transaction log for crash recovery; overwrites fastest, least forensic value.
What do Event IDs 4624, 4648, 7045, and 1102 each indicate?
4624: Successful logon (check Logon Type: 2=interactive, 3=network, 10=RDP). 4648: Logon with explicit credentials — pass-the-hash / lateral movement indicator. 7045 (System log): New service installed — attacker persistence. 1102: Security audit log cleared — attacker anti-forensics.
Study Advisor
Choose a category for targeted guidance.
Exam Strategy — Windows Artifacts
- Execution vs. presence: Know which artifacts prove execution (Prefetch, Amcache, UserAssist, BAM) vs. presence only (ShimCache Win8+). This distinction appears on nearly every GCFA Windows artifact question.
- Artifact layering: No single artifact tells the whole story. The GCFA expects you to combine evidence — use Prefetch to confirm execution, $USNJrnl to confirm a file existed, and Shellbags to confirm a folder was accessed.
- Know the tools: Questions often ask which EZ-Tool to use. PECmd=Prefetch, AmcacheParser=Amcache, AppCompatCacheParser=ShimCache, SBECmd=Shellbags, LECmd=LNK, JLECmd=Jump Lists, MFTECmd=$MFT and $USNJrnl.
- Registry hive location questions: Know SYSTEM hive (ShimCache, USB, timezone), NTUSER.DAT (UserAssist, MRU, user Run keys), UsrClass.dat (Shellbags) — these are tested directly.
- Anti-forensics detection: Timestomping (SI < FN timestamps), log clearing (1102/104), $I30 slack (deleted file evidence in directory index) are favorite GCFA test topics.
Common Mistakes — Windows Artifacts
- ShimCache proves execution (wrong on Win8+): Many candidates assume ShimCache confirms execution on all Windows versions. On Win8+, no execution flag exists — presence only. Win7 is the exception.
- Confusing Amcache location: Amcache.hve is NOT in the registry hive folder — it's at C:\Windows\appcompat\Programs\Amcache.hve. It's a separate registry hive file, not an NTUSER.DAT key.
- Forgetting UserAssist is GUI-only: UserAssist misses cmd.exe launched tools, scripts, and remote execution. Don't rely on it for attacker activity that bypasses the GUI shell.
- Ignoring Shellbags in USB investigations: When asked to prove a user accessed a USB drive that's no longer available, Shellbags (UsrClass.dat) are the key artifact — not Prefetch or event logs.
- Misreading Prefetch hash in filename: The 8-char hash is derived from the DIRECTORY PATH of the executable, not the file content. Two copies of the same exe in different folders = two different Prefetch files with different hashes.
- Confusing 1102 (Security log) with 104 (System log): Attackers typically clear both. 1102 = Security audit log cleared. 104 = System log cleared. Both appear in the respective logs.
Quick Review — Windows Artifacts
- Proves execution + hash: Amcache.hve (SHA-1) — C:\Windows\appcompat\Programs\
- Proves execution + 8 timestamps: Prefetch — C:\Windows\Prefetch\[EXE]-[HASH].pf
- GUI execution, ROT13 encoded: UserAssist — NTUSER.DAT (HKCU)
- Win10+ execution, resets on boot: BAM/DAM — HKLM\SYSTEM\...\bam\State\...
- Win8+ = presence only: ShimCache — HKLM\SYSTEM\...\AppCompatCache
- Folder access survives deletion: Shellbags — UsrClass.dat
- File access survives file deletion: LNK files — ...\Recent\*.lnk (LECmd)
- All file system changes including deletions: $USNJrnl $J — MFTECmd
- Timestomping detection: SI timestamps < FN timestamps
- USB device history: HKLM\SYSTEM\...\Enum\USBSTOR
- New service installed: Event 7045 (System log)
- Security log cleared: Event 1102; System log cleared: Event 104
Deep Dive — Advanced Concepts
- $MFT entry anatomy: Every file has an MFT entry containing $STANDARD_INFORMATION (timestamps, file attributes — user modifiable) and $FILE_NAME (timestamps, parent directory — kernel set). Carved MFT entries from unallocated space can recover metadata for deleted files.
- ShimCache write timing: ShimCache is maintained in memory and only written to the SYSTEM registry hive on clean shutdown. If a system crashes or is hard-powered off, recent entries may not be persisted — important for live response vs. dead disk analysis.
- Alternate Data Streams (ADS): NTFS supports multiple data streams per file. Malware uses ADS to hide payloads (e.g., legitimate.exe:hidden.exe). Zone.Identifier ADS records download source (Mark of the Web) — critical for phishing investigations. List ADS with: dir /r or Get-Item -Stream *.
- Volume Shadow Copies (VSS): VSS snapshots contain historical versions of registry hives, Prefetch, and even $MFT — allowing timeline reconstruction to before malware ran. Access via: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\.
- Browser SQLite forensics: Chrome/Edge history, downloads, and cookies are SQLite databases. Deleted records leave behind free pages in the SQLite file — carving these pages can recover deleted browsing history entries. Use DB Browser for SQLite or SQLECmd.
- $I30 slack space: Directory index ($I30) uses B-Tree nodes. When files are deleted from a directory, their entries in $I30 may remain in slack space — proving files existed in that directory even after deletion from $MFT. Useful for proving malware staging in directories.
Practice Tips — Windows Artifacts
- Build an artifact cheat sheet: Create a table with columns: Artifact | Proves Execution? | Hash? | Location | Tool | Notes. Filling this from memory is excellent exam prep.
- Practice with EZ-Tools: Download Eric Zimmermann's tools from ericzimmerman.github.io and run them against a test VM. Seeing real output internalizes the artifact structure far better than reading alone.
- Scenario practice: For every scenario, ask: "What artifact do I need? Where is it? What tool do I use? What does a hit prove?" Practice this chain for each artifact type.
- SANS FOR508 labs: If you have access to SANS OnDemand, the FOR508 lab exercises are identical to what GCFA tests. Prioritize Registry, Prefetch, and Amcache labs.
- Event ID flash drilling: Write the 10 most important Event IDs on cards (4624, 4625, 4648, 4688, 4698, 4720, 4732, 7045, 1102, 104) and drill them until instantaneous recall.
- Focus on anti-forensics detection: Timestomping, log clearing, Prefetch disabling, ADS hiding — GCFA heavily tests your ability to recognize when an attacker has tried to cover tracks and which artifacts still survive.