Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

admin 2024年1月11日12:45:58评论59 views字数 1707阅读5分41秒阅读模式
漏洞描述

2023年11月微软发布的安全更新中,修复了笔者报送的CVE-2023-36439。

利用该漏洞,在与Exchange服务器位于同一内部网络的情况下,经过身份验证的攻击者可以通过PowerShell远程会话实现远程代码执行。攻击者利用CVE-2023-36439可以在服务器邮箱后端获得NT AUTHORITYSYSTEM的远程代码执行权限。    

漏洞背景

Exchange 命令行管理程序基于Windows PowerShell技术构建,并提供强大的命令行界面,可实现 Exchange 管理任务的自动化。可以使用 Exchange 命令行管理程序 来管理 Exchange 的各个方面。例如,可以创建电子邮件帐户、创建发送连接器和接收连接器、配置邮箱数据库属性以及管理通讯组。

本漏洞位于Exchange针对Powershell数据的反序列化过程中,理解proxynotshell相关漏洞原理有助于理解本漏洞触发逻辑,相关分析可参考《CONTROL YOUR TYPES OR GET PWNED: REMOTE CODE EXECUTION IN EXCHANGE POWERSHELL BACKEND》。

漏洞分析

本漏洞编号在11月发布,但漏洞在10月补丁中已经被修补。同时11月补丁中提到新增了“Serialized Data Signing feature”机制来缓解反序列化相关漏洞问题。

在11月补丁的SerializationTypeConverter.cs中可以观察到针对被反序列化数据的校验:

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

而在10月补丁中,通过对不同版本ChainedSerializationBinder.cs进行对比可直观发现以下结果:

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

BuildDisallowedTypesForDeserialization函数中新增了黑名单类型System.Xaml.XamlServices

System.Xaml.XamlServices.Parse方法与常见的XamlReader.Parse其实在功能、危害及利用方法上其实没有本质区别。

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

比如执行以上代码将调用计算器,所以本漏洞实际上是CVE-2022-41082的一个变种。

但其实从CVE-2022-41082以后,增加了ValidateTypeToDeserialize函数对类型进行黑名单校验;在CVE-2023-21529CVE-2023-28310 以后增加了vistor模式的递归黑名单校验;在CVE-2023-36745CVE-2023-35388漏洞后增加了vistor模式的白名单校验,为什么这个漏洞还能够触发?

以下是Exchange反序列化时,白名单校验的逻辑:

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

可以看typeToDeserialize.IsAbstract为true,且类型名称不为System.Type,认为类型合法。

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

可以看到XamlServices并没有被声明为Abstract,但IsAbstract的属性为true

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

这是因为在C#中,如果一个类被声明为static,则它的IsAbstract属性会是true。在C#中,静态类在概念上是抽象的,不能被实例化。

所以XamlServices以这种“反直觉”的方式成为了漏网之鱼,只需要简单替换目标类,利用方法与CVE-2022-41082完全一致。

总 结

本文分析了CVE-2023-36439的补丁及漏洞成因,同时简单统计可以发现关于Exchange Powershell模块已经披露了超过10个相关漏洞,并且大部分都可以通过变种分析来发现,文中提到的多个漏洞编号其实均为CVE-2022-41082(proxynotshell)的变种漏洞,同时比如10月补丁的CVE-2023-36778其实也是CVE-2022-41076的相似漏洞。通过本文希望能帮助读者更好理解Exchange Powershell模块的相关漏洞原理。

【版权说明】

本作品著作权归m4yfly所有,未经作者同意,不得转载。

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析
m4yfly

天工实验室安全研究员

专注于代码审计、物联网安全。

Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

原文始发于微信公众号(破壳平台):Exchange Server(CVE-2023-36439)远程代码执行漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月11日12:45:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Exchange Server(CVE-2023-36439)远程代码执行漏洞分析http://cn-sec.com/archives/2214053.html

发表评论

匿名网友 填写信息