volatility的基本操作
获取内存镜像的基本信息:
volatility -f memory.raw imageinfo
获取内存镜像的基本情况后,可以进一步获取信息,以Win7SP1x86为例:
查看进程信息:
volatility -f memory.raw --profile=Win7SP1x86 pslist
查看文件:
volatility -f memory.raw --profile=Win7SP1x86 filescan
导出文件:
volatility -f memory.raw --profile=Win7SP1x86 dumpfiles -Q {address} --dump-dir=./
查看命令行历史:
volatility -f memory.raw --profile=Win7SP1x86 cmdline
查看注册表:
volatility -f memory.raw --profile=Win7SP1x86 hashdump
其他操作不一一列举
练习步骤
步骤1:获取内存镜像的版本
首先使用imageinfo命令来获取当前内存镜像对应的系统版本,其中-f后面的为镜像地址,将其指定为要分析的镜像地址即可
一般来说前两个候选项都有可能,Win7更常见一点,因此我们尝试使用Win7SP1x64来进行后面的操作,如果结果不对可以尝试第一个Win2008。
步骤2:进行文件搜索
进行内存取证主要要寻找一些目标文件,在CTF竞赛中常见的就是,flag或hint字样的文件,因此我们使用filescan来扫描并用grep进行结果过滤
这里的完整grep命令为:
grep -E "flag|hint",-E参数表示用正则表达式来进行匹配,后面的"flag|hint"则是正则表达式
可以看到这里有一个hint.txt.txt,非常可疑
步骤3:导出可疑文件并进行查看
利用dumpfiles功能,我们可以对文件进行导出
其中-Q参数的值为上图中,每行开头的值(即内存地址),-D参数为导出文件目录
用cat查看导出的文件,其含义是,flag就在桌面上,只要我们能够看到桌面,就能找到flag。
因此我们可以以Desktop为关键字进行文件扫描:
通过filescan命令来扫描Desktop,除了hint.txt.txt又没有什么可疑文件,可以联想到出题人很有可能把flag的图片替换了默认的壁纸,我们可以以Wallpaper(壁纸的英文)来进行文件搜索过滤。
步骤4:寻找壁纸的默认路径
这里依然使用filescan配合grep来过滤"Wallpaper"这个关键字
可以看到有个fl4g.png,可能是我们的目标文件,导出,重命名并使用图片编辑器查看:
导出的文件默认后缀名都是.dat,因此需要重命名
可以看到这就是我们要寻找的flag
flag为flag{memory_dump!}
实验结果分析与总结
本实验需要选手掌握volatility这一内存取证工具的基本操作,同时要有一定的发散思维,这样才能顺利的找到flag。
要有较强的搜索能力来寻找Windows桌面默认路径才能最终找到flag,因此要善于使用搜索引擎。
思考
请思考,对于黑客入侵的真实场景中,应该重点关注哪些信息?说说你的想法。
练习下载
https://static2.ichunqiu.com/icq/resources/exp_file/NU1L-CTF/Misc/5.zip
原文始发于微信公众号(钟毓安全):CTF内存取证练习[公众号回复内存取证获取练习]
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论