2008-08-12 Andreas Schuster / DFRWS 2008 1
The impact of Microsoft Windows pool allocation strategies on memory forensics
Andreas Schuster
The impact of Microsoft Windows pool allocation strategies on memory - - PowerPoint PPT Presentation
The impact of Microsoft Windows pool allocation strategies on memory forensics Andreas Schuster Andreas Schuster / DFRWS 2008 2008-08-12 1 Introduction. A simulated attack. Attacker launches shell (cmd.exe) launches payload
2008-08-12 Andreas Schuster / DFRWS 2008 1
Andreas Schuster
2008-08-12 Andreas Schuster / DFRWS 2008 3
2008-08-12 Andreas Schuster / DFRWS 2008 4
(attacker’s shell and rootkit)
2008-08-12 Andreas Schuster / DFRWS 2008 6
RedHat Linux 6.2. After “some ten minutes, about 90 percent of the monitored memory was changed“.
running as VMware guest. After 15 hours of idle activity, 85% of 512 MB RAM were unchanged.
Solomon, , Hueb uebner, Bem em and and Sz Szeżynska (2 (2007) ) used used pro probe proc processes to to meas measure the decay of userland data. “The majority of pages persisted for less than 5 min[utes] with single pages only lasting longer.”
how, , Pfaf aff, f, Garf arfinkel and and Rose Rosenblum (2 (2005) ) fil ille led net network buf buffe fers in in kerne ernel l spac space e with marked and timestamped data. After 14 days of “everyday work” 3 MB out of ini initi tiall lly 4 MB we were re still still ac acce cessible. e.
2008-08-12 Andreas Schuster / DFRWS 2008 7
2008-08-12 Andreas Schuster / DFRWS 2008 8
2008-08-12 Andreas Schuster / DFRWS 2008 9
folder
2008-08-12 Andreas Schuster / DFRWS 2008 10
1. launch probes no. 1 to 100 2. give the system time to settle down (5 minutes) 3.
4. terminate all probes 5.
6. repeat 1, 5, 15, 30, 60 minutes and 24 hours thereafter
2008-08-12 Andreas Schuster / DFRWS 2008 11
low file system activity:
ROCESS stru structu tures af after ter 24 hou hours
SYSTEM and svchost.exe
high file system activity:
ROCESS stru structu tures af after ter 24 hou hours
e.g. MFT entries of probe files
activity (svchost.exe, services.exe)
2008-08-12 Andreas Schuster / DFRWS 2008 13
http://xcon.xfocus.org/xcon2005/archives/2005/Xcon2005_SoBeIt.pdf
http://seattle.toorcon.org/talks/richardjohnson.pptx
http://www.immunitysec.com/downloads/KernelPool.odp
2008-08-12 Andreas Schuster / DFRWS 2008 14
… 79 80 … 511 POOL_DESCRIPTOR ListHeads
POOL_HEADER ex ETHREAD POOL_HEADER ex EPROCESS POOL_HEADER ex EPROCESS
BlockSize
2008-08-12 Andreas Schuster / DFRWS 2008 15
kd> dt _POOL_HEADER nt!_POOL_HEADER +0x000 PreviousSize : Pos 0, 9 Bits +0x000 PoolIndex : Pos 9, 7 Bits +0x002 BlockSize : Pos 0, 9 Bits +0x002 PoolType : Pos 9, 7 Bits +0x004 PoolTag : Uint4B +0x008 Payload
2008-08-12 Andreas Schuster / DFRWS 2008 16
+0x000 PreviousSize : Pos 0, 9 Bits +0x000 PoolIndex : Pos 9, 7 Bits +0x002 BlockSize : Pos 0, 9 Bits +0x002 PoolType : Pos 9, 7 Bits +0x004 PoolTag : Uint4B +0x008 FreeList : _LIST_ENTRY +0x000 Flink : Ptr32 +0x004 Blink : Ptr32 +0x010 RemainingPayload
2008-08-12 Andreas Schuster / DFRWS 2008 17
1. launch probes no. 1 to 3 2. terminate all probes in reverse order 3.
4. launch probe no. 4 5.
2008-08-12 Andreas Schuster / DFRWS 2008 18
2008-08-12 Andreas Schuster / DFRWS 2008 20
threads, modules, files, network connections)
2008-08-12 Andreas Schuster / DFRWS 2008 21
“EPROCESS overwrites EPROCES”
“ETHREAD overwrites EPROCESS”
(buddy algorithm by Donald E. Knuth))
2008-08-12 Andreas Schuster / DFRWS 2008 22
2008-08-12 Andreas Schuster / DFRWS 2008 23
“Acquiring Volatile Operating System Data – Tools and Techniques”
2008-08-12 Andreas Schuster / DFRWS 2008 24
2008-08-12 Andreas Schuster / DFRWS 2008 26