不留痕迹地使用 RDP:MSTSC 公共模式

admin 2025年3月18日23:39:56评论22 views字数 3771阅读12分34秒阅读模式
不留痕迹地使用 RDP:MSTSC 公共模式

您是否想知道 MSTSC 中的“/public”命令行选项实际上有什么作用?它在 RDP 客户端中启用“公共模式”,该功能有点类似于 Web 浏览器中的“隐身模式”。此功能旨在用于“公共”或“共享”计算机,用户可能希望阻止凭据、会话详细信息和缓存图像在本地存储。

对于取证分析师来说,恶意攻击者在受感染系统上使用 MSTSC 留下的痕迹可能是信息金矿。以下是受 RDP 公共模式影响的所有功能的列表:

连接设置

您是否知道 mstsc 将连接设置保存到隐藏的 Default.rdp 文件中?启用公共模式后,mstsc 将不允许您将对连接设置的修改保存到该文件:

不留痕迹地使用 RDP:MSTSC 公共模式

手动编辑它的最简单方法是从命令行启动记事本:notepad "~DocumentsDefault.rdp"。

凭证缓存

mstsc 使用 Windows 凭据管理器在本地保存凭据,以便在与同一服务器建立新连接时重复使用。公共模式禁用缓存凭据,因此即使本地有凭据,系统也会提示您输入凭据:

不留痕迹地使用 RDP:MSTSC 公共模式

已保存的凭据使用“TERMSRV/”前缀,可以使用以下命令列出:

cmdkey /list | ? { $_ -Match "TERMSRV/" } | % { $_ -Replace ".*: " }
公共模式还可以防止用户在登录提示中保存凭据:

不留痕迹地使用 RDP:MSTSC 公共模式

持久位图缓存

mstsc 留下的最值得注意的产物是持久位图缓存。在 RDP 中,服务器将桌面图像分解为位图片段,并将它们缓存在客户端上。当某个片段重复出现时,服务器会指示客户端重新使用缓存的版本,而不是重新发送。但是,只有在客户端存储了足够多的片段后,缓存才能提高性能。为了加快新连接的速度,持久位图缓存允许在会话之间保留位图。

虽然公共模式禁用此功能,但也可以使用BitmapCachePersistEnable:i:0.RDP 文件中的 单独禁用它。持久位图缓存将文件(bcache24.bmc、Cache0000.bin、Cache0001.bin 等)存储在 下%LOCALAPPDATA%MicrosoftTerminal Server ClientCache。虽然没有记录缓存格式,但您可以使用 BMC-Tools 提取其位图内容:

git clone <https://github.com/ANSSI-FR/bmc-tools> && cd bmc-toolspython .bmc-tools.py -s "$Env:LocalAppDataMicrosoftTerminal Server ClientCache" -d .

然后,您可以浏览以前远程桌面会话中的数千个位图片段:

不留痕迹地使用 RDP:MSTSC 公共模式

请记住,位图缓存不是一种可靠的记录方法 - 它就像试图通过翻找回收站来重建碎纸文件一样。话虽如此,它仍然可以成为信息的宝库。

最近使用的服务器

Microsoft RDP 客户端可记住最多 10 个最近使用的 (MRU) 服务器,因此可以轻松地从下拉列表中选择服务器,而无需再次输入所有内容:

不留痕迹地使用 RDP:MSTSC 公共模式

公共模式禁止更新存储在注册表中的服务器列表:

[HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault]"MRU0"="10.10.0.25""MRU1"="IT-HELP-TEST.ad.it-help.ninja""MRU2"="IT-HELP-DVLS.ad.it-help.ninja""MRU3"="IT-HELP-WAC.ad.it-help.ninja""MRU4"="IT-HELP-GW.ad.it-help.ninja"

换句话说,您仍然会看到具有公共模式的下拉列表,但 mstsc 不会使用您连接到的新服务器来更新它。

服务器用户名提示

为了加快登录提示的速度,mstsc 会记住用于连接给定服务器的最后一个用户名并为您预先选择它:

不留痕迹地使用 RDP:MSTSC 公共模式
此信息在注册表中存储如下:HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers\UsernameHint,
[HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers10.10.0.25]"UsernameHint"="[email protected]""UsernameHint"="[email protected]"

除了显示用户名之外,此注册表项还会显示您已连接的服务器。同样,公开模式可防止使用和存储此信息。

服务器证书例外

世界上没有一位 IT 管理员不熟悉 MSTSC 的黄色证书警告对话框。是的,可以为 RDP 部署适当的证书,但说实话:我们都至少使用过一次“不要再询问我是否连接到此计算机复选框”:

不留痕迹地使用 RDP:MSTSC 公共模式
您可能已经猜到了,RDP 公共模式禁用服务器证书例外,因为它们在注册表中保存如下:HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers\CertHash,
[HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers10.10.0.25]"CertHash"=hex:13,fe,21,42,92,fc,6a,9d,ac,ea,a0,3d,b5,9b,59,c8,90,6f,37,b9,cc,"CertHash"=hex:13,fe,21,42,92,fc,6a,9d,ac,ea,a0,3d,b5,9b,59,c8,90,6f,37,b9,cc,31,08,9d,63,f7,4b,e7,c4,3b,77,f2

证书哈希本身并不是很有用,但由于它是按服务器名称存储的,因此它会留下您所连接过的服务器的痕迹。

服务器身份验证异常

RDP 中的服务器身份验证级别有点难以理解:服务器可以通过其证书、Kerberos 或两者进行身份验证。要了解公共模式如何影响服务器身份验证,请确保服务器身份验证设置为在服务器身份验证失败时发出警告。或者,使用以下命令修改 .RDP 文件authentication level:i:2:

不留痕迹地使用 RDP:MSTSC 公共模式
当连接到不受信任的服务器时(当证书验证或 Kerberos 验证都不能用于对服务器进行身份验证时),您应该会看到此安全警告对话框:

不留痕迹地使用 RDP:MSTSC 公共模式

请注意,公共模式如何禁用“不再询问我是否连接到此计算机”复选框,但也禁用已保存的凭据使用。如果您为服务器添加安全例外,它将存储在下HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientLocalDevices,如下所示:

[HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientLocalDevices]"10.10.0.25"=dword:0000004d"10.10.0.25"=dword:0000004d

目标服务器名称已存储,因此,它同样可用于查找您已连接的服务器。至于关联的 DWORD 值,它会根据您授权连接的本地资源或设备(驱动器、剪贴板、打印机等)而变化。

清理

RDP 公共模式很棒,但如果你以前没有使用过它,并且想要在干净的状态下重置 mstsc,该怎么办?以下是 PowerShell 代码片段,用于清除遗留的所有本地工件(已保存的凭据、持久位图缓存和注册表项):

cmdkey /list | ? { $_ -Match "TERMSRV/" } | % { $_ -Replace ".*: " } | % { cmdkey /delete:$_ }Remove-Item -Path "$Env:LocalAppDataMicrosoftTerminal Server ClientCache" -Recurse -ErrorAction SilentlyContinueRemove-Item -Path "$Env:LocalAppDataMicrosoftTerminal Server ClientCache" -Recurse -ErrorAction SilentlyContinueRemove-Item -Path "HKCU:SoftwareMicrosoftTerminal Server ClientDefault" -Force -ErrorAction SilentlyContinueRemove-Item -Path "HKCU:SoftwareMicrosoftTerminal Server ClientServers" -Recurse -Force -ErrorAction SilentlyContinueRemove-Item -Path "HKCU:SoftwareMicrosoftTerminal Server ClientLocalDevices" -Recurse -Force -ErrorAction SilentlyContinue

使用 RDP 公共模式可以解决奇怪的问题,这些问题通常是由剩余保存的凭据和用户名提示引起的。虽然这种情况很少见,但损坏的持久位图缓存可能会导致 RDP 出现视觉故障。我建议在不知道问题可能是什么时尝试公共模式,但它可能与上面列出的功能之一有关。

原文始发于微信公众号(Ots安全):不留痕迹地使用 RDP:MSTSC 公共模式

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月18日23:39:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   不留痕迹地使用 RDP:MSTSC 公共模式https://cn-sec.com/archives/3811787.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息