攻击者眼中的远程桌面

1。 介绍

没有远程访问系统的公司在几个月前紧急部署了远程访问系统。 并非所有管理员都为这种“热度”做好了准备,这导致了安全漏洞:服务配置不正确,甚至安装了带有先前发现的漏洞的过时版本的软件。 对于某些人来说,这些遗漏已经自食其果,另一些人则更幸运,但每个人都应该得出结论。 对远程工作的忠诚度呈指数级增长,越来越多的公司正在持续接受​​远程工作作为一种可接受的形式。

因此,提供远程访问的选项有很多:各种 VPN、RDS 和 VNC、TeamViewer 等。 根据构建企业网络和其中设备的具体情况,管理员有很多选择。 VPN 解决方案仍然是最受欢迎的,但是,许多小公司选择 RDS(远程桌面服务),它们部署起来更简单、更快。

在本文中,我们将更多地讨论 RDS 安全性。 让我们对已知漏洞进行简要概述,并考虑对基于 Active Directory 的网络基础设施发起攻击的几种场景。 我们希望我们的文章能够帮助人们解决错误并提高安全性。

2.近期RDS/RDP漏洞

任何软件都包含可能被攻击者利用的错误和漏洞,RDS 也不例外。 Microsoft 最近经常报告新漏洞,因此我们决定对它们进行简要概述:

此漏洞使连接到受感染服务器的用户面临风险。 攻击者可以获得对用户设备的控制权或在系统中获得立足点以进行永久远程访问。

这组漏洞允许未经身份验证的攻击者使用特制请求在运行 RDS 的服务器上远程执行任意代码。 它们还可用于创建蠕虫病毒,即独立感染网络上相邻设备的恶意软件。 因此,这些漏洞可能会危害整个公司的网络,只有及时更新才能挽救它们。

远程访问软件越来越受到研究人员和攻击者的关注,因此我们可能很快就会听到更多类似的漏洞。

好消息是,并非所有漏洞都可以公开利用。 坏消息是,对于具有专业知识的攻击者来说,根据描述或使用补丁差异等技术编写漏洞利用程序并不困难(我们的同事在 文章)。 因此,我们建议您定期更新软件并监控有关已发现漏洞的新消息的出现。

3. 攻击

我们继续本文的第二部分,我们将展示对基于 Active Directory 的网络基础设施的攻击是如何开始的。

所描述的方法适用于以下攻击者模型:拥有用户帐户并有权访问远程桌面网关 - 终端服务器(通常可以从外部网络访问)的攻击者。 通过使用这些方法,攻击者将能够继续对基础设施进行攻击并巩固其在网络上的存在。

每个特定情况下的网络配置可能有所不同,但所描述的技术是相当通用的。

离开受限环境和增加权限的示例

攻击者在访问远程桌面网关时,可能会遇到某种受限环境。 当您连接到终端服务器时,会在其上启动一个应用程序:一个用于通过远程桌面协议连接内部资源、资源管理器、办公软件包或任何其他软件的窗口。

攻击者的目标是获得执行命令的权限,即启动 cmd 或 powershell。 几种经典的 Windows 沙箱逃逸技术可以帮助解决此问题。 让我们进一步考虑它们。

选项1。 攻击者可以访问远程桌面网关内的远程桌面连接窗口:

攻击者眼中的远程桌面

“显示选项”菜单打开。 显示用于操作连接配置文件的选项:

攻击者眼中的远程桌面

在此窗口中,您可以通过单击任何“打开”或“保存”按钮轻松访问资源管理器:

攻击者眼中的远程桌面

资源管理器打开。 它的“地址栏”可以启动允许的可执行文件,并列出文件系统。 当系统驱动器被隐藏且无法直接访问时,这对于攻击者来说非常有用:

攻击者眼中的远程桌面

演示视频

例如,当使用 Microsoft Office 套件中的 Excel 作为远程软件时,可以重现类似的场景。

演示视频

此外,不要忘记此办公套件中使用的宏。 我们的同事在这方面研究了宏观安全问题 文章.

选项2。 使用与先前版本相同的输入,攻击者在同一帐户下启动多个到远程桌面的连接。 当您重新连接时,第一个将关闭,屏幕上将出现一个带有错误通知的窗口。 该窗口中的帮助按钮将调用服务器上的Internet Explorer,之后攻击者就可以转到Explorer。

演示视频

选项3。 如果配置了启动可执行文件的限制,攻击者可能会遇到组策略禁止管理员运行cmd.exe的情况。

有一种方法可以解决此问题,即在远程桌面上运行包含 cmd.exe /K <command> 等内容的 bat 文件。 启动cmd时出错,执行bat文件成功的例子如下图所示。

攻击者眼中的远程桌面

选项4。 使用基于可执行文件名称的黑名单来禁止启动应用程序并不是万能的;它们可以被规避。

考虑以下场景:我们禁用了对命令行的访问,并阻止使用组策略启动 Internet Explorer 和 PowerShell。 攻击者试图呼救,但没有回应。 尝试通过模式窗口的上下文菜单启动 powershell,按下 Shift 键调用 - 一条消息表明管理员禁止启动。 尝试通过地址栏启动 powershell - 再次没有响应。 如何绕过限制?

将C:WindowsSystem32WindowsPowerShellv1.0文件夹中的powershell.exe复制到用户文件夹中,将名称更改为powershell.exe以外的其他名称即可,然后将出现启动选项。

默认情况下,连接远程桌面时,提供对客户端本地磁盘的访问,攻击者可以从本地磁盘复制 powershell.exe 并重命名后运行。

演示视频

我们只提供了几种绕过限制的方法;您可以想出更多方案,但它们都有一个共同点:访问 Windows 资源管理器。 有许多应用程序使用标准的 Windows 文件操作工具,当放置在有限的环境中时,可以使用类似的技术。

4. 建议和结论

正如我们所看到的,即使在有限的环境中也存在攻击发展的空间。 但是,您可能会让攻击者的日子变得更加困难。 我们提供的一般性建议对于我们考虑的选项和其他情况都很有用。

  • 使用组策略将程序启动限制为黑/白名单。
    然而,在大多数情况下,仍然可以运行代码。 我们建议您熟悉该项目 乐巴斯,了解在系统上操作文件和执行代码的未记录方法。
    我们建议结合使用这两种类型的限制:例如,您可以允许启动 Microsoft 签名的可执行文件,但限制 cmd.exe 的启动。
  • 禁用 Internet Explorer 设置选项卡(可以在注册表中本地完成)。
  • 通过 regedit 禁用 Windows 内置帮助。
  • 如果这种限制对用户来说并不重要,则禁用挂载本地磁盘以进行远程连接的功能。
  • 限制对远程计算机本地驱动器的访问,仅允许访问用户文件夹。

我们希望您觉得本文至少很有趣,并且最多可以帮助您公司的远程工作更加安全。

来源: habr.com

添加评论