Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Memory Acquisition Memory Artifact Timelining

Remember to open command prompt as Administrator The Volatility™ Timeliner plugin parses time-stamped
objects found in memory images. Output is sorted by:
Win32dd / Win64dd (x86 / x64 systems respectively)  Process creation time
/f Image destination and filename  Thread creation time
C:\> win32dd.exe /f E:\mem.img  Driver compile time
 DLL / EXE compile time
Redline Collector Script  Network socket creation time Volatility Memory Forensic Framework
 Memory resident registry key last write time Cheat Sheet
C:\> RunRedlineAudit.bat  Memory resident event log entry creation time
REFERENCE GUIDE v1.3 by Chad Tilbury
timeliner dfir.sans.org
Volatility™ WinPmem
- (single dash) Output to standard out --output-file Optional file to write output
--output=body Mactime bodyfile format (also text | xslx) Purpose
-l Load driver for live memory analysis
--registry Include timestamps from registry hives This cheat sheet supports the SANS FOR508 Advanced Forensics and Incident
C:\> winpmem_<version>.exe E:\mem.img -y <file> Perform YARA search using signature file Response Course and SANS FOR526 Memory Analysis. It is not intended to be
an exhaustive resource for Volatility™ or other highlighted tools. Volatility™ is
# vol.py -f mem.img timeliner --output-file a trademark of Verizon. The SANS Institute is not sponsored or approved by,
or affiliated with Verizon.
out.csv --profile=Win7SP1x86
Converting Hibernation Files and Crash Dumps

Volatility™ imagecopy Registry Analysis Volatility™ Plugins How To Use This Document
-f Name of source file (crash dump,
hibernation file) hivelist - Find and list available registry hives Memory analysis is one of the most powerful tools
-O Output file name # vol.py hivelist available to forensic examiners. This guide hopes to
--profile Source OS from imageinfo
hivedump - Print all keys and subkeys in a hive simplify the overwhelming number of available options.
# vol.py imagecopy -f hiberfil.sys -O hiber.img
-o Offset of registry hive to dump (virtual offset)
–-profile=Win7SP1x64 # vol.py hivedump –o 0xe1a14b60 Analysis can be generally broken up into six steps:
# vol.py imagecopy -f Memory.dmp -O memdmp.img
1. Identify Rogue Processes
printkey - Output a registry key, subkeys, and values
-K “Registry key path” 2. Analyze Process DLLs and Handles
–-profile=Win7SP1x64
# vol.py printkey –K 3. Review Network Artifacts
4. Look for Evidence of Code Injection
“Software\Microsoft\Windows\CurrentVersion\Run”

userassist - Find and parse userassist key values 5. Check for Signs of a Rootkit
Memory Analysis Tools # vol.py userassist 6. Dump Suspicious Processes and Drivers
Volatility™ (Windows/Linux/Mac) hashdump - Dump user NTLM and Lanman hashes We outline the most useful Volatility™ plugins supporting
http://code.google.com/p/volatility/ -y Virtual offset of SYSTEM registry hive (from
these six steps here. Further information is provided for:
hivelist)
Mandiant Redline (Windows)  Memory Acquisition
-s Virtual offset of SAM registry hive (from
http://www.mandiant.com/resources/download/redline
hivelist)
 Converting Hibernation Files and Crash Dumps
Volafox (Mac OS X and BSD) # vol.py hashdump –y 0x8781c008 –s  Memory Artifact Timelining
http://code.google.com/p/volafox/ 0x87f6b9c8  Registry Analysis Volatility™ Plugins
 Memory Analysis Tool List

For508_HANDOUT_MemFor_v1_3
Getting Started with Volatility™ Check for Signs of a Rootkit Review Network Artifacts
Getting Help psxview - Find hidden processes using cross-view connections - [XP] List of open TCP connections
# vol.py –h (show options and supported plugins) # vol.py psxview # vol.py connections
# vol.py plugin –h (show plugin usage) modscan - Scan memory for loaded, unloaded, and connscan - [XP] ID TCP connections, including closed
# vol.py plugin --info (show available OS profiles) unlinked drivers # vol.py connscan
# vol.py modscan
Sample Command Line sockets - [XP] Print listening sockets (any protocol)
# vol.py -f image --profile=profile plugin apihooks - Find API/DLL function hooks # vol.py sockets
-p Operate only on specific PIDs
Identify System Profile -Q Only scan critical processes and DLLS sockscan - [XP] ID sockets, including closed/unlinked
imageinfo - Display memory image metadata # vol.py apihooks # vol.py sockscan
# vol.py –f mem.img imageinfo
ssdt - Hooks in System Service Descriptor Table netscan - [Win7] Scan for connections and sockets
Using Environment Variables # vol.py ssdt | egrep –v ‘(ntoskrnl|win32k)’ # vol.py netscan
Set name of memory image (takes place of -f )
driverirp - Identify I/O Request Packet (IRP) hooks
# export VOLATILITY_LOCATION=file:///images/mem.img
-r Analyze drivers matching REGEX name pattern Dump Suspicious Processes and Drivers
Set profile type (takes place of --profile= ) # vol.py driverirp –r tcpip
# export VOLATILITY PROFILE=WinXPSP3x86 dlldump - Extract DLLs from specific processes
idt - Display Interrupt Descriptor Table -p Dump DLLs only for specific PIDs
# vol.py idt -b Dump DLLs from process at base offset
Identify Rogue Processes -r Dump DLLs matching REGEX name
--dump-dir Directory to save extracted files
pslist - High level view of running processes # vol.py dlldump --dump-dir=./output –r metsrv
# vol.py pslist Analyze Process DLLs and Handles
dlllist - List of loaded dlls by process moddump - Extract kernel drivers
psscan - Scan memory for EPROCESS blocks -b Dump driver using base address (from modscan)
# vol.py psscan -p Show information only for specific process identifiers
-r Dump drivers matching REGEX name
(PIDs)
--dump-dir Directory to save extracted files
pstree - Display parent-process relationships # vol.py dlllist –p 4,868
# vol.py moddump --dump-dir=./output –r gaopdx
# vol.py pstree
getsids - Print process security identifiers procdump - Dump process to executable sample
pstotal - Graphical view of parent-process relationships -p Show information only for specific PIDs -p Dump only specific PIDs
--output=dot Produces vector process DOT graph # vol.py getsids –p 868 -o Specify process by physical memory offset
# vol.py pstotal -output=dot -n Use REGEX to specify process
handles - List of open handles for each process --dump-dir Directory to save extracted files
-p Show information only for specific PIDs # vol.py procdump --dump-dir=./output –p 868
Look for Evidence of Code Injection -t Display only handles of a certain type
{Process, Thread, Key, Event, File, Mutant, Token, Port} memdump - Dump every memory section into a single file
malfind - Find injected code and dump sections # vol.py handles –p 868 –t Process,Mutant -p Dump memory sections from these PIDs
-n Use REGEX to specify process
-p Show information only for specific PIDs
--dump-dir Directory to save extracted files
-o Provide physical offset of single process to scan filescan - Scan memory for FILE_OBJECT handles # vol.py memdump –dump-dir=./output –p 868
--dump-dir Directory to save memory sections # vol.py filescan
# vol.py malfind --dump-dir ./output_dir dumpfiles - Dump File_Objects from file cache
svcscan - Scan for Windows Service information -Q Extract using physical offset
ldrmodules - Detect unlinked DLLs -v Show service DLL -r Extract using REGEX (-i for case insensitive)
-p Show information only for specific PIDs # vol.py svcscan --dump-dir Directory to save extracted files
-v Verbose: show full paths from three DLL lists # vol.py dumpfiles –dump-dir=./output –r \\.exe
# vol.py ldrmodules –p 868 -v

For508_HANDOUT_MemFor_v1_3

You might also like