写在前面

这道题最重要的考点应该是win10内存提取bitclocker密钥,正巧出这题的时候遇到雷电三的接口漏洞,可以通过DMA直接读取内存。这也算是一个简易的实战相关了吧。
这个漏洞是一个历史遗留问题,早在win10 1511版本就已经出现雏形了,那时候是所有接口都有这个问题,不过后来被微软修补。
详细的文章可以参考这个,还有更多攻击bitclocker密钥的姿势(时间关系,文章内介绍的有部分已经被微软修复)

https://articles.forensicfocus.com/2016/03/23/bitlocker-whats-new-in-windows-10-november-update-and-how-to-break-it/#respond

这次的几个漏洞之间,最奇葩的是在Mac电脑上安装Windows/Linux系统后,Mac硬件会禁用雷电芯片的所有安全防护措施,直接把安全等级下调到SL0(无防护)。mac高危用户自己注意吧...

我的预期解出队伍应该是6队左右,没想到只有4解,稍有点意外。好像很多人卡在win10内存的分析上面,这是我没想到的。

下面这张图是我出这道题时制作的导图。

Writeup

解压压缩包,发现两个文件,一个是内存,一个是kdbx格式的文件。可以搜索到kdbx是keepass软件生成的数据库,file命令检查发现是2.x版本

下载Keepass后打开Database.kdbx发现需要密码,猜测是在内存中提取

Vol分析镜像发现是win10的32位系统

通过vol的pslist插件查看到的确存在keepass的进程

貌似有的人vol2.6用不了,但kali自带的是可以的,实在不行也可以用2.6.1或者3.0

但是接下来的文件分析就无法使用vol取证了,需要用到取证大师或者其他同类软件。可以在数据恢复部分恢复出一个txt文档

strings也是可以的,直接strings得到的字符串作为字典就能解开

得到的密码就是keepass的解密密钥

顺利解开kdbx文件,发现提示main_key

可以发现这个密钥是保存了一个附件的,是一个kge文件,经过搜索可知是一种压缩格式,跟用户名kgb吻合,也跟题目背景吻合。

解压需要密钥,密钥位于keepass中,是kgb’s存储的密钥。(关于kgb解压软件等在内存中都能找到线索,不过不是关键信息就不赘述了)

Keepass鼠标右键就可以复制密码,得到密码后解压即可,可得虚拟磁盘vhdx

解压完成后在本地挂载,可以发现已经被bitclocker加密

分析内存文件我们无法找到明文保存的Bitclocker密钥,所以我们可以想到从内存中提取bitclocker的恢复密钥(恢复密钥是48位,与正常的解密密钥不同,是用来恢复忘记了的bitclocker密码的,只要在一个电脑上解锁过这个被bitclocker加密过的磁盘,就可以提取出来)
我们需要使用软件Elcomsoft Forensic Disk Decryptor,对vmem内存分析成功,发现bitclocker密钥. 但是不是明文的,我们将密钥数据保存到本地(默认为evk格式文件)

如果要得到明文密钥,我们需要先在本地挂载上vhdx,然后再使用管理员权限运行Elcomsoft Forensic Disk Decryptor 这样才能找到需要解密的虚拟磁盘

选择密钥文件为刚才保存的evk文件

破解出明文的bitclocker恢复密钥

使用密钥解开vhdx即可

得到两个文件,一个是flag.exe自解压文件,一个mark是提示,暗示了压缩包内的是畸形文件

解压时会提示重命名,简单解法是直接重命名文件为非Windows系统保留字即可。这里我们重命名为file

File命令或者binwalk等都可检测出是一张png图片,与题目描述呼应

直接打开发现flag

但是如果前面“不幸”没有重命名,直接确定替换,选了“是”的话。就会发现无法读取文件aux会报错,不能移动,不能删除,不能读取。但是仍然可以使用wsl或者cmder进行处理,比如重命名等,修改完后操作同上。
最好不要把flag解压在挂载后的vhdx里,因为wsl等无法直接进行挂载磁盘的处理,下次挂载的时候因为存在aux文件也会直接无法打开。


希望各位能喜欢这道题,相比其他题来说这道真的不难

Make forensics great again!