上一篇 下一篇 分享链接 返回 返回顶部

Windows Server(0-click)高危风暴来袭!抓紧打补丁!

发布人:2970193156 发布时间:2024-09-21 15:33 阅读量:292

漏洞名称: CVE-2024-38077

漏洞类型: 远程代码执行 (RCE)
影响范围: 启用 Windows Remote Desktop Licensing(RDL)服务的 Windows 服务器
影响版本: Windows Server 2000 - Windows Server 2025
威胁等级: 严重
利用难度: 容易

漏洞概述

CVE-2024-38077 是微软近期披露的一个极其严重的远程代码执行漏洞。此漏洞影响从 Windows Server 2000 到 Windows Server 2025 的所有版本,影响范围非常广泛。漏洞存在于 Windows 远程桌面许可管理服务(RDL)中,该服务被广泛部署在启用了远程桌面服务(端口 3389)的服务器上,用于管理远程桌面连接许可。

漏洞分析

该漏洞的根本问题在于 Windows 远程桌面许可服务在处理用户输入的许可密钥包时的解码过程。具体而言,该服务会将用户输入的编码后的许可密钥包解码,并将解码后的数据存储在内存缓冲区中。然而,在将解码后的数据写入缓冲区之前,系统并未正确地检查解码后数据的长度与缓冲区大小之间的关系。

这种缺乏边界检查的情况使得攻击者可以通过构造一个超长的、特定格式的编码数据包,利用缓冲区溢出漏洞,向系统注入恶意代码。当数据溢出缓冲区后,攻击者能够覆盖关键的内存区域,从而实现任意代码执行。这一漏洞的存在使得攻击者可以在没有任何身份验证或预置条件的情况下,远程控制受影响的服务器,执行任意操作。

自查流程指引

为了帮助系统管理员和用户检测其系统是否受到 CVE-2024-38077 漏洞的影响,建议按照以下步骤进行自查:

1. 检查系统版本

  • 步骤 1: 按住“Win+R”组合键调出“运行”窗口。
  • 步骤 2: 在运行框中输入“winver”并点击确定。
  • 步骤 3: 系统将弹出一个窗口,显示 Windows 版本信息。

2. 版本比对

漏洞背景

2024年7月,我们报告的以下7个与RDP相关的漏洞已被Microsoft修复:

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 漏洞值得关注。在微软的公告中,他们认为这些漏洞不太可能被利用。但事实并非如此。事实上,我们在补丁发布之前就告知了微软这些漏洞的可利用性。

在本博客中,我们将演示如何利用 Windows Server 202 5上的 CVE-2024-38077 进行预认证 RCE 攻击,绕过所有现代缓解措施,在最新的 Windows Server 上实现零点击 RCE。是的,你没听错,只需利用一个漏洞,你无需任何用户交互即可实现此目的。

远程桌面许可 (RDL) 服务

远程桌面许可服务是 Windows Server 的一个组件,用于管理和颁发远程桌面服务的许可证,确保对远程应用程序和桌面的安全且合规的访问。

RDL 服务广泛部署在启用了远程桌面服务的机器上。默认情况下,远程桌面服务仅允许同时使用两个会话。要启用多个同时会话,您需要购买许可证。RDL 服务负责管理这些许可证。RDL 被广泛安装的另一个原因是,在Windows 服务器上安装远程桌面服务 (3389) 时,管理员通常会勾选安装 RDL 的选项。这导致许多启用了 3389 的服务器也启用了 RDL 服务。

在审计RDL服务之前,我们进行了网络扫描,以确定RDL服务在互联网上的部署情况。我们发现至少有17万个活跃的RDL服务直接暴露在公共互联网上,而内部网络中的数量无疑要大得多。此外,RDL服务通常部署在关键业务系统和远程桌面集群中,因此RDL服务中的预认证RCE漏洞对网络世界构成了重大威胁。

漏洞利用条件

终端服务器授权程序旨在管理将任何用户或设备连接到服务器所需的终端服务 CAL。

在CDataCoding::DecodeData过程中,会分配一个固定大小的缓冲区(21 字节),然后使用该缓冲区计算并填充用户控制的长度缓冲区,从而导致堆溢出。这是调用堆栈和伪代码。

漏洞检测POC:

https://github.com/CloudCrowSec001/CVE-2024-38077-POC/blob/main/CVE-2024-38077-poc.py

漏洞复现:

https://sites.google.com/site/zhiniangpeng/blogs/MadLicense

 

目录结构
全文