浅谈加密容器取证思路---以EncFSMP为例
软件介绍
这个工具可以帮助生成一个加密容器,并挂载磁盘。
相比于VC、TC,它的优势是不需要指定虚拟磁盘的大小。相反的,它要求的是一个文件夹,在文件夹中生成一个xml配置文件,虚拟磁盘中的文件会以加密后的形式保存在这个文件夹中。
虚拟磁盘挂载后,在此电脑的显示中,总容量和可用空间都与虚拟磁盘的文件夹所在磁盘一致,也就是说你可以不断往里面塞文件,直到把你实际的磁盘塞满为止。
而且当你需要传递某个文件时,不需要像VC、TC那样发送整个容器,或是将文件解密后再发送,你只需要将配置文件与需要的加密文件一起发送即可
软件新建虚拟磁盘的配置
还可以在内存中保存密码
分析
勾选保存密码
软件安装后,进入到软件的目录,发现没有其他文件
用everything
查找,也是没有额外文件的
使用RegScanner
扫描注册表,可以找到键值
双击某一条数据,可以自动跳转到对应的注册表项,此时就可以直接看到明文的密码(保存在NTUSER.DAT\SOFTWARE\hiesti.ch\EncFSMP\MountList\MountEntry
的Password
字段)。这适用于用户主动保存密码的情况,该密码可以用于字典攻击,或是日后取证大师等类似软件直接解密这个加密容器。
内存中寻找密码
经过几次简单的测试,该软件无论是否勾选在内存中保存密码,都是可以从内存中搜索到密码的,可能是它的逻辑有问题。勾选此项时,在软件未退出时,只需要输入一次密码即可随意挂载卸载;未勾选时,每次挂载都需要输入密码
利用任务管理器dump内存
在dump出的内存里搜索自己设置的密码,这里列举一些测试数据,可以发现特征0200000000xx00000000000000password
,其中xx
表示密码的长度,最后跟着的就是密码,然而这仅限于密码小于16位的情况,也就是说xx
的最大值是0f
当密码的长度大于15位时,就不满足这个规则了
但是值得注意的是,当密文超过15位时,我们可以用strings工具来查看是否存在连续的字符串,然后尝试解密,其实是相当于打字典攻击了
结语
对加密容器的取证分析,主要就是2个方面。第一是加密容器的判断,第二是加密容器的解密。
以本次的样本为例,在判断加密容器时,可以寻找某个目录是否包含.encfs6.xml
文件
亦可以直接查找注册表NTUSER.DAT\SOFTWARE\hiesti.ch\EncFSMP\MountList\MountEntry
,但是需要注意该软件可以在列表中移除容器,此时注册表相关字段会被删除,因此还是直接判断文件准确率更高。
寻找容器的解密密码时,可以从软件的注册表、配置文件等方面入手,再一个就是对内存下功夫,从内存中寻找密码或是密钥。
当然本次的样本由于是较为小众的加密软件,安全性做的可能不是很好,但也可以提供思路。