漏洞背景
- 影响: 远程代码执行(RCE)
- 严重性: 严重
- 弱点: CWE-122(基于堆的缓冲区溢出)
- CVSS评分: 9.8 / 8.5
今年早些时候,研究人员对 Windows 远程桌面服务进行了深入分析,发现了多个漏洞,所有相关漏洞(56个)报告给了微软。其中包括远程桌面授权服务中的多个 Preauth RCE 漏洞(未经身份验证的非沙盒 0-click RCE)。
这些是针对Windows远程桌面许可服务中预授权部分的远程代码执行漏洞利用,我们把这个漏洞称为“狂暴许可”(CVE-2024-38077),是多年来在 Windows 中未见过的 0-click preauth RCE。研究人员将其命名为 MadLicense【狂躁许可】,选择Windows Server 2025版本进行演示,该漏洞适用于 Windows Server 2000到2025(所有 Windows Server )。
影响范围
- 开启 Windows Remote Desktop Licensing (RDL) Sevice 的Windows Server。
- Windows Server 2000 到 2025 全部受影响。
相关漏洞
2024年7月,研究人员报告以下7个与RDP相关的漏洞均已被微软修复:
- CVE-2024-38077:Windows 远程桌面授权服务远程代码执行漏洞
- CVE-2024-38076:Windows 远程桌面授权服务远程代码执行漏洞
- CVE-2024-38074:Windows 远程桌面授权服务远程代码执行漏洞
- CVE-2024-38073:Windows 远程桌面许可服务拒绝服务漏洞
- CVE-2024-38072:Windows 远程桌面授权服务拒绝服务漏洞
- CVE-2024-38071:Windows 远程桌面许可服务拒绝服务漏洞
- CVE-2024-38015:Windows 远程桌面网关(RD 网关)拒绝服务漏洞
其中,Windows 远程桌面授权服务中的 3 个 CVSS 评分为 9.8 的 RCE 漏洞值得关注。
漏洞详情介绍
远程桌面许可 (RDL) 服务
远程桌面许可服务是 Windows Server 的一个组件,用于管理和颁发远程桌面服务的许可证,确保对远程应用程序和桌面的安全且合规的访问。
RDL 服务广泛部署在启用了远程桌面服务的机器上。默认情况下,远程桌面服务仅允许同时使用两个会话。要启用多个同时会话,需要购买许可证。RDL 服务负责管理这些许可证。RDL 被广泛安装的另一个原因是,在Windows 服务器上安装远程桌面服务 (3389) 时,管理员通常会勾选安装 RDL 的选项。这导致许多启用了 3389 的服务器也启用了 RDL 服务。此外,RDL服务通常部署在关键业务系统和远程桌面集群中。
CVE-2024-38077: 简单的堆溢出漏洞
此漏洞属于基于堆的缓冲区溢出(CWE-122),利用它可能导致攻击者在未认证的情况下获得远程代码执行的能力。
终端服务器授权程序旨在管理将任何用户或设备连接到服务器所需的终端服务 CAL。
在CDataCoding::DecodeData过程中,会分配一个固定大小的缓冲区(21 字节),然后使用该缓冲区计算并填充用户控制的长度缓冲区,从而导致堆溢出。
漏洞作者在博客(目前已经404)里进行了有限披露:https://sites.google.com/site/zhiniangpeng/blogs/MadLicense,为了进一步防止这个 POC 被滥用,博客里发布的 POC 只是伪代码和未优化的版本,关键部分是隐藏的,并且提供了windbg堆栈信息,伪代码以及部分已经去除关键代码的POC。
POC相关分析
Windows Server 2025 标准版本 24H2(26236.5000.amd64fre.ge_prerelease.240607-1502lserver.dll(10.0.26235.5000)
原伪代码POC:
https://github.com/CloudCrowSec001/CVE-2024-38077-POC/blob/main/CVE-2024-38077-poc.py
该漏洞利用的 POC 在 Windows Server 2025 上的成功率超过 95%。考虑到服务崩溃后会重新启动,不需要两次泄露模块基址,最终的成功率可以更高,接近 100%。
此 POC 将在 Windows Server 2025 上在 2 分钟内完成。对于 Windows Server 2000 到 Windows Server 2022,利用此漏洞会更快,因为缓解措施较少。为简单起见,POC 将加载远程 DLL。可以让它在 RDL 进程中运行任意 shellcode。这将使其更加隐蔽。
演示视频链接:
https://www.youtube.com/watch?v=OSYOrRS2k4A&t=8s
网传优化后的POC(基于伪代码)
GitHub - qi4L/CVE-2024-38077: RDL的堆溢出导致的RCE
自查漏洞
查看Windows Server 系统版本,WIN+R调出运行窗口,输入winver可查看系统版本,如果版本高于受影响的版本,则不受此漏洞影响。
官方补丁
微软官方已发布针对该漏洞的修复方案,受影响用户请通过官方链接下载并更新补丁。链接如下:
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38077
版权归原作者 闵宇伊豪 所有, 如有侵权,请联系我们删除。