从mstsc缓存恢复图像

  • A+
所属分类:安全文章

点击蓝字

从mstsc缓存恢复图像

关注我们



声明

本文作者:rebootORZ

本文字数:1500

阅读时长:15~ 20分钟

附件/链接:点击查看原文下载

本文属于【狼组安全社区】原创奖励计划,未经许可禁止转载


由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,狼组安全团队以及文章作者不为此承担任何责任。

狼组安全团队有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经狼组安全团队允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。



前言


之前在网上看到有关mstsc缓存能泄露敏感信息的文章,偶然进行复现,发现还有更简便的方法,这里进行简要记录。


一、

前置知识

BMChache


a. BMChache全称RDP Bitmap Chache,即RDP(远程桌面协议)位图缓存。是Windows为了加速RDP连接时的显示,减少数据量的传输,改善RDP连接体验的一种缓存机制。


b. 这个技术是微软用来解决网络延迟带来的远程桌面卡顿问题的,该技术采用的是图块的形式,当进行RDP连接后,会将画面以位图的形式在本地进行存储,需要知道的是,一个画面并不是只有一张,而是分为多个,例如分成多个常见的64px*64px的位图,当用户进行操作时,只对发生改变的地方进行画面的更新,也就是说从目标那里重新获取这个位置的位图,从而降低了对带宽的消耗。


c. 这个存储是持久化存储,不会因为会话的结束而消失,所以这个技术其实在windows取证方面也是很有用的。


1. 位图缓存选项可以由用户配置是否开启,可以打开远程桌面连接程序查看
从mstsc缓存恢复图像2. 位图缓存只存在与远程连接的客户端系统中,而不是服务端系统中。

二、

BMC缓存分析

路径


高版本系统(例如win10)


%USERPROFILE%\AppData\Local\Microsoft\Terminal Server Client\Cache\


从mstsc缓存恢复图像低版系统


%USERPROFILE%\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache\

文件头

使用010Editor打开文件,前20个字节分别对应:

35 60 D1 10 F1 0B 41 BF —— 图像hash40 00 —— 宽度40 00 —— 高度00 10 00 00 —— 大小(字节)11 00 00 00 —— 是否压缩

从mstsc缓存恢复图像通过文件头知道高度、宽度都是0x40,所以大小就是6464 = 8192 字节,图像的位深度:24 = 8,说明每一个像素需要1个字节来存储,则这个区块的大小就是64641=8192字节。后面的操作就是将内容提取出来后拼接BMP图像头导出成bmp图像即可。


三、

工具分享

上面的操作中,这里需要对bmp图像的格式有了解 ,且如果是手工进行操作的话其实很麻烦,例如你可能会发现恢复后的图像有非常多,一个个找无非大海捞针,还需要自行进行拼接。。
从mstsc缓存恢复图像这里推荐三个老外的项目进行配合使用,可以省时省力,项目地址:


bmc-tools: https://github.com/ANSSI-FR/bmc-tools


RdpCacheStitcher: https://github.com/BSI-Bund/RdpCacheStitcher


BMC Viewer:https://github.com/0xTowel/BMC-Viewer-Backup


bmc-tools

这个脚本的作用就是帮助我们从缓存中将bmp图像提取出来,但是这个提取的结果不方便查看,有时候脚本还会报错
从mstsc缓存恢复图像


RdpCacheStitcher

利用AI技术将这些bmp图片进行拼凑,你可以理解为拼图。。然后就可以看到完整图像了。但实际用的时候并不方便,因为图片很多,而他并不是自动完成所有工作的,而是需要你断点击窗口上的"autoplace",所以实际上他更像是一个拼图的平板,提供一个让你在上面拼图的地方而已。


首先是导入使用bmc tools提取出的bmp图像目录:
从mstsc缓存恢复图像选中任意一张图片后再点击上面任意一个方格,然后不断点击“Autoplace”进行图片的拼凑:


但是显然这样很慢。。
从mstsc缓存恢复图像


BMC Viewer

对缓存目录下的.bmc文件进行解析还原出图像,和bmc-tools差不多,只不过用起来感觉这个更方便图片大一点直接能看清内容,脚本的话有时候会报错。
从mstsc缓存恢复图像


从上图可以看出来,这个工具用起来比较简单方便,图像的展示虽然并没有进行拼接,但是基本上如果有敏感数据的话也能看到个大概,相对于前面的人工去还原和前两个工具而言,还是比较好用的。




后记



总的来说,这个利用手段其实还是比较鸡肋的,当然对于电子取证来说肯定还是很有用的,包括蓝军的溯源时也可以用来进行辅助分析,但是要用来红队工作中使用还是有点力不从心。




作者



从mstsc缓存恢复图像

rebootORZ

雪压枝头低,虽低不着泥。一朝红日出,定要与天齐。


扫描关注公众号回复加群

和师傅们一起讨论研究~


WgpSec狼组安全团队

微信号:wgpsec

Twitter:@wgpsec


从mstsc缓存恢复图像
从mstsc缓存恢复图像


本文始发于微信公众号(WgpSec狼组安全团队):从mstsc缓存恢复图像

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: