0x00 已知条件
题目给出了一个VMware的虚拟机内存快照文件“mem.vmem”和一个不知道什么的“suspicion”文件。
同时还提示有“取证神器”这么个东西。
0x01 思考过程
- 第一次接触此类问题,首先搜索了一下CTF取证类问题的基本思路,找到了应对内存镜像分析的“Volatility”这个工具。
内存镜像分析
多年来计算机取证经常被看作是文件系统取证,但当攻击者们越来越熟练时,它们开始避开硬盘进行攻击。同时内存快照由于保存了实时环境(系统设置、远程脚本、密码、密钥等)这些无法在硬盘上找到的线索。所以内存快照/镜像取证是这些年事故响应中越来越多的方法。在CTF竞赛中,你可能会遇到提供一个内存镜像文件,并让你从中定位和提取一个隐藏文件或信息的题目。
用于内存镜像分析的主流开源框架是Volatility,Volatility是一个支持解析外部工具采集的内存奖项(例如VM采集的VMware内存镜像)的Python脚本。在提供内存镜像文件和相关资料(从镜像中获取的系统)后,Volatility能够开始识别数据的结构,运行进程,密码等资料。它还支持提取多种信息的人工插件拓展功能。
- 装好Volatility,查看所有进程,发现最下面有个TrueCrypt.exe。搜索发现是个磁盘、硬盘加密工具,那个“suspicion”文件多半就是经TrueCrypt加密过后的文件,下面试着破解。
- 本地已有的破解环境有oclhashcat,本着最简便的做法打算直接用它尝试破解。
-
既然如此,首先得把suspicion文件的相关内存dump出来,用Volatility即可完成。将TrueCrypt.exe进程(PID 2012)dump出来,结果文件为2012.dmp。
- 然而oclhashcat中TrueCrypt的hash类型组合众多,如下。且并不知道具体的类型,尝试起来需要大量时间,更不知道密码位数(这才是关键吧喂),放弃。
- 搜索TrueCrypt的专门破解工具。前面找到的大多是基于暴破加字典的方法,时间成本同样很高,暂不考虑。最后发现了Elcomsoft Forensic Disk Decryptor,据称破解速度很快(自行寻找破解版软件)。
- 那么下面就是使用工具了。而且它还有直接解锁/挂载硬盘的选项,更加方便。
- 接下来选择要破解的文件(suspicion)和内存dump文件(即上面的2012.dmp)即可。最终结果如下:
BEGIN KEYS SEARCH
Progress: 100% [ 89 of 89 MB]
END SEARCHING
Time: 9 seconds.
Search result:
Algorithm: 'TrueCrypt' Volume Master Keys
Key data (hex): 030000006daa0cef6be318bd75080ec053287f74bcacad0ed9636a058388048263c1799333ab2b30fc0cc872f31bad043be78119ff4fd2960fc6203c70697059544326930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e1c11ec5cfcd0921a21fb083ba9b7c5f6ac12518526001fad6bfafa114bbd6c5dddbc41923571d685d95a968bed6693541cc4d95831745aaa49b842612ce32400000000000002000000000000003c0100000000
- 最后直接挂载,本地多出挂载的卷,找到目标。