Memory Forensics
What this is: Analysing RAM dumps to identify processes, network connections, injected code, and extract artifacts.
Competition relevance: Digital forensics and incident response. Volatility-based analysis. National+ complexity.
Why it matters: Memory contains runtime state: active malware, credentials, encryption keys, network connections.
WSOS 2026 alignment: This topic directly supports Section 8: Investigation and digital forensics (analysing volatile memory for malware and IOCs).
Competition area: Core to the digital forensics and incident response area, where you analyse compromised system memory to detect malware, process injection, and extract credentials or encryption keys.
Offline competence: Volatility 2/3 work entirely offline with pre-downloaded profiles. Use Volatility’s built-in help (volatility --info or vol.py --help). Memory analysis requires no network. Pre-download Windows profiles for Volatility if needed.
Competency Matrix
Section titled “Competency Matrix”| Level | Expectation |
|---|---|
| Regional | Run basic Volatility commands (pslist, netscan). Identify processes from memory dump. |
| National | Detect process injection (malfind, ldrmodules). Extract process memory. Timeline correlation. |
| Squad/Team Selection | Rootkit detection (psxview). Extract encryption keys. Malware configuration extraction. |
| International | Custom Volatility plugin development. Advanced malware analysis. Memory-only attacks. |
Technical Content
Section titled “Technical Content”Volatility Basics
Section titled “Volatility Basics”Identify image profile:
# Volatility 2volatility -f memory.dmp imageinfo
# Volatility 3vol.py -f memory.dmp windows.infoEssential plugins:
# List processesvolatility -f memory.dmp --profile=Win10x64_19041 pslistvolatility -f memory.dmp --profile=Win10x64_19041 pstree
# Network connectionsvolatility -f memory.dmp --profile=Win10x64_19041 netscan
# Command historyvolatility -f memory.dmp --profile=Win10x64_19041 cmdscanvolatility -f memory.dmp --profile=Win10x64_19041 consoles
# Loaded DLLsvolatility -f memory.dmp --profile=Win10x64_19041 dlllist -p 1234
# Dump process memoryvolatility -f memory.dmp --profile=Win10x64_19041 procdump -p 1234 -D output/Competition context: Flags may be in process memory, network connections, or command history. Run all basic plugins first.
Process Injection Detection
Section titled “Process Injection Detection”Detecting injected code:
# malfind - detects injected code segmentsvolatility -f memory.dmp --profile=Win10x64_19041 malfind
# Look for:# - PAGE_EXECUTE_READWRITE protection (unusual)# - Suspicious memory regions not backed by files# - Executable code in unusual locations
# ldrmodules - compare loaded modules listsvolatility -f memory.dmp --profile=Win10x64_19041 ldrmodules
# Check columns: InLoad, InInit, InMem# If False in any column, likely injection
# hollowscan - detect process hollowingvolatility -f memory.dmp --profile=Win10x64_19041 hollowscanExtract injected code:
# Dump suspicious memory regionvolatility -f memory.dmp --profile=Win10x64_19041 vaddump -p 1234 -D output/
# Analyze with strings/hex editorstrings output/1234.dmp | grep -i flagRootkit Detection
Section titled “Rootkit Detection”psxview (cross-view process detection):
volatility -f memory.dmp --profile=Win10x64_19041 psxview
# Compare process lists from different sources:# - PsActiveProcessHead# - EPROCESS pool scanning# - PspCidTable# - csrss.exe handle table
# If process appears in some lists but not others = ROOTKITSSDT hooks:
# System Service Descriptor Table hooksvolatility -f memory.dmp --profile=Win10x64_19041 ssdt
# Look for hooked syscalls (Owner != ntoskrnl.exe or win32k.sys)Driver analysis:
# List kernel modulesvolatility -f memory.dmp --profile=Win10x64_19041 modules
# Detect hidden driversvolatility -f memory.dmp --profile=Win10x64_19041 driverscanCredential Extraction
Section titled “Credential Extraction”Extract passwords (mimikatz-style):
# lsadump - LSA secretsvolatility -f memory.dmp --profile=Win10x64_19041 lsadump
# hashdump - SAM hashesvolatility -f memory.dmp --profile=Win10x64_19041 hashdump
# mimikatz plugin (if available)volatility -f memory.dmp --profile=Win10x64_19041 mimikatzRegistry extraction:
# List registry hivesvolatility -f memory.dmp --profile=Win10x64_19041 hivelist
# Dump registry hivevolatility -f memory.dmp --profile=Win10x64_19041 dumpregistry -o 0xffff... -D output/Competition Strategy & Marking
Section titled “Competition Strategy & Marking”What gets marked:
- Malicious processes identified (PID, name, command line, parent PID)
- Network connections documented (IP, port, process, state)
- Injected code detected and extracted
- Credentials/keys recovered
Evidence and reporting requirements:
- Volatility command output (pslist, pstree, netscan) showing full process hierarchy
- Screenshot of malfind results with suspicious memory regions highlighted
- Extracted artefacts (dumped processes, strings output, extracted DLLs)
- MD5/SHA1 hashes of extracted malicious binaries
- Process timeline showing start times and relationships
- Written analysis explaining indicators of compromise (e.g., “svchost.exe running from C:\Temp is suspicious”)
- Network connection attribution (which PID owns which connection)
- Clear naming:
memory_malfind_pid1234_injection.png,memory_extracted_malware_hash.txt
Time allocation:
- Profile identification: 5 minutes
- Basic analysis (ps, netscan): 15 minutes
- Injection detection: 20 minutes
- Artefact extraction: 20 minutes
Time-boxed drill suggestion: 60-minute memory forensics sprint: Given a Windows memory dump, identify the profile, run pslist/pstree/netscan, identify at least 2 suspicious processes (unusual parent, non-standard path, network connections to external IPs), run malfind to detect code injection, extract suspicious process memory, run strings on extracted memory to find flags, and document all findings with command output and written analysis.
False Flags / Wrong Paths
Section titled “False Flags / Wrong Paths”Practice Checklist
Section titled “Practice Checklist”- Can identify memory dump profile
- Can list processes and network connections
- Can detect process injection with malfind/ldrmodules
- Can identify rootkits with psxview
- Can extract process memory
- Can dump credentials from LSA/SAM
- Can analyse command history
- Complete memory analysis in under 60 minutes
References
Section titled “References”- Regional Roadmap: Digital forensics
- National Roadmap: Digital forensics
- Squad/Team Selection: Advanced Memory Forensics
Unofficial study guide, not endorsed by WorldSkills International or WorldSkills UK. Topics are example areas to prepare for, not the content of any test project: competition tasks are confidential, competitions are closed book, and formats change between competitions. More about this site.