微软Office在线服务器远程代码执行
作者:Sec-Labs | 发布时间:
微软的Office Online Server是下一代Office Web Apps Server;它为Word、PowerPoint、Excel和OneNote文档提供了一个基于浏览器的查看器/编辑器。该产品可以与SharePoint集成,在SharePoint中提供基于网络的对这些文档的访问。
在一次常规渗透测试中,MDSec发现了一个服务器端请求伪造漏洞,在适当的条件下,可以利用该漏洞在Office Online服务器上实现远程代码执行。
漏洞
Office Online Server中的/op/view.aspx端点旨在用于从远程资源检索Office文档并在浏览器中显示这些文档。该端点受到典型的服务器端请求伪造的影响,即向其提供HTTP(s)或UNC位置将启动应用程序的连接。
MDSec在Office Online Server 16.0.10338.20039及以下版本中目睹了这一漏洞。
漏洞的利用
上述有漏洞的端点可以通过一个简单的、未经认证的GET请求被利用。下面的例子说明了如何使用基于时间的攻击来识别有效的IP地址,对内部资源进行指纹识别。

虽然枚举很有趣,但代码执行更好。在分析过程中,人们进一步注意到,来自Office Online服务器的连接是使用主机的机器账户进行的,为强制认证提供了便利。这当然会引起一些有趣的利用选择,因为机器账户可以转发到其他资源,如LDAP(添加影子证书)或活动目录证书服务(恢复PKINIT认证的客户证书)。
假设Office Online服务器能够访问攻击者控制的SMB服务器,SSRF可以提交给ntlmrelayx并随后转发到ADCS,如下图所示。

使用该证书,有可能获得该服务器的TGT。

使用TGT,可以提出一个s4u2Self请求,为服务器接收一个伪造的服务票,从而获得Office Online服务器主机上的本地管理员权限。

通过利用ntlmrelayx中继到LDAP并进行影子证书攻击,几乎肯定可以实现类似的最终结果,但这是留给读者的一个练习。
MDSec向微软MSRC通报了这一漏洞,但它被认为是对终端的预期用途,并被确定为 "不会修复"。
时间线
23/08/2022 - MDSec向MSRC提供了一份关于SSRF的描述。
12/09/2022 - MSRC指出,这个功能是设计出来的,作为一种缓解措施,与互联网连接的服务器应该 "锁定端口和该农场的任何账户,使其拥有最低权限"。此外,将OpenFromUNCEnabled标志设置为false可以禁用这个功能。
这篇博文是由Manish Tanwar撰写的。