微软商店与WinGet:企业环境中的安全风险
微软商店的安全隐患
微软商店提供了一个无需管理员权限即可安装软件的便捷机制。该功能对非企业用户和家庭用户很方便,但在企业环境中可能不可接受。这是因为攻击者和恶意员工可以利用微软商店安装可能违反组织策略的软件。
此外,微软商店很可能允许用户安装双重用途应用程序,这些应用程序可用于绕过安全控制或访问环境中的敏感信息。以下描述了几种常用于促进绕过或数据访问的应用程序。这并非详尽列表,因为发布到微软商店的资源非常广泛。
WinGet工具的风险
除了微软商店用户界面外,WinGet实用程序也可用于搜索和安装软件。可以使用winget search命令发现软件包。在下图中,msstore源标识了可从微软商店获取的软件包,这些软件包无需提升权限即可安装。其他源可能需要也可能不需要提升权限,具体取决于软件包详细信息。
一旦识别出所需的软件包,就可以使用搜索结果中的名称或ID通过winget install命令进行安装。下图显示了Microsoft Dev tunnels客户端的安装过程。
滥用实例分析
Microsoft Quick Assist
Quick Assist应用程序随Microsoft Windows操作系统捆绑提供,用于在故障排除时获得远程支持。攻击者经常使用该应用程序对组织执行社会工程攻击。即使您已经花时间加固了Windows主机并移除了此工具,访问微软商店也为用户提供了重新安装该实用程序的机会。
攻击者通常试图冒充IT人员,希望检查主机配置或安装实用程序。然后攻击者提示用户启动Quick Assist并输入恶意呼叫者提供的代码。
输入代码后,攻击者请求远程控制计算机以执行恶意活动。在恰当的借口下,这种诡计通常非常有效。
DBeaver Community Edition (CE)
获得系统远程控制的攻击者和恶意用户可能会寻找横向移动或访问敏感信息的机会。DBeaver应用程序是一个通用数据库工具,可用于促进这两项活动。
该应用程序提供了一个易于使用的界面,可连接、查询和修改各种数据库服务器平台。访问通常通过Active Directory分析、发现配置文件或对环境的事先了解来促进。成功连接到服务器后,攻击者可以探索数据库模式和内容、探索链接服务器内容并滥用内置功能。
在Microsoft SQL Server中,通常被滥用的功能表现为扩展存储过程。xp_cmdshell、xp_dirtree和xp_fileexist扩展存储过程是众所周知的攻击向量。幸运的是,在现代Microsoft SQL Server版本中,xp_cmdshell扩展存储过程默认禁用。因此,我们将重点使用另一个扩展存储过程xp_dirtree通过DBeaver执行攻击。
xp_dirtree过程简单地列出给定文件路径的内容,该路径可以是本地路径或远程系统上的通用命名约定(UNC)路径。当xp_dirtree过程连接到远程系统时,它使用Microsoft SQL Server实例的身份。因此,远程连接可用于促进凭据盗窃。
下图说明了使用xp_dirtree扩展存储过程连接到远程攻击者控制的系统。连接将使用服务器运行的身份(通常是服务帐户)建立。
在远程系统上,攻击者通常会有一个恶意的SMB服务器等待传入连接。当收到来自Microsoft SQL Server实例的请求时,恶意服务器会提示进行身份验证,此时可以捕获与服务关联的凭据或将其中继到网络上的其他服务。
Microsoft Sysinternals Suite
Microsoft Sysinternals Suite本身并非恶意。该工具套件通常被管理员用于在给定环境中完成合法任务。但是,Sysinternals工具套件对攻击者可能很有用,并且对于标准非特权用户通常没有必要。使用Sysinternals套件进行的常见攻击者任务包括了解目标Active Directory环境的配置、横向移动和提升权限。
许多对攻击者和管理员都有用的实用程序随软件包一起安装。Active Directory Explorer是对攻击者有用的实用程序之一。
管理员可能认为用户无法访问Active Directory架构,因为他们通常缺乏像Active Directory Users and Computers (ADUC)这样的工具。非特权用户可以使用Active Directory Explorer获得与ADUC非常相似的Active Directory视图。因此,任何不安全地存储在架构中的敏感信息(凭据、PII等)都可能被发现和重用。
此外,该工具还具有制作Active Directory数据库离线副本的功能,可以离线分析或解析并导入Bloodhound。
Microsoft Dev Tunnel Client
如上所述,可以通过WinGet安装Microsoft Dev Tunnel客户端。Dev Tunnel客户端旨在允许开发人员访问远程服务进行测试,而无需将这些服务暴露给整个互联网。然而,攻击者开始滥用该实用程序,因为它支持使用Microsoft签名的二进制文件建立SSH over HTTPS隧道。
首先,攻击者使用适当的Dev Tunnel客户端创建可用隧道。在下图中,托管了一个匿名Dev Tunnel实例,暴露TCP端口22。
|
|
创建Dev Tunnel实例时,会生成连接密码。在受感染的主机上,使用密码连接到隧道。建立隧道后,为隧道托管的端口(22)生成端口转发。
端口转发运行后,可以通过隧道建立到远程主机的连接。
上面的SSH命令设置了一个远程端口转发,可用于强制网络流量通过隧道,穿过受感染系统,进入目标网络。
由于SSH连接目标是本地主机(127.0.0.1)IP地址,一些安全工具会忽略与连接相关的流量。这种技术也常用于传输命令和控制流量,以最小化检测可能性。
编程工具
微软商店托管各种编程工具,可能允许攻击者或恶意员工安装脚本解释器、开发环境和调试器。这些类型的工具可能允许攻击者绕过安全控制或更轻松地执行恶意代码。下面显示了几种编程工具示例的微软商店条目。
值得注意的是,微软商店中的PowerShell解释器虽然功能不全,但已被发现可以绕过某些端点保护代理,从而允许运行恶意的PowerShell脚本。
防护措施
阻止访问微软商店
有几种不同的方法可用于阻止访问微软商店。下面的博客文章描述了七种阻止微软商店访问的不同方法。
https://cloudinfra.net/disable-block-microsoft-store-in-windows-7-ways/
使用上述文章中描述的技术之一阻止访问微软商店将阻止使用winget检索msstore软件包。但是,winget功能暴露的访问内容不仅限于微软商店(许多需要提升权限才能安装)。可以通过在组策略中将"启用应用程序安装程序"设置为"禁用"来阻止winget功能。
控制组织工作站上运行的软件对于适当的网络安全至关重要。系统应仅运行预先批准和授权的软件,没有绕过该控制的机制。理想情况下,组织应实施应用程序控制,以防止未经授权的应用程序在系统上成功执行。