近日,Akamai研究人员在微软Windows RPC服务中发现了两个重要漏洞:严重程度分值为4.3的CVE-2022-38034,以及分值为8.8的CVE-2022-38045。这些漏洞可以利用设计上的瑕疵,通过缓存机制绕过MS-RPC安全回调。我们已经确认,所有未安装补丁的Windows 10和Windows 11计算机都会受到影响。
这些漏洞已经披露给微软,而微软也在10月的“周二补丁日”通过补丁修补了相关问题。漏洞的发现过程得到了Akamai研究人员开发的自动化工具和方法论支持,本文将介绍该漏洞的一些情况以及我们在研究过程中使用的工具(RPC工具包代码库)。
背景介绍
MS-RPC 是Windows操作系统的基石之一,自从二十世纪九十年代诞生以来,已经深深扎根在系统的很多功能和组件中。服务管理器?离不开RPC!Lsass?需要RPC!COM?也依赖RPC!甚至针对域控制器执行的一些域操作同样需要用到RPC。RPC已经如此普遍,很多人都觉得这项技术一定已经进行了大量检查、记录和研究。
其实并不然。虽然微软围绕RPC的使用提供了很多不错的文档,但有关本次漏洞相关主题的内容却并不多,研究人员对RPC,尤其是其安全性的关注也严重不足。这可能是因为RPC(不仅是MS-RPC,但微软无疑也牵涉其中)实在是太复杂,因此也就更加难以研究和理解。
但我们总是乐于接受挑战的,因此决定一头扎进MS-RPC的深海。不光是因为这是个有趣的研究课题,而且因为它会对安全性产生影响,毕竟哪怕到现在,也有很多常见的攻击技术用到了RPC(简单列举几个,例如通过MS-COM发起的T1021.003、通过MS-TSCH发起的T1053.005,以及通过MS-SCMR发起的T1543.003)。MS-RPC虽然内建了安全机制,但如果存在可被轻松绕过或滥用的漏洞呢?如果能滥用暴露的RPC服务以非用户希望的方式影响计算机呢?
实际上,我们就发现了一种可以通过缓存绕过某个安全机制的方法,并借此发现了可以滥用的服务,从而能在远程服务器上提升自己的特权,并且完全不需要满足其他必要条件(下文将详细分析)。目前我们可以分享有关这些潜在利用方式的两个例子:WksSvc和SrvSvc。当披露流程全部结束后,我们还将公布其他漏洞信息的详情。