Windows Forensic Artifacts β Investigation Workflow & Cheatsheet
π― Master Investigation Workflow
Phase 1: Evidence Identification & Scoping
1. Define Investigation Parameters
ββ Incident type (malware, data theft, insider threat, etc.)
ββ Timeline of interest
ββ Systems and users involved
ββ Initial indicators of compromise (IOCs)
2. Determine Artifact Priority
ββ Volatile artifacts (Prefetch, memory)
ββ Execution evidence
ββ User activity evidence
ββ Persistence mechanisms
ββ File system artifactsPhase 2: Systematic Artifact Collection
Collection Order (by Volatility & Importance)
Priority 1: VOLATILE DATA
ββ Prefetch files (overwritten at 1024 limit)
ββ Live registry (if live response)
Priority 2: EXECUTION EVIDENCE
ββ Amcache.hve
ββ ShimCache (SYSTEM hive)
ββ UserAssist (NTUSER.DAT)
ββ Jump Lists
ββ LNK Files
Priority 3: USER ACTIVITY
ββ ShellBags (USRCLASS.DAT, NTUSER.DAT)
ββ Recent Documents (RecentDocs registry)
ββ Last Visited MRU
ββ Recycle Bin
Priority 4: FILE SYSTEM ARTIFACTS
ββ $MFT
ββ $J (USN Journal)
ββ $LogFile
ββ Alternate Data Streams
Priority 5: PERSISTENCE
ββ AutoStart Extension Points (ASEPs)Phase 3: Artifact Analysis Framework
π 1. EXECUTION EVIDENCE ARTIFACTS
πΉ Prefetch Analysis
Purpose: Prove program execution, identify execution patterns
INVESTIGATION STEPS:
1. Extract Prefetch directory
ββ C:\Windows\Prefetch
2. Check if Prefetch is enabled
ββ HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
ββ Value 0=Disabled, 3=Enabled
3. Parse all .pf files
ββ Tool: PECmd.exe
ββ Output: CSV for timeline analysis
4. Analyze for:
ββ First execution time (creation - 10 seconds)
ββ Last execution time (modification - 10 seconds)
ββ Last 8 execution times (Win10/11)
ββ Total run count
ββ Files and directories referenced
ββ Volume information
5. Look for RED FLAGS:
ββ Multiple prefetch files for same executable name
ββ Execution from unusual locations
ββ Known malicious tool names
ββ Execution from removable media pathsCommands:
Single file analysis
.\PECmd.exe -f C:\Windows\Prefetch\CMD.EXE-8E75B5BB.pf
# Directory analysis with CSV output
.\PECmd.exe -d C:\Windows\Prefetch\ -q --csv G:\Output --csvf prefetch.csv
# Include VSS and highlight keywords
.\PECmd.exe -d C:\Windows\Prefetch\ -q --csv G:\Output --csvf prefetch.csv --vss --mp -k "system32, downloads, fonts"Key Metadata:
Executable name
8-character hash of executable path
Creation/modification/access timestamps
Run count (number of executions)
Last 8 run times
Files and directories referenced
Volume information
πΉ Amcache Analysis
Purpose: Identify program presence, validate with SHA1 hashes
INVESTIGATION STEPS:
1. Extract Amcache.hve
ββ C:\Windows\AppCompat\Programs\Amcache.hve
ββ Include .LOG1 and .LOG2 files
2. Parse with AmcacheParser
ββ Output to CSV
ββ Use -i flag for includes
3. Extract key information:
ββ Full file paths
ββ File sizes
ββ File modification times
ββ Compilation times
ββ Publisher metadata
ββ SHA1 hashes (KEY VALUE!)
4. Cross-reference SHA1 hashes:
ββ Known good (Microsoft files)
ββ Known bad (malware databases)
ββ Unknown (requires further investigation)
5. Correlate with other execution artifacts
ββ Amcache presence + Prefetch = High confidence executionCommands:
# Live system analysis
.\AmcacheParser.exe -f "C:\Windows\appcompat\Programs\Amcache.hve" -i --csv C:\Output
# Forensic image analysis
.\AmcacheParser.exe -f "C:\User\username\Desktop\amcache\Amcache.hve" -i --csv C:\Output
# With blacklist filtering
.\AmcacheParser.exe -f c:\Windows\AppCompat\Programs\Amcache.hve -b G:\Blacklist.txt --csv G:\Output
```
**β οΈ Important Note:** Amcache indicates PRESENCE, not proven EXECUTIONπΉ ShimCache (AppCompatCache) Analysis
Purpose: Historical program presence on system
INVESTIGATION STEPS:
1. Extract SYSTEM registry hive
ββ C:\Windows\System32\config\SYSTEM
2. Determine current ControlSet
ββ SYSTEM\Select\Current
3. Parse AppCompatCache
ββ HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
4. Extract information:
ββ Full executable paths
ββ Last modification times
ββ File sizes
ββ Execution flag (Win7/8 only)
5. Analyze patterns:
ββ Up to 1,024 entries
ββ Most recent on top
ββ Written only on shutdown
ββ Deleted files may still appear
6. Investigation use cases:
ββ Identify deleted malware
ββ Track tool presence
ββ Build historical timelineCommands:
# Parse SYSTEM hive
.\AppCompatCacheParser.exe -f C:\Windows\System32\config\SYSTEM --csv G:\Output
# Live system
.\AppCompatCacheParser.exe --csv C:\Output --csvf shimcache.csv
```
**β οΈ Critical Note:** Win10+ ShimCache does NOT prove execution, only presence!πΉ UserAssist Analysis
Purpose: Track GUI-based program launches
INVESTIGATION STEPS:
1. Extract NTUSER.DAT hive
ββ C:\Users\[Username]\NTUSER.DAT
2. Navigate to UserAssist keys
ββ Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
3. Identify GUID subkeys:
ββ CEBFF5CD = Executable File Execution
ββ F4E57C4B = Shortcut File Execution
4. Decode ROT-13 values
ββ Use Registry Explorer (auto-decodes)
ββ Or manually decode with CyberChef
5. Extract metadata:
ββ Application path
ββ Last run time
ββ Run count
ββ Focus time (time application had focus)
ββ Focus count
6. Analyze for:
ββ Unusual application launches
ββ Portable applications
ββ Tools run from removable mediaCommands:
# Use Registry Explorer (Zimmerman Tools)
RegistryExplorer.exe
# File > Live System > NTUSER.DAT
# Navigate: ROOT > Software > Microsoft > Windows > CurrentVersion > Explorer > UserAssist
# Alternative: RegRipper
rr.exe -r NTUSER.DAT -p userassistKey Value: Tracks GUI program execution with timestamps and frequency
π 2. USER ACTIVITY ARTIFACTS
πΉ Jump Lists Analysis
Purpose: Identify applications used and files accessed
INVESTIGATION STEPS:
1. Locate Jump List files
ββ AutomaticDestinations: C:\%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
ββ CustomDestinations: C:\%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
2. Identify application by AppID
ββ Reference: https://dfir.to/EZJumpList
3. Parse Jump List files
ββ AutomaticDestinations = OLE format
ββ CustomDestinations = MS-SHLLINK format
4. Extract metadata:
ββ Files opened by application
ββ File paths and locations
ββ Access timestamps
ββ Creation time = First item added
ββ Modification time = Last item added
5. Analyze for:
ββ Recent document access
ββ Network share connections
ββ Removable media usage
ββ Suspicious file locationsCommands:
# Single file analysis
JLECmd.exe -f C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\<file>.automaticDestinations-ms --csv G:\Output -q
# All automatic destinations
JLECmd.exe -d C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations --csv G:\Output -q
# All custom destinations
JLECmd.exe -d C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations --csv G:\Output -qπΉ LNK (Shortcut) Files Analysis
Purpose: Track file and folder access by users
INVESTIGATION STEPS:
1. Locate LNK files
ββ Recent: %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\
ββ Office Recent: %USERPROFILE%\AppData\Roaming\Microsoft\Office\Recent\
2. Parse LNK files
ββ Tool: LECmd.exe
3. Extract metadata:
ββ Target file path and size
ββ Target file timestamps (MAC times)
ββ LNK creation time = First opened
ββ LNK modification time = Last opened
ββ Volume information (name, type, serial)
ββ Network share information
ββ System name
ββ Sometimes MAC address
4. Analyze for:
ββ Files opened from USB devices
ββ Network share access
ββ Files that no longer exist
ββ Recently accessed documents
5. Note behaviors:
ββ LNK persists even if target deleted
ββ Win10+ includes file extensions
ββ Only latest open recorded per filenameCommands:
# Single file
LECmd.exe -f C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\file.lnk
# Directory analysis
LECmd.exe -d C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent --csv G:\Output --html G:\Output -q
# All subdirectories
LECmd.exe -d C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent --all --csv G:\Output
# View with command line
dir filename.xxx.lnk
dir /tc filename.xxx.lnk # Show creation timeπΉ ShellBags Analysis
Purpose: Track folder access and view settings
INVESTIGATION STEPS:
1. Locate ShellBags registry keys
Primary:
ββ USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\Bags
ββ USRCLASS.DAT\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
Residual:
ββ NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU
ββ NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags
2. Parse ShellBags
ββ Tools: SBECmd.exe, ShellBagsExplorer.exe
3. Extract information:
ββ Folders accessed by user
ββ Folder view settings
ββ First interaction time
ββ Last interaction time
ββ Folder timestamps (archived)
ββ Exotic items (mobile devices, control panel, ZIP archives)
4. Investigate for:
ββ Local folder navigation
ββ Removable device access
ββ Network share browsing
ββ Deleted folder evidence
ββ Hidden directory accessCommands:
# ShellBags Explorer (GUI)
ShellBagsExplorer.exe
# SBECmd (Command line)
SBECmd.exe -d C:\Users\<user> --csv G:\Output
# Live system
SBECmd.exe -l --csv G:\OutputForensic Value: Proves user navigated to specific folders, even if deleted
πΉ Recycle Bin Analysis
Purpose: Identify deleted files and deletion timeline
INVESTIGATION STEPS:
1. Navigate to Recycle Bin
ββ C:\$Recycle.Bin
2. Identify user SID folders
ββ Each user has separate SID subfolder
ββ Map SID to username via Registry
3. Understand file naming:
ββ $I###### = Metadata (original name, deletion time)
ββ $R###### = Actual deleted file contents
4. Extract information:
ββ Original filename
ββ Original path
ββ File size
ββ Deletion date/time
ββ File contents (from $R file)
5. Manual examination:
ββ Use command line to view hidden files
6. Parse with tools for bulk analysisCommands:
# Manual browsing
dir /a
cd $Recycle.Bin
dir /a
cd [SID-of-interest]
dir
type $I******.png # View metadata
copy $R******.png C:\Users\username\Desktop\recovered.png
# Parse with RBCmd
RBCmd.exe -f C:\$Recycle.Bin\[SID]\$I[file].png
# Parse entire Recycle Bin
RBCmd.exe -d C:\$Recycle.Bin\ -q --csv C:\Output --csvf recycle-bin.csvπΉ Last Visited MRU Analysis
Purpose: Track applications and last file locations accessed
INVESTIGATION STEPS:
1. Locate MRU registry keys
ββ LastVisitedPidlMRU: NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
ββ RecentDocs: NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
ββ OpenSavePidlMRU: NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
ββ RunMRU: NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
2. Parse registry hives
ββ Use Registry Explorer or Regedit
3. Extract information:
ββ Applications executed
ββ Last directory accessed by application
ββ Files opened via Open/Save dialogs
ββ Commands run via Windows Run utility
4. Analyze for:
ββ Unusual directory access
ββ Hidden folder interactions
ββ Application usage patternsCommands:
# Use Registry Explorer
RegistryExplorer.exe
# Navigate to keys listed above
# Or use regedit on live system
regedit.exe
# Navigate: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32π 3. FILE SYSTEM ARTIFACTS
πΉ Master File Table ($MFT) Analysis
Purpose: Comprehensive file system timeline and metadata
INVESTIGATION STEPS:
1. Extract $MFT
ββ Located at root of NTFS volume
ββ Use FTK Imager or similar
2. Parse $MFT
ββ Tool: MFTECmd.exe
3. Extract metadata for each file:
ββ File name and path
ββ File type and size
ββ Created timestamp (Birth)
ββ Modified timestamp
ββ Accessed timestamp
ββ MFT Record Modified timestamp
ββ File attributes
ββ Parent directory references
4. Use for:
ββ Complete file system timeline
ββ Deleted file recovery
ββ File existence verification
ββ Timestamp analysisCommands:
# Parse MFT with CSV output
MFTECmd.exe -f "C:\Temp\$MFT" --csv "C:\Output" --csvf mft.csv
# Parse with JSON output
MFTECmd.exe -f "C:\Temp\$MFT" --json "C:\Output"
# Body file format (for timeline)
MFTECmd.exe -f "C:\Temp\$MFT" --body "C:\Output" --bdl cπΉ USN Journal ($J) Analysis
Purpose: Track file system changes and operations
INVESTIGATION STEPS:
1. Extract $J data stream
ββ NTFS\$Extend\$UsnJrnl\$J
2. Parse USN Journal
ββ Tool: MFTECmd.exe or USN Journal Parser
3. Extract change records:
ββ Date/time of change
ββ Reason for change (create, delete, rename, modify)
ββ MFT entry number
ββ MFT parent entry
ββ File name
ββ Sequence of operations
4. Investigate for:
ββ File creation events
ββ File deletion events
ββ File rename operations
ββ Anti-forensic activity
ββ Attacker movement patternsCommands:
# Parse USN Journal
MFTECmd.exe -f "C:\Temp\$J" --csv "C:\Output" --csvf usnjrnl.csv
# Decode specific entries
MFTECmd.exe -f "C:\Temp\$J" --de 5-5Key Value: Shows file operations even after files are deleted
πΉ $LogFile Analysis
Purpose: NTFS transaction log for all metadata operations
INVESTIGATION STEPS:
1. Extract $LogFile
ββ Located at NTFS root, MFT entry #2
2. Parse $LogFile
ββ Tools: NTFS_Log_Tracker.exe, LogFileParser.exe
3. Extract transaction records:
ββ File creation
ββ File deletion
ββ File renaming
ββ File copying
ββ Metadata modifications
4. Use for:
ββ Recent file activity (short retention)
ββ Redo/undo operations analysis
ββ Correlation with other artifactsCommands:
# Parse with NTFS Log Tracker
NTFS_Log_Tracker.exe -f C:\Temp\$LogFile -o C:\Output
# Parse with LogFileParser
LogFileParser.exe -f C:\Temp\$LogFile -o C:\OutputπΉ Alternate Data Streams (ADS) Analysis
Purpose: Detect hidden data within files
INVESTIGATION STEPS:
1. Scan for ADS
ββ NTFS attribute, no specific path
2. Use detection tools:
ββ streams.exe (Sysinternals)
ββ AlternateStreamView.exe
ββ PowerShell Get-Item
ββ cmd.exe dir /R
3. Investigate suspicious streams:
ββ Zone.Identifier (normal - tracks download source)
ββ Custom streams (potential hiding)
ββ Executable streams (malware)
4. Extract and analyze contents:
ββ Use notepad, PowerShell, or hex editor
5. Look for:
ββ Hidden executables
ββ Hacking toolkits
ββ Concealed documents
ββ Malicious scriptsCommands:
# Sysinternals Streams
streams.exe -s C:\path\to\directory
# PowerShell
Get-Item C:\path\to\file -Stream *
Get-Content C:\path\to\file -Stream [stream-name]
# Command Prompt
dir /R C:\path\to\directory
# AlternateStreamView (GUI)
AlternateStreamView.exeπ 4. PERSISTENCE MECHANISMS
πΉ AutoStart Extension Points (ASEP) Analysis
Purpose: Identify malware persistence locations
INVESTIGATION STEPS:
1. Understand persistence
ββ Malware ability to survive reboots
2. Check primary AutoStart locations:
Registry Keys:
ββ HKCU\Software\Microsoft\Windows\CurrentVersion\Run
ββ HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
ββ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
ββ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
ββ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
ββ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
File System:
ββ %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
3. Check additional persistence methods:
ββ Scheduled Tasks
ββ Windows Services
ββ Service Creation/Replacement
ββ DLL Search Order Hijacking
ββ Trojaned System Libraries
ββ WMI Event Subscriptions
ββ Local Group Policy
ββ MS Office Add-Ins
4. Parse with tools for comprehensive coverage
5. Compare across systems (stacking)
ββ Identify unique/suspicious entriesCommands:
// Some code# KAPE collection
.\kape.exe --tsource C: --tdest C:\Output\ASEP-tout --tflush --target RegistryHives --mdest C:\Output\ASEP-mout --mflush --module RECmd_RegistryASEPs
# Autoruns (Sysinternals)
.\autorunsc64.exe -accepteula -a * -s -h -c > autoruns-output.csv
# Flags: -a * (all locations), -s (verify signatures), -h (hashes), -c (CSV)
# RECmd (Registry Explorer)
RECmd.exe --bn BatchExamples\RegistryASEPs.reb -d D:\Triage --nl --csv D:\Output
# Analyze with Timeline Explorer
TimelineExplorer.exe autoruns-output.csvInvestigation Focus:
Services with suspicious image paths (not in System32)
Unsigned executables in autostart locations
Recent registry LastWrite times during attack window
Base64 encoded commands in registry values
Scripts in startup folders
π CROSS-ARTIFACT ANALYSIS MATRIX
Evidence Correlation Table
Investigation Question
Primary Artifacts
Secondary Artifacts
Validation Method
Confidence Level
Was program executed?
β’ Prefetch β’ UserAssist (GUI only)
β’ Jump Lists β’ Amcache β’ LNK files
Prefetch shows run count + last 8 times UserAssist shows GUI launches
HIGH β
When was program first run?
β’ Prefetch creation time (-10s) β’ UserAssist first run
β’ Amcache compilation time β’ ShimCache first appearance β’ $MFT file creation
Cross-reference timestamps across artifacts VSS for historical validation
HIGH β
When was program last run?
β’ Prefetch modified time (-10s) β’ UserAssist last run time
β’ Jump Lists modification β’ LNK file modification β’ $J recent operations
Compare last execution timestamps Check for temporal consistency
HIGH β
How many times was program executed?
β’ Prefetch run count β’ UserAssist run count
β’ Jump Lists entry count β’ Multiple LNK files
Run counts should correlate Note: GUI vs CLI differences
HIGH β
What files did program access?
β’ Prefetch file list β’ Jump Lists (by AppID)
β’ LNK files β’ RecentDocs registry β’ $J file operations
Map files to applications Timeline correlation
MEDIUM-HIGH β
What folders did program access?
β’ Prefetch directory list
β’ ShellBags β’ LNK files β’ OpenSavePidlMRU
Cross-reference paths Check for hidden directories
MEDIUM β
What is program's SHA1 hash?
β’ Amcache (ONLY SOURCE)
None (unique to Amcache)
Extract from Amcache Verify against VirusTotal Compare to known malware
HIGH β
Did program exist on system?
β’ ShimCache β’ Amcache
β’ $MFT β’ Prefetch β’ $J
ShimCache proves presence $MFT shows file existence Note: Win10+ ShimCache limitations
MEDIUM-HIGH β
Was file deleted?
β’ Recycle Bin (I/I/ I/R files) β’ $J USN records
β’ $MFT (deleted entry flag) β’ $LogFile β’ ShimCache (may persist)
$I file shows deletion time $J shows delete operation $MFT shows deleted flag
HIGH β
When was file deleted?
β’ Recycle Bin $I metadata β’ $J delete timestamp
β’ $LogFile transaction β’ $MFT timestamp analysis
Parse $I file for deletion time Correlate with $J entries
HIGH β
Was file renamed or moved?
β’ $J rename operations β’ $LogFile transactions
β’ $MFT parent directory changes β’ ShellBags path history
$J shows old and new names Sequence of operations in $LogFile
MEDIUM-HIGH β
What folders did user browse?
β’ ShellBags
β’ LNK files β’ Jump Lists β’ LastVisitedPidlMRU
ShellBags proves navigation LNK files show file access MRU shows application paths
HIGH β
Was USB device connected?
β’ ShellBags (device paths) β’ LNK files (volume info)
β’ Registry USBSTOR keys β’ Prefetch (volume data) β’ Jump Lists
Volume serial numbers match Drive letter assignments Timestamps correlate
HIGH β
When was USB first connected?
β’ Registry USBSTOR key creation β’ ShellBags first access
β’ LNK file with volume serial β’ Prefetch with volume info
Registry key timestamp First ShellBag entry for device
HIGH β
When was USB last connected?
β’ ShellBags last access β’ LNK file timestamps
β’ Registry USBSTOR last write β’ Prefetch last run (if program executed)
Most recent timestamp for volume serial Last file access from device
HIGH β
What files were accessed from USB?
β’ LNK files (volume serial match) β’ Jump Lists
β’ Prefetch (if executables run) β’ RecentDocs β’ ShellBags
Filter artifacts by volume serial Match drive letters to volume info
HIGH β
Were programs executed from USB?
β’ Prefetch (volume information) β’ UserAssist
β’ Jump Lists β’ LNK files
Prefetch shows source volume Cross-reference with USB timeline
HIGH β
What files were opened by user?
β’ Jump Lists (by application) β’ LNK files
β’ RecentDocs registry β’ LastVisitedPidlMRU β’ Office Recent files
Application-specific tracking Timeline of document access
HIGH β
What applications did user run?
β’ Prefetch β’ UserAssist
β’ Jump Lists β’ Amcache β’ ShimCache
Multiple sources confirm usage Frequency and timing data
HIGH β
Is malware persistent?
β’ ASEP registry keys β’ Startup folder contents
β’ Scheduled Tasks β’ Windows Services β’ WMI subscriptions
Check all autostart locations Verify signatures Compare across systems (stacking)
HIGH β
When was persistence established?
β’ Registry key LastWrite times β’ Scheduled Task creation time
β’ File creation time (startup folder) β’ Service creation time β’ $MFT timestamp
LastWrite time of Run keys Task file creation timestamp
HIGH β
What persistence mechanisms exist?
β’ Autoruns comprehensive scan β’ ASEP registry analysis
β’ Manual service review β’ WMI subscription query β’ DLL hijacking check
Enumerate all autostart points Identify unsigned/unusual entries
HIGH β
Is data hidden in files?
β’ ADS scan (streams.exe) β’ AlternateStreamView
β’ PowerShell Get-Item β’ dir /R command
Scan for non-Zone.Identifier streams Examine suspicious streams
HIGH β
Were files archived/compressed?
β’ Prefetch (7zip, WinRAR, WinZip) β’ Jump Lists (archive tools)
β’ $J (.zip, .rar, .7z creation) β’ UserAssist β’ $MFT
Archive tool execution evidence Archive file creation events
HIGH β
Were files uploaded/exfiltrated?
β’ Prefetch (FTP, cloud tools) β’ Jump Lists (upload apps)
β’ Browser artifacts β’ Network share access β’ $J file operations
Upload tool execution Large file movements Network connections
MEDIUM-HIGH β
Were files staged for exfiltration?
β’ ShellBags (new directories) β’ $J (directory creation)
β’ $MFT (staging folder) β’ Jump Lists (mass file access) β’ LNK files
New directory creation Mass file copy operations Temporal clustering
MEDIUM-HIGH β
What network shares were accessed?
β’ ShellBags (UNC paths) β’ LNK files (network info)
β’ Jump Lists β’ LastVisitedPidlMRU β’ RecentDocs
UNC path evidence Network share information Remote file access
HIGH β
Were system files modified?
β’ $LogFile transactions β’ $J operations
β’ $MFT timestamps β’ ShimCache updates β’ Prefetch for system tools
System file modification events Suspicious system tool execution
HIGH β
Were logs cleared?
β’ Prefetch (wevtutil.exe) β’ $J (log file deletions)
β’ Event log timestamps β’ UserAssist β’ ShimCache
Log clearing tool execution Event log file operations Suspicious gaps in logs
HIGH β
Were anti-forensic tools used?
β’ Prefetch (CCleaner, BleachBit, etc.) β’ UserAssist
β’ Jump Lists β’ Amcache SHA1 β’ ShimCache
Tool execution evidence Timeline of cleaning activity Hash matching
HIGH β
Was remote access tool used?
β’ Prefetch (RDP, VNC, TeamViewer) β’ Amcache
β’ ASEP (persistence check) β’ Services β’ Network artifacts
Remote tool execution Persistence mechanisms Connection timestamps
HIGH β
Were credentials dumped?
β’ Prefetch (mimikatz, pwdump) β’ Amcache SHA1
β’ $J (SAM/SYSTEM access) β’ Jump Lists β’ File access to credential stores
Credential dumping tool execution Access to credential files Hash identification
HIGH β
Was lateral movement performed?
β’ Prefetch (psexec, wmic) β’ UserAssist
β’ Scheduled Tasks (remote) β’ Services (remote creation) β’ Network artifacts
Lateral movement tool execution Remote task/service creation Timeline correlation
HIGH β
Were reconnaissance commands run?
β’ Prefetch (cmd, powershell, wmic) β’ UserAssist
β’ Jump Lists β’ RecentDocs β’ ShimCache
System enumeration tools Command line execution Unusual tool combinations
MEDIUM-HIGH β
Was malware downloaded?
β’ Browser artifacts β’ Prefetch (download locations)
β’ $J (file creation in Downloads) β’ Zone.Identifier ADS β’ LNK files
Download timestamp Zone.Identifier shows source File creation in Downloads
HIGH β
Was file opened from email attachment?
β’ Jump Lists (email client) β’ LNK files
β’ Zone.Identifier ADS β’ Outlook artifacts β’ Temp folder activity
Email client file access Temp folder execution Zone information
MEDIUM-HIGH β
Did program crash or fail?
β’ Prefetch (may exist without success) β’ Event logs
β’ $LogFile errors β’ Application crash dumps β’ Windows Error Reporting
Prefetch created β successful execution Error events correlate
MEDIUM β οΈ
What was timeline of attack?
β’ ALL ARTIFACTS COMBINED
β’ Super timeline creation β’ VSS for historical depth
Build comprehensive timeline Correlate all timestamps Identify phases of attack
HIGH β
π― Artifact Combination Strategies
Maximum Confidence Combinations
Execution Proof (Highest Confidence):
Prefetch (run count + times)
+ Amcache (SHA1 hash match)
+ UserAssist (GUI execution)
+ Jump Lists (files accessed)
= 95%+ confidence of executionFile Access Proof:
LNK files (target path + volume info)
+ Jump Lists (application association)
+ ShellBags (folder navigation)
+ RecentDocs (document tracking)
= 90%+ confidence of accessUSB Device Usage:
ShellBags (device path + timestamps)
+ LNK files (volume serial number)
+ Registry USBSTOR (device info)
+ Prefetch (program execution from device)
= 95%+ confidence of usagePersistence Confirmation:
ASEP registry keys (autostart entries)
+ Scheduled Tasks (task files)
+ Services (service registry)
+ Autoruns (comprehensive scan)
= 90%+ confidence of persistenceData Exfiltration:
Prefetch (archive/upload tools)
+ Jump Lists (files archived)
+ $J (file operations)
+ ShellBags (staging directories)
+ LNK files (USB or network paths)
= 85%+ confidence of exfiltrationπ¨ INVESTIGATION RED FLAGS MASTER LIST
Execution-Based Indicators
β Suspicious Executable Names
ββ One or two-letter names (a.exe, ab.exe)
ββ Random character strings (asdfjkl.exe)
ββ Misspelled system files (svch0st.exe, exp1orer.exe)
ββ Known malware names (mimikatz, pwdump, psexec)
β Unusual Execution Locations
ββ C:\$Recycle.Bin
ββ C:\ProgramData
ββ %TEMP% or %TMP%
ββ %APPDATA%
ββ User profile root (C:\Users\username\)
ββ Downloads folder
ββ Public folders
ββ System Volume Information
β Multiple Prefetch Files Same Name
ββ Indicates execution from different paths
ββ Exception: svchost, dllhost, rundll32 (expected)
β Living Off The Land Binaries (LOLBins)
ββ cmd.exe (from non-System32)
ββ powershell.exe (unusual parameters)
ββ wmic.exe
ββ psexec.exe
ββ reg.exe
ββ schtasks.exe
ββ net.exe / net1.exe
ββ wscript.exe / cscript.exe
ββ mshta.exe
ββ regsvr32.exe
ββ rundll32.exe (unusual parameters)
ββ certutil.exe (download operations)
```
### Temporal Red Flags
```
β Off-Hours Activity
ββ Executions at 2-5 AM
ββ Weekend activity in corporate environment
ββ Holiday activity
β Rapid Sequential Execution
ββ Reconnaissance tools run in quick succession
ββ Multiple system tools within minutes
ββ Mass file access patterns
β Execution Immediately After
ββ USB device connection
ββ Network share access
ββ Email receipt timestamp
ββ User login
```
### Persistence Red Flags
```
β Suspicious AutoStart Entries
ββ Unsigned executables in Run keys
ββ Base64 encoded commands
ββ Scripts in Startup folder
ββ Services with unusual paths
ββ Recent registry modifications
β Scheduled Task Indicators
ββ Tasks running as SYSTEM
ββ Tasks with unusual triggers
ββ Tasks pointing to temp directories
ββ Recently created tasks during incident window
```
### User Activity Red Flags
```
β Unusual File Access
ββ Access to sensitive directories (SAM, SYSTEM)
ββ Mass document opening
ββ Network share enumeration
ββ System file browsing
β Data Exfiltration Indicators
ββ Large file copies to USB
ββ Archive creation (zip, rar)
ββ Upload to cloud services
ββ Files moved to staging directoriesπ οΈ TOOL COMMAND REFERENCE LIBRARY
Zimmerman Tools Suite
PECmd (Prefetch)
# Single file
.\PECmd.exe -f C:\Windows\Prefetch\[file].pf
# Single file with CSV
.\PECmd.exe -f C:\Windows\Prefetch\[file].pf --csv "C:\Output" --csvf prefetch.csv
# Directory
.\PECmd.exe -d C:\Windows\Prefetch
# Directory with VSS and keywords
.\PECmd.exe -d C:\Windows\Prefetch -q --csv C:\Output --csvf prefetch.csv --vss --mp -k "system32, downloads, temp"AmcacheParser
# Live system
.\AmcacheParser.exe -f "C:\Windows\appcompat\Programs\Amcache.hve" -i --csv C:\Output
# Forensic image
.\AmcacheParser.exe -f "[path]\Amcache.hve" -i --csv C:\Output
# With blacklist
.\AmcacheParser.exe -f "[path]\Amcache.hve" -b C:\blacklist.txt --csv C:\OutputAppCompatCacheParser (ShimCache)
# From SYSTEM hive
.\AppCompatCacheParser.exe -f C:\Windows\System32\config\SYSTEM --csv C:\Output
# Live system
.\AppCompatCacheParser.exe --csv C:\Output --csvf shimcache.csvJLECmd (Jump Lists)
# Single file
JLECmd.exe -f "[path]\[file].automaticDestinations-ms" --csv C:\Output -q
# Directory (Automatic)
JLECmd.exe -d "C:\Users\[user]\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output -q
# Directory (Custom)
JLECmd.exe -d "C:\Users\[user]\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" --csv C:\Output -qLECmd (LNK Files)
# Single file
LECmd.exe -f "[path]\[file].lnk"
# Single file with outputs
LECmd.exe -f "[path]\[file].lnk" --json C:\Output --pretty
# Directory
LECmd.exe -d "C:\Users\[user]\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --html C:\Output -q
# All subdirectories
LECmd.exe -d "[path]" --all --csv C:\OutputSBECmd (ShellBags)
# Specific user directory
SBECmd.exe -d C:\Users\[user] --csv C:\Output
# Live system
SBECmd.exe -l --csv C:\OutputRBCmd (Recycle Bin)
# Single file
RBCmd.exe -f "C:\$Recycle.Bin\[SID]\$I[file]"
# Entire Recycle Bin
RBCmd.exe -d C:\$Recycle.Bin\ -q --csv C:\Output --csvf recycle-bin.csvMFTECmd (MFT, $J, etc.)
# Parse MFT
MFTECmd.exe -f "[path]\$MFT" --csv "C:\Output" --csvf mft.csv
# Parse with JSON
MFTECmd.exe -f "[path]\$MFT" --json "C:\Output"
# Parse USN Journal
MFTECmd.exe -f "[path]\$J" --csv "C:\Output" --csvf usnjrnl.csv
# Body file format
MFTECmd.exe -f "[path]\$MFT" --body "C:\Output" --bdl c
# Decode specific entry
MFTECmd.exe -f "[path]\$MFT" --de 5-5Registry Explorer
# GUI tool - launch and navigate
RegistryExplorer.exe
# Load live system
# File > Live System > [select hive]
# Load offline hive
# File > Load Hive > [select file]RECmd (Registry Explorer CLI)
# Parse ASEP registry keys
RECmd.exe --bn BatchExamples\RegistryASEPs.reb -d [path] --nl --csv C:\Output
# Custom registry parsing
RECmd.exe -f "[path]\NTUSER.DAT" --csv C:\OutputKAPE (Kroll Artifact Parser and Extractor)
# Collect Registry Hives
.\kape.exe --tsource C: --tdest C:\Output\tout --tflush --target RegistryHives
# Collect and parse ASEP
.\kape.exe --tsource C: --tdest C:\Output\tout --tflush --target RegistryHives --mdest C:\Output\mout --mflush --module RECmd_RegistryASEPs
# Comprehensive collection
.\kape.exe --tsource C: --tdest C:\Output\tout --target !SANS_Triage --mdest C:\Output\mout --module !EZParserSysinternals Tools
Autoruns
# Full scan with signatures and hashes
.\autorunsc64.exe -accepteula -a * -s -h -c > autoruns-output.csv
# Flags explanation:
# -accepteula = Accept EULA automatically
# -a * = Show all autostart locations
# -s = Verify digital signatures
# -h = Show file hashes
# -c = Output as CSVStreams (ADS)
# Scan directory for ADS
streams.exe -s C:\path\to\directory
# Scan file
streams.exe C:\path\to\file
# Delete specific stream
streams.exe -d [stream-name] C:\path\to\fileFTK Imager
# CLI mode - create image
ftkimager.exe [source] [destination] --e01 --compress 6 --case-number [case] --evidence-number [num]
# GUI operations:
# File > Add Evidence Item > [select source]
# Browse to artifact location
# Right-click > Export FilesPowerShell Commands
Alternate Data Streams
# List all streams
Get-Item C:\path\to\file -Stream *
# Read stream content
Get-Content C:\path\to\file -Stream [stream-name]
# Create stream
Set-Content C:\path\to\file -Stream [stream-name] -Value "content"
# Remove stream
Remove-Item C:\path\to\file -Stream [stream-name]Registry Access
# Read registry key
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\*\Count"
# Export registry key
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache" C:\Output\shimcache.regCommand Prompt Commands
Recycle Bin Manual Examination
# Show hidden files
dir /a
# Navigate to Recycle Bin
cd C:\$Recycle.Bin
dir /a
# Navigate to user SID
cd [SID]
dir
# View metadata file
type $I[identifier]
# Copy deleted file
copy $R[identifier] C:\Output\recovered-file.extAlternate Data Streams
# List files with streams
dir /R C:\path\to\directory
# View stream
more < C:\path\to\file:[stream-name]
# Execute from stream
wscript.exe C:\path\to\file:[stream-name]
```
---
## π INVESTIGATION TEMPLATES
### Template 1: Malware Execution Investigation
```
OBJECTIVE: Determine if suspicious executable was run and when
ARTIFACTS TO COLLECT:
β Prefetch files
β Amcache.hve
β SYSTEM hive (ShimCache)
β NTUSER.DAT (UserAssist)
ANALYSIS WORKFLOW:
1. Search Prefetch for executable name
ββ If found: Extract last 8 run times and run count
ββ If not found: Check if Prefetch is enabled
2. Search Amcache for executable
ββ Extract SHA1 hash
ββ Check VirusTotal / malware databases
ββ Note full path and timestamps
3. Search ShimCache for executable path
ββ Confirms presence even if deleted
4. Check UserAssist for GUI execution
ββ Provides run count and last run time
5. Cross-reference timestamps across artifacts
QUESTIONS TO ANSWER:
- Was program executed? (Prefetch = yes, others = maybe)
- When was first execution?
- When was last execution?
- How many times was it run?
- What is the SHA1 hash?
- What files did it access?
- Has it been deleted?
DELIVERABLE:
Timeline of execution events with supporting evidence
```
---
### Template 2: USB Device Usage Investigation
```
OBJECTIVE: Determine what USB devices were connected and what files were accessed
ARTIFACTS TO COLLECT:
β ShellBags (USRCLASS.DAT, NTUSER.DAT)
β LNK files from Recent folder
β Jump Lists
β SYSTEM hive (USB device registry keys)
β Prefetch files
ANALYSIS WORKFLOW:
1. Parse ShellBags for removable device paths
ββ Look for drive letters and volume names
2. Examine LNK files
ββ Filter for removable media paths
ββ Extract volume serial numbers
ββ Note timestamps of file access
3. Review Jump Lists for files opened from USB
ββ Check document applications (Office, PDF readers)
4. Check Registry for USB device history
ββ HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR
5. Search Prefetch for executables run from USB
ββ Volume information in .pf files
QUESTIONS TO ANSWER:
- What USB devices were connected?
- When were they first connected?
- When were they last connected?
- What files were accessed from USB?
- Were any programs executed from USB?
- Were files copied to/from USB?
DELIVERABLE:
USB device timeline with file access activity
```
---
### Template 3: Data Exfiltration Investigation
```
OBJECTIVE: Identify potential data theft and exfiltration methods
ARTIFACTS TO COLLECT:
β Jump Lists (archive tools, upload applications)
β LNK files (file access in sensitive directories)
β ShellBags (folder browsing activity)
β Prefetch (archiving tools, FTP clients, cloud sync)
β $J and $MFT (file operations, mass copies)
β RecentDocs and MRU keys
β Browser artifacts (separate investigation)
ANALYSIS WORKFLOW:
1. Identify staging directories
ββ Check ShellBags for new folder creation
ββ Review $J for directory operations
2. Search for archive creation
ββ Prefetch: 7zip, WinRAR, WinZip execution
ββ Jump Lists: Files added to archives
ββ $J: .zip, .rar, .7z file creation
3. Check for upload tools
ββ Prefetch: FTP clients, cloud sync tools
ββ Jump Lists: Files opened by upload apps
ββ UserAssist: Cloud storage application use
4. Review sensitive document access
ββ LNK files: Office documents, PDFs
ββ Jump Lists: Multiple file opens
ββ ShellBags: Sensitive directory browsing
5. Identify file copies to removable media
ββ ShellBags: USB drive access
ββ $J: Large file copy operations
ββ LNK files: Files accessed from USB
6. Timeline correlation
ββ Align file access, archiving, and transfer timestamps
QUESTIONS TO ANSWER:
- What files were accessed?
- Were files archived?
- What archiving tools were used?
- Were files copied to USB or network?
- Were cloud upload tools used?
- What was the timeline of activity?
- What was the volume of data?
DELIVERABLE:
Comprehensive timeline of data access and exfiltration with volume estimates
```
---
### Template 4: Persistence Mechanism Investigation
```
OBJECTIVE: Identify how malware maintains persistence on system
ARTIFACTS TO COLLECT:
β Registry hives (SYSTEM, SOFTWARE, NTUSER.DAT)
β Startup folder contents
β Scheduled tasks
β Windows Services
β WMI subscriptions
ANALYSIS WORKFLOW:
1. Run Autoruns comprehensive scan
ββ Export results to CSV
2. Check primary AutoStart registry keys
ββ HKCU and HKLM Run keys
ββ RunOnce keys
ββ Winlogon entries
3. Examine Startup folders
ββ %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
4. Review Scheduled Tasks
ββ C:\Windows\System32\Tasks\
ββ Check task triggers and actions
5. Investigate Windows Services
ββ New services created
ββ Services with unusual paths
ββ Service DLL hijacking
6. Check for DLL search order hijacking
ββ DLLs in application directories
7. Review WMI event subscriptions
ββ wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter GET /FORMAT:LIST
8. Correlate LastWrite times with attack timeline
QUESTIONS TO ANSWER:
- What persistence mechanisms are present?
- When were they created?
- What executables are involved?
- Are they signed/verified?
- Are they in unusual locations?
- Do they survive reboots?
DELIVERABLE:
List of all persistence mechanisms with risk assessment and removal instructions
```
---
## π ANALYST BEST PRACTICES
### Collection Best Practices
```
1. Volatile First
ββ Collect Prefetch before running analysis tools
ββ Live response tools create new prefetch files
2. Preserve Originals
ββ Work on copies, never original evidence
ββ Maintain chain of custody
3. Document Everything
ββ Commands run
ββ Tools used and versions
ββ Analysis notes
ββ Findings
4. Use VSS
ββ Volume Shadow Copies provide historical data
ββ Critical for timeline depth
5. Hash Verification
ββ Hash evidence before and after
ββ Use Amcache SHA1 for executables
```
### Analysis Best Practices
```
1. Start Broad, Then Narrow
ββ Begin with high-level timeline
ββ Focus on suspicious time periods
ββ Deep dive on specific artifacts
2. Cross-Reference Multiple Artifacts
ββ Single artifact = low confidence
ββ Multiple artifacts = high confidence
ββ Build evidence matrix
3. Understand Limitations
ββ Prefetch: May not prove execution on Win10+
ββ Amcache: Presence, not execution
ββ ShimCache: Definitely not execution on Win10+
ββ UserAssist: GUI only
4. Use Timeline Analysis
ββ Build super timeline with all artifacts
ββ Look for temporal patterns
ββ Identify anomalies
5. Consider Context
ββ Corporate vs. personal use
ββ User role and responsibilities
ββ Normal behavior baseline
```
### Reporting Best Practices
```
1. Executive Summary
ββ Non-technical overview
ββ Impact assessment
ββ Key findings
2. Technical Details
ββ Artifact analysis results
ββ Timeline of events
ββ Evidence correlation
3. Visual Aids
ββ Timelines
ββ Process trees
ββ Network diagrams
4. Indicators of Compromise (IOCs)
ββ File hashes
ββ File paths
ββ Registry keys
ββ IP addresses / domains
5. Recommendations
ββ Remediation steps
ββ Prevention measures
ββ Security improvementsπ ARTIFACT RELIABILITY MATRIX
Artifact
Execution Proof
Timing Accuracy
Historical Depth
Data Richness
Forensic Value
Prefetch
β High (Win7-8) β οΈ Medium (Win10+)
β Excellent (Β±10 sec)
β οΈ Limited (Last 8 times)
β High (Files accessed)
βββββ
Amcache
β Low (Presence only)
β Good (Multiple timestamps)
β Excellent (Historical)
β Very High (SHA1 hashes!)
βββββ
ShimCache
β None (Win10+) β οΈ Low (Win7-8)
β οΈ Limited (Mod time only)
β Excellent (1024 entries)
β οΈ Medium (Paths only)
βββ
UserAssist
β High (GUI only)
β Good
β οΈ Limited (Per application)
β High (Focus time)
ββββ
Jump Lists
β High (Indirect)
β Excellent
β οΈ Limited (Recent items)
β High (File associations)
ββββ
LNK Files
β οΈ Medium (File access)
β Excellent
β οΈ Limited (Latest only)
β Very High (Device info)
ββββ
ShellBags
β οΈ Medium (Folder access)
β Good
β Excellent
β Very High (Exotic items)
ββββ
$MFT
β None
β Excellent
β Excellent
β Very High
βββββ
$J
β None
β Excellent
β οΈ Medium (Circular log)
β Very High (Operations)
βββββ
$LogFile
β None
β Excellent
β Low (Very recent)
β Very High (Transactions)
βββ
π KEY TAKEAWAYS
Critical Rules to Remember
Prefetch Priority
Collect FIRST - it's volatile
Proves execution (with caveats on Win10+)
Contains last 8 execution times
Amcache is Unique
ONLY native source of SHA1 hashes
Does NOT prove execution
Excellent for malware identification
ShimCache on Win10+
Does NOT prove execution
Only proves file existed
Useful for historical presence
Cross-Reference Everything
Single artifact = low confidence
Multiple artifacts = high confidence
Build correlation matrix
Understand Windows Versions
Win7/8 vs Win10/11 behavior differs
Prefetch compression on Win10/11
ShimCache reliability decreased
Timeline is King
Build comprehensive super timeline
Correlate across all artifacts
Look for temporal patterns
SHA1 Hashes Matter
Use Amcache for executable identification
Cross-reference with VirusTotal
Identify known good vs. known bad
Persistence Hunting
Check all ASEP locations
Review Scheduled Tasks
Examine Windows Services
Stack results across systems
π QUICK REFERENCE CARD
Top 5 Evidence of Execution Artifacts
Prefetch - Proves execution, timing, run count
Amcache - SHA1 hashes, metadata
UserAssist - GUI program tracking
Jump Lists - Application file access
ShimCache - Historical presence (Win10+ caveat)
Top 5 User Activity Artifacts
LNK Files - File/folder access, device info
ShellBags - Folder navigation
Jump Lists - Recent documents
RecentDocs/MRU - Application usage
Recycle Bin - Deleted files
Top 5 File System Artifacts
$MFT - Complete file metadata
$J - Change journal (creates, deletes, renames)
$LogFile - NTFS transactions
ADS - Hidden data streams
Volume Shadow Copies - Historical snapshots
Top 5 Zimmerman Tools
PECmd - Prefetch parsing
MFTECmd - File system analysis
JLECmd - Jump List parsing
LECmd - LNK file parsing
Registry Explorer - Registry analysis
Top Investigation Commands
# Quick triage set
.\PECmd.exe -d C:\Windows\Prefetch --csv C:\Output -q
.\AmcacheParser.exe -f C:\Windows\AppCompat\Programs\Amcache.hve --csv C:\Output
.\AppCompatCacheParser.exe --csv C:\Output
JLECmd.exe -d %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations --csv C:\Output -q
LECmd.exe -d %APPDATA%\Microsoft\Windows\Recent --csv C:\Output -qFor DFIR Practitioner
Last updated