使用Volatility解决CTF取证类题目
这段时间做CTF遇到了个内存取证的题目,由于工具用的不熟练,最后没及时做出来,赛后整理整理Volatility的常用命令。
1. Volatility 常用命令
1.1 imageinfo
通过这个命令来获取内存镜像的摘要信息,比如OS,Service Pack和硬件架构等,个人认为这个命令最主要的作用是给进一步分析指明profile
,也就是使用其他插件时加载的配置文件。
1 |
|
可以使用--info
参数来查看Volatiliity已经添加的profile和插件等信息。
1.2 kdbgscan
kdbgscan
这个插件可以扫描文件的profile的值,通常扫描结果有多个,只有一个结果完全正确。kdbgscan和imageinfo
仅适用于Windows内存镜像。
1 |
|
1.3 pslist
pslist
可以用来列出运行的进程。如果Exit所在的一列显示了日期时间,则表明该进程已经结束了。
1 |
|
1.4 hivelist
hivelist
可以用来列举缓存在内存中的注册表。
1 |
|
1.5 filescan
filescan
可以扫描内存中的文件
1 |
|
1.6 dumpfiles
dumpfiles
可以将内存中的缓存文件导出
1 |
|
以上只是一些基本操作,具体可以查阅官方手册
https://github.com/volatilityfoundation/volatility/wiki/Command-Reference
2. CTF案例
2.1 JarvisOJ 取证题
题目下载地址
1 |
|
解压之后得到两个文件,其中一个是vmem文件,使用volatility进行分析。
使用pslist列举运行中的进程,发现有TrueCrypt.exe,而且没有退出。
推测题目所给的另一个文件是使用TrueCrypt进行加密了的。进程没有退出,那么加密的密钥有可能就在进程中,将该进程作为文件导出。
然后使用Elcomsoft Forensic Disk Decryptor进行解密,首先在导出的内存镜像中搜索key.
因为是文件,选择TrueCrypt(container)。
选中待解密文件和dmp镜像,软件会自动寻找key,然后将key保存。
使用保存的key对文件进行解密,然后挂载即可获得flag。
2.2 护网杯2018-Misc-Easy_dump
题目下载地址
1 |
|
是一个img文件,使用volatilty进行分析。
1 |
|
使用pslist查看进程。
1 |
|
有一个DumpIt.exe,使用memdump命令将其dump出来。
1 |
|
使用foremost进行分析,发现有个压缩包,解压后获得一个message.img
file命令检测一下,发现是ext2文件系统数据。
使用DiskGenius打开message.img。找到一个vim的swp文件,
使用vim -r
命令恢复,得到一段字符串
1 |
|
在磁盘目录中找到一个hint.txt。
看起来很像坐标点,使用python的PIL库画出来。
1 |
|
扫描一下,
1 |
|
维吉尼亚密码,在线解码即可
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!