深入解析CVE-2022-24547:CastSrv.exe权限提升漏洞

本文详细分析了CVE-2022-24547漏洞的技术细节,这是一个存在于CastSrv.exe中的权限提升漏洞。文章涵盖了漏洞原理、利用步骤、CVSS评分、受影响软件版本以及缓解建议,为安全研究人员提供深入的技术参考。

幕后解析:理解CVE-2022-24547

TL;dr

漏洞常常出现在我们意想不到的地方,CastSrv.exe中的CVE-2022-24547就是其中一个例子。这是一个权限提升漏洞,允许攻击者绕过安全机制获取提升权限。我们将深入分析这个漏洞的工作原理、利用方法以及防护措施。

摘要

厂商: Microsoft
安全影响: 权限提升
CVE ID: CVE-2022-24547

CVSS3.1评分系统

基础分数: 7.8
向量字符串: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

| 攻击向量(AV) | 本地 | | 攻击复杂度(AC) | 低 | | 所需权限(PR) | 低 | | 用户交互(UI) | 无 | | 范围(S) | 未改变 | | 机密性(C) | 高 | | 完整性(I) | 高 | | 可用性(A) | 高 |

受影响软件

产品: Microsoft Windows 10.0.18363.592 64位 (2020-01-14)
ISO下载: https://uupdump.net/selectlang.php?id=99c9fe2f-8e78-451f-ab95-410106ee59bf
版本: Windows 10 10.0.18363.592 64位 (2020-01-14)

漏洞描述

该漏洞存在于CastSrv.exe程序的IcastServerControl::GetEnableControl函数中,允许攻击者在系统上另一个用户的账户内创建任意文件夹。

导致此漏洞的关键因素:

  • 会话劫持: 攻击者可以通过使用其他登录用户的会话初始化程序,在该用户上下文下运行CastSrv.exe
  • 未检查的文件夹创建: IcastServerControl::GetEnableControl函数创建\AppData\Local__Shared\PlayToReceiver目录时未验证是否为符号链接
  • 不当权限: 创建的目录具有完全DACL权限,允许任何用户访问和修改

该接口注册在:

  • clsid: f8842f8e-dafe-4b37-9d38-4e0714a61149
  • uuid: 7733f245-f909-4be2-918f-bddecbcd07cc
  • clsid名称: CastServerInteractiveUser
  • 接口名称: ICastServerControl
  • 漏洞方法名称: ICastServerControl::GetEnableControl

利用过程

步骤1: 使用目标用户的会话ID初始化CastSrv.exe

字符串session:2!new:f8842f8e-dafe-4b37-9d38-4e0714a61149中的数字2代表目标用户的会话ID,需要替换为实际目标用户的会话ID。

步骤2: 触发ICastServerControl接口中的CCastServerControl::GetEnableControl函数

ICastServerControl接口的虚函数表包含:

  • CCastServerControl::StartCastServer(void)
  • CCastServerControl::StopCastServer(void)
  • CCastServerControl::Advise(ICastAppLaunchCallback *)
  • CCastServerControl::Unadvise(ICastAppLaunchCallback *)
  • CCastServerControl::GetEnableControl(int *)
  • CCastServerControl::SetEnableControl(int)
  • CCastServerControl::PutSettings(IUnknown *)

调用CCastServerControl::GetEnableControl会创建\AppData\Local__SHARED\PlayToReceiver文件夹。

步骤3: 创建符号链接

通过调用NtCreateSymbolicLinkObject,将\user02\AppData\Local__SHARED\PlayToReceiver符号链接到其他路径。

步骤4: 再次调用ICastServerControl->GetEnableControl

该方法会跟随符号链接并在指定位置创建任意文件夹。

漏洞复现(可选)

  1. 创建包含user01和user02两个用户的Windows 10环境
  2. 先登录user02,然后登录user01,使两个会话同时运行
  3. 在user01上运行概念验证(PoC)
  4. 检查user02中是否在C:\Users\user02\test创建了任意文件夹

利用条件

攻击者必须与目标用户在同一系统上,且目标用户在攻击者执行利用时必须具有活动会话。

检测指导

利用是通过\AppData\Local__Shared\PlayToReceiver文件夹的符号链接实现的。用户应实施措施禁止创建此文件夹或验证其是否为符号链接。

建议缓解措施

实施限制措施,防止创建\AppData\Local__Shared\PlayToReceiver文件夹。

致谢

感谢同事Chen Le Qi在研究过程中提供的宝贵指导。

结论

通过这项研究,我深入了解了权限提升漏洞的微妙利用方式。虽然未能成功利用CVE-2022-24547,但分析漏洞、理解流程和尝试不同方法的过程为我提供了宝贵的安全研究和漏洞开发见解。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计