超危漏洞预警 | CVE-2024-38077 远程代码执行漏洞分析(最新揭秘漏洞触发点及补丁细节)



概述

超危漏洞来袭!微软官方在2024年7月9号发布多个远程桌面授权服务RDL(Remote Desktop Licensing)的Pre-Auth远程代码执行漏洞及相应漏洞补丁,远程桌面授权服务主要用于管理Windows Server多会话远程桌面连接许可授权。其中CVE-2024-38077漏洞影响范围最广,从Windows Server 2008到Windows Server 2025 Preview版本所有未更新该漏洞补丁的系统均存在安全风险。微软官方在7月份对该漏洞评估的可利用性为“不太可能利用(Exploitation Less Likely)”。在8月9号,有安全研究员工公开发布该漏洞技术细节、PoC代码以及漏洞验证视频,并将漏洞命名为狂躁许可MadLicense)。
从现有公开资料来看,CVE-2024-38077 MadLicense漏洞利用难度较低,并非微软安全公告所披露的难以利用。
微软MSRC CVE-2024-38077 安全公告

漏洞信息

微软官方7月9号进行漏洞披露后,悬镜云脉XSBOM数字供应链情报平台已于第一时间将该漏洞详情同步给订阅企业用户,并持续监测该漏洞的传播舆情。与此同时,悬镜供应链安全情报中心也第一时间对该漏洞细节进行技术分析和确认,并进一步对该漏洞基础信息进行完善更新如下。

CVE-2024-38077 漏洞基础信息


漏洞细节

该漏洞主要原因是Windows远程桌面授权服务RDL组件lserver.dll在处理认证授权数据时,CDataCoding::DecodeData函数将解码数据拷贝到固定大小的堆内存中时,未对拷贝数据长度做有效检查,导致发生堆内存溢出,触发内存越界写漏洞。漏洞发生在授权认证之前,因此只要Windows Server启用RDL服务(默认不启动),并正常开放TCP 135 RPC端口,任意恶意攻击者都可在未授权的情况下,通过发送特定恶意请求来攻击利用该漏洞,一旦漏洞利用成功,攻击者将以RDL服务权限(NT AUTHORITY\NEWORK SERVICE)在受害系统上远程执行任意代码。

RDL服务进程


悬镜供应链安全情报中心在对lserver.dll(10.0.26100.1版本逆向分析后CDataCoding::DecodeData在解码数据时存在堆内存溢出导致越界写漏洞,如下图所示,其中反编译代码第45行该漏洞触发点。漏洞根源主要往堆内存buf(内存大小21字节)拷贝解码数据时未对解码的数据长度进行判断检测。

CDataCoding::DecodeData漏洞函数反编译代码


堆内存大小默认21字节



漏洞补丁

针对更新补丁后的lserver.dll(10.0.26100.1150版本,在CDataCoding::DecodeData函数内可明显发现在进行数据解码时,多了3处对解码长度的检查校验逻辑。

CDataCoding::DecodeData漏洞函数补丁代码


影响范围

根据微软官方安全公告数据,如果存在以下Windows系统版本,并且未安装202407月系统补丁更新,则存在CVE-2024-38077漏洞。

系统版本
Windows  Server 2025, Preview
Windows  Server 2022, 23H2 Edition (Server Core installation)
Windows  Server 2022 (Server Core installation)
Windows  Server 2022
Windows  Server 2019 (Server Core installation)
Windows  Server 2019
Windows  Server 2016 (Server Core installation)
Windows  Server 2016
Windows  Server 2012 R2 (Server Core installation)
Windows  Server 2012 R2
Windows  Server 2012 (Server Core installation)
Windows  Server 2012
Windows  Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows  Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows  Server 2008 for x64-based Systems Service Pack 2
Windows  Server 2008 for x64-based Systems Service Pack 2
Windows  Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows  Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows  Server 2008 for 32-bit Systems Service Pack 2
Windows  Server 2008 for 32-bit Systems Service Pack 2
Windows  Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core  installation)
Windows  Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core  installation)
Windows  Server 2008 R2 for x64-based Systems Service Pack 1
Windows  Server 2008 R2 for x64-based Systems Service Pack 1

漏洞影响版本列表



排查方式

  • 判断系统版本

    对于未进行202407月微软补丁更新升级的系统,通过 winver 命令查看当前系统版本是否在“漏洞影响版本列表”中。

winver查看系统版本

  • 本地判断RDL服务状态

    如果当前系统版本存在CVE-2024-38077 漏洞,还需要进一步判断是否启动了远程桌面授权服务RDL(Remote Desktop Licensing)

    可以通过Get-Service命令查询TermServLicensing服务状态,如果状态为Running则代表RDL服务正在运行,存在被攻击风险。如果命令结果无正常返回,则表示RDL服务未启动。

Get-Service -Name "TermServLicensing"

RDL服务运行状态


  • 远程判断RDL服务状态

    可以利用python impacket库提供的rpcdump.py脚本扫描目标系统TCP 135端口,通过判断脚本返回结果里是否存在"lserver.dll"来探测目标系统是否启动lserver.dll服务。

python3 -m pip install  impacket  -i https://pypi.tuna.tsinghua.edu.cn/simple
wget https://raw.githubusercontent.com/fortra/impacket/master/examples/rpcdump.py
python3 rpcdump.py -debug 192.168.31.122 | grep -i lserver.dll -A 6


rpcdump.py远程查询RDL服务运行状态


处置方案

  • 安装最新的微软系统补丁包

  • 临时关闭RDL远程桌面授权服务

Stop-Service -Name "TermServLicensing"

临时关闭RDL服务

  • 永久禁用RDL远程桌面授权服务

在系统服务中,将"TermServLicensing"服务启动类型设置为禁用(disabled)。

禁用RDL服务


参考链接

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

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38077




悬镜云脉XSBOM数字供应链安全情报预警服务依托悬镜安全团队强大的供应链管理监测能力、AI安全大数据云端分析能力以及专家团队人工研判分析能力,对全球数字供应链投毒情报、漏洞情报、停服断供情报进行实时动态监测与溯源分析,为用户提供高级情报查询、情报订阅、可视化关联分析等企业级服务,帮助用户更快更轻松应对各种风险,智能精准预警“与我有关”的数字供应链安全情报。

悬镜数字供应链安全情报预警服务

(https://xsbom.xmirror.cn)





推荐阅读











开源的本质是群智创新!感谢每一位社区成员对OpenSCA社区的贡献与支持。欢迎来自全球用户的Star和Fork,也欢迎向社区提交ISSUE和PR,参与悬镜的数字供应链安全共建计划,用开源的方式做开源治理,让创新技术更普惠。


GitHub

https://github.com/XmirrorSecurity/OpenSCA-cli/releases


Gitee

https://gitee.com/XmirrorSecurity/OpenSCA-cli/releases


OpenSCA官网

https://opensca.xmirror.cn/


官方技术群@OpenSCA社区



免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐