# 内存取证
# volatility 使用:
# 获取内存镜像的摘要信息
1
| volatility -f mem.raw imageinfo
|
![image-20201102135222699]()
判断系统版本应该是 Win7SP1x64
# 查看进程信息
pslist 可以直接列出运行的进程,如果进程已经结束,会在 Exit 列显示日期和时间,表明进程已经结束
1
| volatility -f mem.raw --profile=Win7SP1x64 pslist
|
![image-20201102141316628]()
# 查看隐藏进程
1 2
| volatility -f mem.raw --profile=Win7SP1x64 pstree volatility -f mem.raw --profile=Win7SP1x64 psxview
|
![image-20201102154603111]()
# 列举缓存在内存的注册表
1
| volatility -f mem.raw --profile=Win7SP1x64 hivelist
|
![image-20201102150810232]()
# 提取主机名
1
| volatility -f mem.raw --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
|
![image-20201115091150119]()
# 提取自启动项
![image-20201115091434803]()
提取内存中保留的 cmd 命令使用情况
1
| volatility -f name --profile=WinXPSP2x86 cmdscan
|
获取到当时的网络连接情况
1
| volatility -f name --profile=WinXPSP2x86 netscan
|
# 提取 ip 地址和主机名
1
| volatility -f name --profile=WinXPSP2x86 netscan | grep ESTABLISHED
|
userassist 键值包含系统或桌面执行文件的信息,如名称、路径、执行次数、最后一次执行时间等
1
| volatility -f name --profile=WinXPSP2x86 userassist
|
# 获取 SAM 表中的用户 :
1
| volatility -f mem.raw --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
|
![image-20201102152225937]()
显示每个进程的加载 dll 列表
1
| Volatility -f name -profile = Win7SP0x86 dlllist> dlllist.txt
|
# 扫描内存中的文件
1
| volatility -f mem.raw --profile=Win7SP1x64 filescan
|
![image-20201102151129039]()
- filescan 也可以结合 grep 命令来进行筛选,比如
1 2
| volatility -f mem.raw --profile=Win7SP1x64 filescan | grep "doc\|docx" volatility -f mem.raw --profile=Win7SP1x64 filescan | grep "flag"
|
![image-20201102151359619]()
![image-20201203173328344]()
# 提取 flag 值
1
| volatility -f mem.raw --profile=Win7SP1x64 dumpfiles -Q 0x07f1b6c10 --dump-dir=./
|
![image-20201203174024646]()
![image-20201203174048410]()
# 提取内存中保留的 cmd 命令使用情况
1
| volatility -f mem.raw --profile=Win7SP1x64 cmdline
|
![image-20201102151626278]()
# 提取出内存中记录的 当时正在运行的程序
1
| volatility -f mem.vmem --profile=Win7SP1x64 userassist
|
![image-20201102152650474]()
# 提取网络连接情况
1
| volatility -f mem.raw --profile=Win7SP1x64 netscan
|
![image-20201102153001736]()
# 提取 IE 浏览器历史
1
| volatility -f mem.raw --profile=Win7SP1x64 iehistory
|
# 提取系统密码(hashdump)
直接 hashdump
1
| volatility -f mem.raw --profile=Win7SP1x64 hashdump
|
![image-20201102154219862]()
- 注册表 system 的 virtual 地址
- SAM 的 virtual 地址
![image-20201102153454213]()
1 2
| volatility -f mem.vmem --profile=Win7SP1x64 hashdump -y (注册表 system 的 virtual 地址 )-s (SAM 的 virtual 地址) volatility -f mem.vmen --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a000867010
|
![image-20201102153714379]()
# 提取迁移后的进程编号
1
| volatility -f mem.raw --profile=Win7SP1x64 malfind -p
|
# 提取开机自启项的 Virtual 地址
1 2
| volatility -f mem.raw --profile=Win7SP1x64 printkey -K "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" volatility -f mem.raw --profile=Win7SP1x64 printkey -K "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
|