内存取证基础——windows
Windows 内存取证核心命令与实战全书
系统信息识别
在正式敲入复杂命令前,确认镜像类型和提取基础信息是重中之重。
核心实战法则
工具选择策略:非 Windows 10 镜像可直接使用
Vol_all_in_one进行一键自动化分析,极大提高效率。Vol3 的不可替代性:面对 Windows 10 的内存镜像,Vol2 的某些功能(如系统识别、特定进程抓取)可能会失效,此时必须切换至 Volatility 3(如:2023 安洵杯 dacongのWindows)。
黄金线索点:取证过程中一定要记得优先查看镜像桌面上的文件!
系统信息获取命令
Vol2 识别操作系统信息:
vol.py mem.dump imageinfoVol3 识别内存系统版本:
vol3.py -f dacong.raw banners.Banners(注意:有时 Vol3 识别不出,但 Vol2 可以,两者需互补使用)。
进程与服务分析
寻找异常程序、隐藏进程和恶意服务的核心环节。
进程全景扫描
- Vol2 查看基础进程:
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 pslist - Vol3 查看基础进程:
vol3.py -f dacong.raw windows.pslist - Vol2 查看隐藏/解链进程(进程树):
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 pstree - Vol3 查看进程树:
vol3.py -f dacong.raw windows.pstree
进程深度提取与服务探测
- Vol2 爆破提取指定进程:
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 memdump -p 3036 --dump-dir=./(通过 PID 导出.dmp文件进行后续分析)。 - Vol2 扫描镜像服务:
vol.py --plugins=/home/kali/volatility/volatility/plugins -f mem.raw --profile=Win7SP1x64 svcscan
文件系统遍历与数据榨取
从海量内存碎片中精准定位并提取关键文件。
文件全局扫描
- Vol2 扫描进程缓存文件:
vol.py -f memory.raw --profile=Win7SP1x64 filescan - Vol3 扫描镜像文件:
vol3.py -f dacong.raw windows.filescan
过滤与精准定位技巧
- Vol2 查找特定后缀文档:
vol.py -f example.raw --profile=Win7SP1x64 filescan | grep -E 'txt|png|jpg|gif|zip|rar|7z|pdf|doc' - Vol2 查找指定文件夹内容:
volatility -f example.raw --profile=Win7SP1x64 filescan | grep TMP_User - Vol3 快速定位桌面文件:
vol3.py -f dacong.raw windows.filescan | grep Desktop
文件物理提取与恢复
- Vol2 爆破提取文件内容:
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007e410890 --dump-dir=./ - Vol3 根据虚拟地址提取文件:
vol3.py -f mem.raw windows.dumpfiles --virtaddr="0x0000e0007ad17f20" - Vol2 恢复被删除的文件:
vol.py -f 1.vmem --profile=Win7SP1x64 mftparser
命令行、环境变量与网络状态
还原黑客的终端操作和网络后门连接特征。
终端指令与环境排查
- Vol2 扫描进程环境变量:
vol.py -f memory.raw --profile=Win7SP1x64 envars - Vol2 扫描进程命令行参数:
vol.py -f memory.raw --profile=Win7SP1x64 cmdscan - Vol2 扫描命令行记录:
vol.py -f memory.raw --profile=Win7SP1x64 cmdline - Vol3 扫描命令行记录:
vol3.py -f dacong.raw windows.cmdline
网络连接与流量分析
- Vol2 查看网络连接状态(基础):
vol.py -f memory.raw --profile=Win7SP1x64 connscan - Vol2 扫描网络端口与连接:
vol.py --plugins=... -f mem.raw --profile=Win7SP1x64 netscan - Vol2 提取详细网络连接:
vol.py --plugins=... -f mem.raw --profile=Win7SP1x64 connections - Vol3 查看网络与端口占用:
vol3.py -f dacong.raw windows.netscan - Vol3 详细网络状态统计:
vol3.py -f dacong.raw windows.netstat - Vol2 搜索内核网络流量包信息:
vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 ndispktscan
用户凭证与注册表挖掘
获取系统控制权与核心配置参数的必经之路(注:注册表功能通常 Vol2 表现更优)。
注册表键值读取
- Vol2 查看注册表配置单元:
vol.py -f memory.raw --profile=Win7SP1x64 hivelist - Vol3 扫描注册表配置单元:
vol3.py -f dacong.raw windows.registry.hivelist - Vol2 查看注册表键名:
vol.py -f memory.raw --profile=Win7SP1x64 hivedump -o 0xfffff8a001cce010 - Vol2 查看注册表键值:
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 printkey - Vol3 扫描注册表键值:
vol3.py -f dacong.raw windows.registry.printkey
用户账户与密码获取
- Vol2 提取当前镜像用户列表:
vol.py --plugins=... -f mem.raw --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names" - Vol2 提取用户 NTLM/LM Hash:
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 hashdump - Vol2 使用 Mimikatz 提取明文密码:
vol.py --plugins=... -f mem.dump --profile=Win7SP1x64 mimikatz
行为轨迹与图形界面还原
直接重现用户操作的历史痕迹和屏幕画面。
界面与剪贴板审查
- Vol2 获取系统屏幕截图:
vol.py -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./ - Vol2 导出 Windows 窗口信息:
vol.py -f 1.vmem --profile=Win7SP1x64 windows - Vol2 查看剪贴板简略信息:
vol.py -f 1.vmem --profile=Win7SP1x64 clipboard - Vol2 查看剪贴板详细内容:
vol.py -f 1.vmem --profile=Win7SP1x64 clipboard -v
文本记录与应用历史
- Vol2 查看浏览器历史记录:
vol.py -f 1.vmem --profile=Win7SP1x64 iehistory - Vol2 显示编辑控件信息(输入框):
vol.py -f 1.vmem --profile=Win7SP1x64 editbox - Vol2 查看记事本展示内容:
vol.py -f 1.vmem --profile=Win7SP1x64 notepad - Vol2 查看程序运行记录(最后更新/运行次数):
vol.py -f 1.vmem --profile=Win7SP1x64 userassist - Vol2 全局最大化提取时间线信息:
vol.py -f 1.vmem --profile=Win7SP1x64 timeliner
恶意软件检测与高级取证分析
针对无文件攻击、注入、外设异常等高级威胁的排查。
模块注入与木马检测
- Vol2 扫描进程动态库 (DLL) 列表:
vol.py -f memory.img --profile=Win2003SP1x86 dlllist - Vol2 扫描未链接/隐藏模块:
vol.py -f memory.img --profile=Win2003SP1x86 ldrmodules - Vol2 扫描注入代码与恶意软件:
vol.py -f memory.img --profile=Win2003SP1x86 malfind - Vol2 基于 VolDiff 的恶意软件检测:
vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 voldiff
硬件与加密设备
- Vol2 获取 USB 历史连接信息:
vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 usbstor - Vol2 提取 Bitlocker 加密密钥:
vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 bitlocker
特殊进程与疑难文件处置技巧
常规命令失效时的高阶实战策略。
经典特殊进程破解
- 画图进程 (
mspaint.exe):使用memdump导出 dmp 文件,修改后缀为.data。随后拖入 GIMP 软件中,通过调整位移和分辨率来还原图像。在提取前使用screenshot获取截图信息,有助于提前确立屏幕分辨率参数。此方法同样适用于其他涉及图形渲染的进程(例:2024 NKCTF)。 - 便签进程 (
StikyNot.exe):在路径C:\Users\XXX\AppData\Roaming\Microsoft\Sticky Notes\提取出对应的.snt文件。该文件无法直接阅读,必须导入 Win7 原生便签环境或强制使用记事本打开。 - 联系人进程 (
wab.exe):在文件中重点搜索.contact后缀的文件并提取。
疑难文件强制提取
- 系统日志排查:重点搜索并导出后缀为
.evtx的 Windows 系统日志文件。 - 数据文件导出报错 (
.dat等):如果 Vol2 提取失败,可以加上-u参数绕过。示例命令:volatility -f mem.data dumpfiles -r pdf$ -i --name -D dumpfiles/ -u。如果 Vol2 依然无法提取但 Vol3 可以时,直接换用 Vol3;如果两者均失效,可挂载镜像使用R-Studio强行提取。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小chen妙妙屋!
评论
