volatility内存取证分析与讲解

  • 0x01 volatility的安装
  • 0x02 基本使用
  • 0x03 取证实战(持续更新)
  • 0x04 总结


0x01 volatility的安装

本人暂时只使用windows下的volatility进行取证,安装方法如下:

volatility安装网址 进去之后,找到windows版本然后直接下载即可。

Windows内存位置镜像_Windows内存位置镜像


直接解压,就能用。

0x02 基本使用


1.volatility_2.6.exe -f .\Target.vmem imageinfo 查看镜像的基本信息。使用的时候可以将这个软件和需要取证的镜像放到一起。

Windows内存位置镜像_Windows内存位置镜像_02


volatility 建议当做 Win7SP1x64 的镜像,后面的参数使用–profile(两根横杠)



2.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 pslist 套神上说的,看完镜像直接查看这个镜像上有那些进程正在运行 pslist应该比较好理解就是进程的列表的意思。

Windows内存位置镜像_linux_03


tips:

psxview : 可查看一些隐藏进程

pstree : 以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程(套神说的)


3.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 cmdscan 查看镜像的历史命令,就是和linux中history差不多。

Windows内存位置镜像_Windows内存位置镜像_04

这个镜像好像没有,有的情况如下:

Windows内存位置镜像_取证_05



4.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 consoles 这个会比上面那个更好一些,能看到指令的输入和输出。

Windows内存位置镜像_volatility_06



5.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 cmdline

此指令将会列出所有命令行下运行的程序

Windows内存位置镜像_取证_07



6.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 privs 显示进程权限

Windows内存位置镜像_取证_08



7.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 envars 显示环境变量

Windows内存位置镜像_ctf_09


8.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 filescan 9.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 filescan | grep "flag" 10.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 filescan | grep -E “png” 直接扫文件,第二个比较重要,可能要直接找flag文件。



11.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 dumpfiles -Q [PID] -D ./ 通过相应的进程能直接dunp出相关的文件。

Windows内存位置镜像_volatility_10



12.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 editbox 查看系统正在运行的编辑本


13.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 dumpregistry --dump-dir=./registry/

导出系统的注册表


14.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 screenshot -D ./

查看并导出屏幕的截屏【需要安装PIL库】


15.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 clipboard

查看剪贴板数据,加一个-v可以导出相关的数据。

Windows内存位置镜像_取证_11



16.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 iehistory 查看浏览器的历史记录,本地文件也一样。

Windows内存位置镜像_ctf_12



17.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"查看用户名

Windows内存位置镜像_取证_13



18.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 打印出最后登录的用户

Windows内存位置镜像_取证_14



19.volatility_2.6.exe -f .\Target.vmem --profile=Win7SP1x64 hashdump 获取各个账号的MD5加密密码,涛神这里是使用hivelist找出获取system 的 virtual 地址,SAM 的 virtual 地址,然后在使用hashdump -y SYSTEM_virtual -x SAM_virtual.

Windows内存位置镜像_volatility_15


直接hashdump的


Windows内存位置镜像_linux_16



20.python2 vol.py -f pc.raw --profile=Win7SP1x64 screenshot -D ./7DAS/ [linux中]

导出截图

Windows内存位置镜像_volatility_17



21.python2 vol.py -f pc.raw --profile=Win7SP1x64 mimikatz [linux中]

插件取密码,直接爆破出用户密码。

Windows内存位置镜像_取证_18

这次先更新到这里。

0x03 取证实战(持续更新)

第六届蓝帽杯取证 (VOL+取证大师).

0x04 总结

常规取证思路大多如此,涉及到深入的攻击流量取证或则计算机内部的一些东西那就要看个人知识广度了。