KB4536987补丁踩坑记录

安全漏洞说明

漏洞名称

Microsoft Exchange远程代码执行漏洞

0x01 关键词

微软、Microsoft Exchange、远程代码执行

0x02 背景

2020年2月11日,Microsoft发布了重要级别的补丁程序,以解决Microsoft Exchange Server中的远程代码执行漏洞(CVE-2020-0688)。成功利用此漏洞的攻击者可以完全控制受影响的Exchange服务器,在Exchange服务器上执行任意代码、随意窃取或伪造公司电子邮件通信。目前此漏洞的细节已经在互联网公开,有被恶意利用的可能。鉴于漏洞危害较大,建议客户尽快升级安装补丁程序。

0X04 威胁程度

个人风险评级:低危

企业风险评级:高危

情报风险预警:对公司影响等级为高,对使用微软Microsoft Exchange Server的企业均有被攻击的风险。

0X05 情报描述

2020年2月11日,Microsoft发布了针对Microsoft Exchange Server中的远程代码执行漏洞(CVE-2020-0688)的补丁程序。目前此漏洞的利用细节已经在互联网公开。

当服务器在安装时无法正确创建唯一密钥时,Microsoft Exchange Server中将存在一个远程代码执行漏洞。该漏洞是由于Exchange控制面板(ECP)组件中使用了静态密钥(validationKey和decryptionKey)。这些密钥用于为ViewState提供安全性。ViewState是ASP.NET Web应用程序在客户端上以序列化格式存储的服务器端数据。客户端通过__VIEWSTATE 请求参数将此数据传回服务器。经过身份验证的攻击者可以诱使服务器反序列化恶意制作的ViewState数据,从而在Exchange控制面板Web 应用程序的上下文中执行任意.NET 代码。由于Exchange控制面板Web 应用程序是以SYSTEM 权限运行,因而成功利用此漏洞的攻击者可以以SYSTEM身份执行任意代码,并完全破坏目标Exchange服务器。

0X06 影响版本

Microsoft Exchange Server 2010 Service Pack 3 Update Rollup 30

Microsoft Exchange Server 2013 Cumulative Update 23

Microsoft Exchange Server 2016 Cumulative Update 14

Microsoft Exchange Server 2016 Cumulative Update 15

Microsoft Exchange Server 2019 Cumulative Update 3

Microsoft Exchange Server 2019 Cumulative Update 4

受影响产品及版本:

Microsoft Exchange Server 2010、2013、2016、2019

解决方案:

0x07总结以及处置建议

目前,微软官方已发布针对受影响版本的补丁程序,建议用户尽快安装:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0688

0x08参考链接

[1] https://www.zerodayinitiative.com/blog/2020/2/24/cve-2020-0688-remotecode-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys

[2] https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0688

补丁安装步骤

2010

1、 官网 下载,2010全版本都可以安装,没有前置条件,更新重启后,补丁列表里找到KB4536987即为安装成功

2016

1、补丁只支持cu14和cu15版本,如果cu过低,微软没有提供对应补丁包,需要先升级cu版本到支持版本后下载对应版本补丁

2、以管理员身份运行cmd,用cmd启动补丁安装文件,一直点击下一步,不需要做任何更改, 可以完成安装,安装完成后,会提示重启服务器,重启完成后,补丁列表里找到KB4536987即为安装成功

2016升级cu15

1、现有exchange2016服务器版本为cu13,官方没有发布cu13的补丁包,需要升级cu版本

2、升级cu15前置条件为 .net4.8,官网 下载4.8安装包,安装后需重启服务器生效

3、exchange shell 运行以下命令

Set-MailboxServer servername -DatabaseCopyActivationDisabledAndMoveNow $true

此命令将待升级mailbox所有副本进行转移,转移到dag其他mailbox上进行激活,并且此mailbox副本无法进行激活操作

4、官网 下载cu15安装包,以管理员身份运行,当先决条件检查完毕后,点击安装即可,安装完成后手动重启服务器,查看版本可以看到升级成功

最后步骤

1、exchange shell 运行以下命令

Set-MailboxServer servername -DatabaseCopyActivationDisabledAndMoveNow $false 

此命令将mailbox恢复dag,并且可以将副本激活在此mailbox上

2、所有dag内mailbox补丁都安装测试完毕后,exchange shell 运行以下命令

cd $exscripts
.\RedistributeActiveDatabases.ps1 -DagName EX2016DAG01 BalanceDbsByActivationPreference

自动平衡dag负载到最佳状态

3、检查iis配置,部分配置会被还原,需要变更操作

1、.net4.8 安装时会卡主,现象为进度条显示进度为0,持续超过2小时以上没有进度,此时需要任务管理强行关闭更新,多次重启服务器后再进行安装

2、2016补丁文件运行时,一定不要双击直接运行,必须用管理员身份运行的cmd启动补丁文件,如果双击直接运行或没有用管理员身份运行cmd来启动,会导致补丁安装成功但实际不生效

3、2016补丁打完重启后,exchange有关服务可能会处于禁用状态,需要调整为自动模式然后启用即可

4、2016补丁安装过成功如果弹窗提示部分进程被占用,需要处理。需要手动关闭相关进程后重试,或取消补丁安装重新服务器后再进行补丁安装,不可以忽略,否则会导致补丁安装成功但实际不生效

5、漏洞验证是根据user所在db的mailbox服务器是否安装补丁决定的,和客户端直接连接的服务器无关

相关文档

1、升级cu参考文档:https://www.sysgeek.cn/installing-cumulative-updates-exchange-server-2016/

2、exchange build 参数对照实际cu版本:https://docs.microsoft.com/zh-cn/Exchange/new-features/build-numbers-and-release-dates?redirectedfrom=MSDN&view=exchserver-2019#Exchange

3、2016 cu15官方升级文档:https://support.microsoft.com/en-us/help/4522150/cumulative-update-15-for-exchange-server-2016