volatility内存取证--一些技巧
- 猜测镜像系统
volatility -f Memory.vmem imageinfo
在支持的系统里可以看到
知道系统后,之后的命令都加上系统即可
例如:
volatility -f Memory.vmem imageinfo --profile=Win81U1x86
- 调出shell窗口
volatility -f Memory.vmem --profile=Win81U1x86 volshell
可以测试你猜测的系统是否正确,正确的话就能getshell
shell的命令:dt(“内核关键数据结构名称”)
如:dt("_PEB")
- 列举进程
volatility -f Memory.vmem --profile=WinXPSP2x86 pslist
可以看到PID、PPID、启动的时间。
*以下几个相似的命令:
pstree
与pslist差不多,但可以识别子进程以及父进程
psscan/psxview
显示出被隐藏的进程,比如一些隐藏自己的病毒
modules
查看内核驱动
modscan或driverscan
隐藏的内核驱动
dlllist
每个进程(程序)运行所需要的所有动态链接库,即路径
- 将内存中的某个进程保存出来
以dmp格式保存
volatility -f Memory.vmem --profile=WinXPSP2x86 memdump -p [PID] -D [dump 出的文件保存的目录]
*其中memdump可以换成procdump,就可以提取出进程
同时支持输入 --offset 地址的方式来提取一些无法从pid提的进程
- 列举缓存在内存的注册表
volatility -f Memory.vmem --profile=Win81U1x86 hivelist
- 导出注册表
volatility -f Memory.vmem --profile=Win81U1x86 hivedump -o 注册表的 virtual 地址
- 列出SAM表中的用户
Volatility -f Memory.vmem --profile=Win81U1x86 printkey -K “SAM\Domains\Account\Users\Names”
- 获取最后登录系统的用户
volatility -f Memory.vmem --profile=Win81U1x86 printkey -K “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”
- 获取内存中正运行的程序
volatility -f Memory.vmem --profile=Win81U1x86 userassist
- 列举时间线
volatility -f Memory.vmem --profile=Win81U1x86 timeliner
- 查看开启的windows服务
volatility -f Memory.vmem --profile=WinXPSP2x86 svcscan
- 从内存中获取密码哈希
volatility -f Memory.vmem --profile=WinXPSP2x86 hashdump -y (注册表 system 的 virtual 地址 )-s(SAM 的 virtual 地址)
该命令能从内存中获得密码hash
但同样我们需要先知道SAM和system的地址
sam表和system表的地址可以根据前面hivelist列出
- 扫描电脑中的文件
volatility -f Memory.vmem --profile=WinXPSP2x86 filescan
- 导出列举的文件
dumpfiles -Q 地址 –D 路径
地址就是上面的0x00000000那堆
- 提取 cmd 命令使用情况
volatility -f 内存镜像.dd --profile=WinXPSP2x86 cmdscan
cmdline 看详细情况
- 获取到当时的网络连接情况
volatility -f 内存镜像.dd --profile=WinXPSP2x86 netscan
*可以发现xp系统不支持netscan,但一般题目也不会出xp
- 获取 IE 浏览器的使用情况
volatility -f 内存镜像.dd --profile=WinXPSP2x86 iehistory
*如果没有显示说明没有记录
目前不管是美亚还是弘连都有专门分析内存镜像的小程序,操作方便,图形化界面看着也舒服,可能再特殊的方面才会用到这个volatility。
以上都是很久以前的笔记了,整理一下放在这里,若有不对还请指正!!

浙公网安备 33010602011771号