找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5054

积分

0

好友

659

主题
发表于 昨天 01:27 | 查看: 23| 回复: 0

引言

想象一下这个场景:小李在午休时,用公司电脑远程桌面(RDP)登了一下家里的机器,想确认昨晚下载的电影好了没。他迅速退出,深藏功与名。他以为这就像浏览器关掉“无痕模式”,一切了无痕迹。

大错特错。

他的屏幕上闪过的那一秒《沙丘2》海报、那个挂着“私人文件”标题的文件夹图标……这些视觉碎片,已经被Windows系统悄悄地拍下“快照”,并永存在他的工作电脑中。而这些“快照”,未来或许会被任何一位不怀好意的访客,像拼拼图一样,完整地复原出来。

这不是危言耸听,这是每一台连过远程桌面的Windows电脑,都在默默上演的“现实版《窃听风云》”。


引用权威观点

网络攻防里,最可怕的威胁往往不是那些高精尖的零日漏洞,而是那些被所有人遗忘在角落的“默认设置”

根据Palo Alto Networks最新的《攻击面威胁报告》,远程桌面(RDP)问题,竟然占到了全球企业安全风险的三成以上。像臭名昭著的“散装蜘蛛”(Scattered Spider)这类勒索软件团伙,都把“搞到RDP权限”作为入侵企业的首选敲门砖。

RDP缓存攻击流程:从发现缓存、压缩窃取、清理痕迹到离线重建截图的完整攻击链

为什么?因为这东西用得太普遍,而它留下的“后遗症”,却鲜有人知。


案例复盘

我们来复盘一个典型的故事,它可能正在任何一家公司发生:

  1. “无害”的访问:一位工程师小张,通过公司电脑的远程桌面,紧急连上了一台存放着敏感设计文档的服务器。他快速查阅了几个文件后退出,整个过程不到5分钟。
  2. “隐形”的入驻:在后台,Windows的“位图缓存”功能(一个原本为了让你下次连接更快的小优化),已经把他屏幕显示的每一块区域,切割成上千个微小的图片磁贴,存进了电脑硬盘一个固定的文件夹里。它就像一台延时摄影机,把小张屏幕上闪过的一切——包含了文件命名、部分代码片段甚至可能飘过的账号输入框——全部定格保存。
  3. “路过”的窃贼:一周后,攻击者通过某个钓鱼邮件,控制了小张同事的电脑。他不需要什么管理员权限,就像逛自家后院一样,溜达到 %localappdata%\Microsoft\Terminal Server Client\Cache 这个“景点”。把整个“景点”拍个照(压缩打包),大摇大摆地通过日常的HTTPS网络流量发走,全程波澜不惊。
# Archive For Exfil
powershell -c Compress-Archive -Path ($env:LOCALAPPDATA+'\Microsoft\Terminal Server Client\Cache') -DestinationPath ($env:TEMP+'\run_bitmap.zip') -Force
# Exfil Not Shown (choose your own adventure)
# Delete The Evidence After Exfil
Remove-Item -Path "$env:TEMP\run_bitmap.zip" -Force -ErrorAction SilentlyContinue
  1. “拼图”的秘密:攻击者收到“照片包”后,只需要使用两款在GitHub上免费开源的工具(bmc-toolsRdpCacheStitcher)。一个负责拆解图片碎片,一个负责自动拼接。不出十分钟,小张当时查看文档的屏幕截图,就能被部分甚至完整地重构出来!
python3 bmc-tools.py -s . -d .
[+++ ] Processing a directory...
[+++ ] Processing a file: './bcache24.bmc'.
[!!!] Unable to retrieve file contents; aborting.
[+++ ] Processing a file: './Cache0002.bin'.
[===] 2187 tiles successfully extracted in the end.
[===] Successfully exported 2187 files.
[+++ ] Processing a file: './Cache0000.bin'.
[===] 447 tiles successfully extracted in the end.
[===] Successfully exported 447 files.
[+++ ] Processing a file: './Cache0001.bin'.
[===] 1730 tiles successfully extracted in the end.
[===] Successfully exported 1730 files.

你看,整个过程,没有触发任何高危警报,没有触碰任何核心数据库。攻击者只是“捡”走了所有人都没在意的“垃圾”,却从中淘出了通向核心业务的“金矿地图”。这也再次印证了,在渗透测试的视角下,最致命的往往不是正面强攻,而是这种针对残留信息的侧信道窃取。


理论拆解

别被“位图缓存”这个词唬住。你完全可以把它理解为 “Windows系统的视觉记忆体”

  • 为什么要有它? 为了让你下次远程连接时,那些不变的元素(比如软件按钮、桌面背景)能快速加载,不用重新从网络传一遍,提升体验。初衷是好的。
  • 它记住了什么? 它记下的,是屏幕上每一个像素块。只要你当时屏幕上显示过的,无论窗口是不是最小化,只要是RDP会话内渲染的,它都可能记下一份。这就像你家监控录像不只拍门口,还把客厅电视里播放的画面也存下来了。
  • 为什么能拼回去? 因为这些“像素块”都带有自己的坐标信息。像拼乐高一样,只要按坐标把碎片放回原位,哪怕不能100%还原,也能拼凑出大致的画面。一个登录框、一封邮件的标题、一份财务报告的摘要……对于攻击者来说,“点滴”信息都是宝贵的“侦察情报”。

被严重像素化干扰的Windows桌面截图,但仍可辨识出文件资源管理器、EC2实例信息等关键界面元素

另一视角下同样受损的桌面截图,展示了文件夹、最近文件及云主机网络配置信息


技术特点

我们来给这个“沉默的告密者”画个像:

  1. 默认开启,无处不在:只要用过远程桌面,缓存就会生成。这是微软的默认行为,全球数亿台电脑都如此。
  2. 权限要求极低:普通用户权限就能读取,攻击者进入内网后“顺手牵羊”毫无阻碍。
  3. 隐蔽性极高:文件存放在用户目录,非标准文档格式,日常安全扫描极易忽略。窃取过程伪装成普通压缩和网络传输,极难察觉。
  4. 信息维度特殊:它不记录你敲了什么键(那是键盘记录器干的),而是记录了你当时看到了什么。这是一种独特且极具场景感的信息泄露。

更讽刺的是,这个缓存甚至在攻击者撤退时也会成为线索。一台正常使用RDP的电脑,缓存文件夹突然空了?这就像小偷离开前特意擦掉了指纹——“没有证据”,恰恰就是最可疑的证据。在数字取证调查中,这种异常清理行为本身就是高价值的入侵指示器。


安全与业务关系

这绝不只是IT部门的一个技术参数问题。它直接关系到:

  • 核心机密泄露:拼接出的截图可能直接暴露尚在研发中的产品设计、未公布的财务数据、敏感的客户信息。
  • 内网纵深失守:攻击者拿到截图,就像拿到了公司内部的“导览图”。他们能知道哪些系统重要、命名规则是什么、甚至从截图里找到更多可用的账号信息,进行横向移动。防御方的“迷宫”,在攻击者眼里变成了“导航直达”。
  • 合规风险:对于金融、医疗、政务等受严格监管的行业,这种未加密的敏感信息留存,本身就是严重的合规违规。
  • 品牌与信任危机:一旦因此导致数据泄露,公众和客户不会理解什么“位图缓存”,他们只会认为这家公司的安全“形同虚设”。

开启这个缓存,或许能换来1%的连接速度提升;但留下的安全隐患,可能需要100%的代价去弥补。这买卖,划算吗?


总结

技术世界里,没有“无痕模式”。每一个为了便利而留下的“缓存”,都可能成为照亮你秘密的“聚光灯”。安全,往往就输在这些被遗忘的细节里。

真正的安全感,不是相信攻击者找不到门,而是确保即使他路过门口,也找不到任何有价值的地图碎片。

参考资料

  • Palo Alto Networks: RDP Bitmap Cache Forensics
  • Pen Test Partners: DFIR Techniques for RDP Bitmap Cache (2025)
  • CISA #StopRansomware: BianLian Advisory
  • ANSSI-FR bmc-tools (GitHub)
  • BSI-Bund RdpCacheStitcher (GitHub)
  • MITRE ATT&CK: T1560.001, T1005



上一篇:macOS恶意软件分析:“Mach-O Man”工具包深度技术拆解与防御指南
下一篇:Claude AI Agent 9秒清空生产数据库,创业公司删库事件暴露权限管理致命漏洞
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-2 17:23 , Processed in 0.800588 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表