Windows 取证之BMChache

admin 2021年7月14日09:30:50评论106 views字数 3466阅读11分33秒阅读模式
Windows 取证之BMChache
原创稿件征集

邮箱:[email protected]
QQ:3200599554
黑客与极客相关,互联网安全领域里
的热点话题
漏洞、技术相关的调查或分析
稿件通过并发布还能收获
200-800元不等的稿酬
0x0、概述

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

0x1、什么是RDP Bitmap Chache

Remote Desktop Protocol(RDP)是微软从Windows NT 4.0开始为了用户能使用图形界面通过网络远程方式连接到另外一台计算机而开发的专有协议。

当年因为是拨号上网,网络带宽很低,便开发了Bitmap Chache这种技术,为了增强用户体验,降低带宽延迟,RDP连接后,会将显示的图像在客户端以位图的形式缓存下来,RDP会话会重用这些图像进行显示,而不是时刻都使用网络进行完整图像传输,而是只传输改变的部分,从而减少了延迟。虽然现在网络带宽已经得到很大的提升,但这一技术特性依然还是被保留了下来。

BMChache分为两种类型,一种是Bitmap Chaces(位图缓存),一种是Persisten Bitmap Chaches(持久位图缓存)。Persistent Bitmap Chaches是从Windows 2000RDP 5.0版本开始引入的技术。区别在于,前一种是临时缓存,与RDP会话生命周期绑定,后一种是持久化的缓存,不受到RDP会话生命周期的限制,即使会话结束后,内容依然会持久化的存在于文件中。

位图缓存选项可以由用户配置是否开启,可以打开远程桌面连接程序查看:

Windows 取证之BMChache

需要注意的是,位图缓存只存在与远程连接的客户端系统中,而不是服务端系统中。

Windows xp中的存储位置位于:%USERPROFILE%Local SettingsApplication DataMicrosoftTerminal Server ClientCache路径中:

Windows 取证之BMChache

其文件名组成是“bchache + 图像位深度 + .bmc后缀”,其中的数字表示位图的质量,如果是bchache2.bmc表示是图像的位深度是8bitbcache22.bmc表示图像的位深度是16bitbcache24.bmc表示存储的图像位深度是32bit,单位是bpp(bits per pixel)。在Windows XP等老系统中,bchache**.bmc文件的最大大小是20MB。

Windows 7及更高版本系统中,其文件存储在 :%USERPROFILE%AppDataLocalMicrosoftTerminal Server ClientCache路径中:

Windows 取证之BMChache

包括两种类型,一种是bcache**.bmc,一种是Cache****.binbchache**.bmc用于老旧的系统,而Cache****.bin文件用于Windows 7及更高版本的系统。Cache****.bin文件大小最高可以达到100MB,当超过100MB,会新增一个文件,文件名中的数值从0000开始递增。(如:Cache0001.binCache0002.bin),与.bmc文件支持8bpp32bpp位深度图像不同,.bin文件的图像位深度是固定的32bpp

0x2、Bitmap Chache文件结构

.bmc文件结构:

.bmc文件并没有固定的头部标识,但它是由一张张BMP图像组成的文件,每个单独的区块文件头信息组成如下:

Windows 取证之BMChache

前八个字节(83 8F 42 86 6E C8 EF B3)是图像的哈希值,接下来的两个字节(40 00)是图像的宽度,然后两个字节(40 00)是图像的高度,然后四个字节(00 20 00 00)表示图像的大小(单位是字节),接下来的四个字节(11 00 00 00)表示图像的特定参数(是否压缩)。总共占用20个字节。

以这里的bchache22.bmc为例,每个区块的图像宽高都是0x40,也就是64x64大小的图像,其图像的位深度是16 bit,说明每个像素需要2个字节来存储。那一个区块的图像总大小为 :64x64x2=8192 bytes,如果是24bpp则占用12288 bytes,32bpp占用16384 bytes。

.bin文件结构:

.bin文件有固定的文件头标识,以字符串RDP8bmp开头,占用8个字节,后面四个字节为版本号,共十二个字节。

Windows 取证之BMChache

然后是每个区块图像的文件头:

Windows 取证之BMChache

其中前八个字节(35 CE 5E 97 15 DA 7E E9)是区块图像的哈希值,然后两个字节(40 00)是图像的宽度,然后两个字节是图像的高度(40 00)。与之前的.bmc存储不同,.bin中的每个区块图像的位深度都是32bpp,每个区块图像占用16384 bytes

我们可以参考bmp的文件结构组成,添加其文件头信息,手动构建bmp文件,把文件导出来:

Windows 取证之BMChache

Windows 取证之BMChache

Windows 取证之BMChache

关于bmp文件的格式可以参考 https://en.wikipedia.org/wiki/BMP_file_format#Pixel_storage

0x3、RDP BitMap Chache在取证中的意义

在前面,我们已经说明了,RDP BMChache只存在于客户端,如果攻击者在横行移动攻击中,使用了跳板机RDP远程连接了目标机器进行了某些操作,取证人员就可以在跳板机上分析BMChache文件进行取证。

我们做一个简单的演示,这里使用远程桌面连接一台远程机器,执行一些操作:

Windows 取证之BMChache

然后我们使用工具BMC Viewer查看一下BMC文件的内容:

Windows 取证之BMChache

可以看到缓存的位图图像中,有我们执行操作的部分内容的图像。点击每个区块的内容,会显示区块的文件头内容,可以根据这个导出图像.

Windows 取证之BMChache


0x4、取证实践

攻击者通过某些手段已经入侵并拿到了GOT公司职员Little Finger的电脑控制权,攻击者在这台电脑上使用了GOTvarys-adm域管理员凭证连接到了域控服务器,攻击者利用这台电脑作为入口点对组织进行横向渗透。

提供给我们的取证资料包括Little Finger计算机的Windows日志和littlefinger用户配置文件。我们需要找出Varys-adm的密码。

Windows 取证之BMChache

通过获取的日志可以发现登录的记录:

Windows 取证之BMChache

littlefinger用户的配置相关文件中找到了RDP Bitmap Chache文件:

Windows 取证之BMChache

我们使用工具对Cache0000.bin进行解析,这里使用bmc-tools.py工具(下载地址:https://github.com/ANSSI-FR/bmc-tools)。

Windows 取证之BMChache

查看解析出来的图像:

Windows 取证之BMChache

通过查看这些图像,发现了保存GOTvarys-adm密码的信息:

Windows 取证之BMChache

从解析的缓存图像分析,域管理员可能是使用了Windows 10的便签功能把密码贴在桌面上了。

至此我们通过BMChache找出了密码信息,用户名:GOTvarys-adm,密码:Uncutedition1@#

参考资料:

[MS-RDPEGDI]: Bitmap Caches | Microsoft Docs:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpegdi/2bf92588-42bd-4527-8b3e-b90c56e292d2

BMP格式详解_Tut-CSDN博客_bmp格式 :https://blog.csdn.net/u012877472/article/details/50272771

管理工具和登录类型参考 - Windows Server | Microsoft Docs :https://docs.microsoft.com/zh-cn/windows-server/identity/securing-privileged-access/reference-tools-logon-types

实操推荐:Windows取证利器

https://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2016100814354600001&pk_campaign=weixin-wemedia#stu

FastIRCollector是一个快速取证/信息收集工具,收集的东西揽括了所有你能想到的东西,不限于内存,注册表,文件信息等。通过实验学习使用FastIRCollector进行Windows信息收集,导出磁盘信息。

Windows 取证之BMChache


“阅读原文”


体验免费靶场

本文始发于微信公众号(合天网安实验室):Windows 取证之BMChache

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月14日09:30:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows 取证之BMChachehttp://cn-sec.com/archives/421577.html

发表评论

匿名网友 填写信息