电子取证
使用dumpit工具将计算机内存镜像保存。并生成raw文件格式文件。
检测镜像文件基本信息
volatility -f 2008.raw imageinfo
检测进程列表及物理内存位置
volatility -f 2008.raw –profile=Win2008R2SP1x64 pslist
产看进程树,可以轻松了解各进程之间的关系:父进程与子进程
volatility -f 2008.raw –profile=Win2008R2SP1x64 pstree
蜂巢:
在注册表中,有根文件夹。这些根文件夹被称为蜂巢。 以下是5个注册表的配置单元:
注册表结构:
注册表由键、子键和值项构成,一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。通常,值是0或1,意味着开或关,也可以包含通常以十六进制显示的更复杂的信息。
注册表信息取证价值:
对于计算机取证人员来说注册表无疑是块巨大的宝藏。通过注册表取证人员能分析出系统发生了什么,发生的时间以及如何发生的等。
查看注册表蜂巢文件
volatility -f 2008.raw –profile=Win2008R2SP1x64 hivelist
按虚内存地址来查看注册表内容(计算机是使用虚地址【virtual】寻址的)
通过dump software的虚内存起始地址可以查看电脑上的所有软件的注册表信息
volatility -f 2008.raw –profile=Win2008R2SP1x64 hivedump -o 0xfffff8a0005fc410
如果想查看SAM表结构需要右键SAM给管理员增加权限,默认情况下管理员没有查看权限
高级—设置继承权限(子项可以继承父项的权限)
SAMDomainsAccountUsersNames 这就是用户账号的物理位置
使用volatlity查看当前内存镜像中的用户
volatility -f 2008.raw –profile=Win2008R2SP1x64 printkey -K “SAMDomainsAccountUsersNames”
查看最后登录的用户
volatility -f 2008.raw –profile=Win2008R2SP1x64 printkey -K “SOFTWARE
MicrosoftWindows NTCurrentVersionWinlogon”
提取hash
volatility -f 2008.raw –profile=Win2008R2SP1x64 hashdump -y <system> -s <SAM>
<system>使用system键值的虚地址
<SAM>使用SAM键值的虚地址
0xfffff8a000024010 0x000000000210e010 REGISTRYMACHINESYSTEM
0xfffff8a0005e2010 0x00000000390fe010 SystemRootSystem32ConfigSAM
volatility -f 2008.raw –profile=Win2008R2SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a0005e2010
查看正在运行的程序、运行过多少次、最后一次运行时间等。
volatility -f 2008.raw –profile=Win2008R2SP1x64 userassist
当前内存中运行的程序一共2704个,后面只截取了其中的notepad、explorer两个程序信息。
dump进程ID为2900的进程数据,并将其保存到mem目录下
explorer.exe 2900
volatility -f 2008.raw –profile=Win2008R2SP1x64 memdump -p 2900 -D mem/
memdump将与explorer.exe 相关的内存全部dump下来保存在2900.dmp中。
使用hexediter查看dump生成的dmp文件数据
hexeditor mem/2900.dmp
查看内存中的字符串
strings 2900.dmp | more
也可以将字符串全部导出txt
strings 2900.dmp >> 2900.txt
提取关于password的字符串
strings 2900.dmp | grep password
提取关于@的字符串
strings 2900.dmp | grep @
查看命令行历史
volatility -f 2008.raw –profile=Win2008R2SP1x64 cmdscan
可以看到最近DumpIt.exe程序调用cmd命令执行
查看网络连接
volatility -f 2008.raw –profile=Win2008R2SP1x64 netscan
查看IE的历史信息
volatility -f 2008.raw –profile=Win2008R2SP1x64 iehistory
从多个位置搜集系统活动信息
volatility -f 2008.raw –profile=Win2008R2SP1x64 timeliner
查看已经建立的连接(可以用于发现反弹连接)connscan只支持32位系统
volatility -f 2008.raw –profile=Win2008R2SP1x64 connscan
Firefoxhistory 插件
– http://downloads.volatilityfoundation.org/contest/2014/
DaveLasalle_ForensicSuite.zip
– /usr/lib/python2.7/dist-packages/volatility/plugins/
volatility -f 2008.raw –profile=Win2008R2SP1x64 firefoxhistory
▪ USN日志记录插件
– NTFS特性,用于跟踪硬盘内容变化(不记录具体变更内容)
usnparser.py
volatility -f 2008.raw –profile=Win2008R2SP1x64 usnparser –output=csv –outputfile=usn.csv
Volatility插件
内存取证发现恶意软件
– https://github.com/volatilityfoundation/volatility/wiki/Memory-Samples
– https://code.google.com/archive/p/volatility/wikis/
SampleMemoryImages.wiki
内存取证发现恶意软件
– XP 建立 meterpreter session 后dump ٖ内存分析
– volatility -f xp.raw –profile=WinXPSP3x86 pstree
– volatility connscan 网络连接
– volatility getsids -p 111,222 # SID
– volatility dlllist -p 111,222 # 数量
– volatility malfind -p 111,222 -D mem/ #检查结果查毒