勒索软件利用Exchange 1day漏洞传播全解析

一、 事件概述

近日,绿盟科技CERT监测发现多起利用Microsoft Exchange多个漏洞(ProxyShell)进行攻击的安全事件,并有新晋的LockFile勒索病毒组织利用ProxyShell与PetitPotam漏洞对企业域环境进行攻击,最终导致多家单位域内主机被批量执行勒索加密。

有安全研究人员在今年4月曾向微软报送了多个Exchange服务器漏洞,微软在4月和5月的安全更新中,发布补丁修复了3个Exchange Server相关的漏洞,且有两个漏洞于7月安全更新时才进行披露,漏洞情况如下:

Microsoft Exchange Server 远程代码执行漏洞(CVE-2021-34473):由于在访问资源时缺乏对 URI 的验证,未经身份验证的攻击者可通过已知API接口访问受限制的内部API接口。

官方通告:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34473

Microsoft Exchange权限提升漏洞(CVE-2021-34523):由于在执行 Exchange PowerShell 命令之前没有进行对访问令牌的验证,攻击者可以伪造任意身份在受限制的环境中进行代码执行。

官方通告:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34523

Microsoft Exchange Server 安全功能绕过漏洞(CVE-2021-31207):由于部分Exchange PowerShell命令接口在写入文件时未限制写入路径和后缀,导致攻击者可进行任意文件写入。

官方通告:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-31207

Windows LSA 欺骗漏洞(CVE-2021-36942)又称PetitPotam:攻击者利用EFSRPC(加密文件系统远程协议)进行NTLM中继攻击,可实现系统权限提升。

官方通告:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36942

目前以上漏洞的EXP已公开并武器化,攻击者通过以上漏洞进行组合利用可在受影响的Exchange服务器上远程执行代码,进而获取目标主机系统最高权限。最近相关攻击活动肆虐,请受影响的用户尽快采取措施进行防护。

二、事件时间线

2021年4月:安全研究员向微软报送多个Exchange服务器漏洞

2021年4月-5月:微软发布ProxyShell漏洞修复补丁

2021年7月14日:微软月度安全更新发布CVE-2021-34473与CVE-2021-31207漏洞通告

2021年7月19日:法国研究员发现Windows系统存在利用EFSRPC(加密文件系统远程协议)进行中继攻击的漏洞(PetitPotam),并发布了概念验证代码PoC。

2021年7月24日:微软发布ADV210003通告,揭露利用未配置 Active Directory 证书服务 (AD CS)保护的NTLM中继攻击(但未提供修复补丁)。

2021年8月6日:台湾安全研究员在BlackHat USA 2021会议上公布Exchange漏洞细节,并将其命名为ProxyShell。

2021年8月11日:微软月度安全更新为NTLM中继攻击(PetitPotam)分配漏洞编号CVE-2021-36942,并发布了修复补丁。

2021年8月20日:ProxyShell漏洞的EXP在GitHub、Reddit等多个平台上公开,知名漏洞利用框架Metasploit也发布了成熟利用代码。

2021年8月23日:勒索软件LockFile等黑客组织利用ProxyShell与PetitPotam漏洞进行在野攻击的安全事件频发。

2021年8月25日:微软的Exchange团队在博客发布安全提醒,督促用户尽快安装相关漏洞补丁。

三、LockFile勒索组织攻击链分析

  • ProxyShell植入WebShell

利用Exchange对路径过滤不严,通过路径混淆生成的SSRF可使攻击者通过访问PowerShell端点,并利用Remote PowerShell Session将构造的恶意邮件信息打包到外部文件,利用文件写入实现getshell,WebShell默认写入路径为C:\inetpub\wwwroot\aspnet_client\。

首先由于Exchange对 Autodiscover后端请求端点的/Autodiscover/Autodiscover.json路径过滤不当,配合触发ExplicitLogon功能的URL请求格式化,导致攻击者可构建URL配合Cookie来直接访问任意受限的后端API,利用的漏洞为CVE-2021-34473。

漏洞核心代码如下:

最终可构造如下的恶意请求:

通过恶意URL可以获取到受害系统上攻击者想要获得权限账户的LDAP DN信息,进而定位到受害者账户的系统存储位置。

获取到对应存储位置后,进一步使用此SSRF漏洞调用Exchange MAPI 的 EMSMDB 邮件传输接口,由于Exchange Web应用运行在SYSTEM权限下,调用MAPI时使用的系统权限为SYSTEM,并非受害者账户,造成了访问MAPI时调用账户前后权限不一致的情况,进而触发报错,并在报错信息中泄露了受害者账户的 SID。

恶意请求如下:

报错信息如下:

通过泄露的受害者账户SID,配合Windows固定的特权组SID,可用于构造Windows系统身份认证的会话Token。该Token本应通过HTTP请求Header由前端反向代理服务器构建后传输给后端,此处由于控制不严,造成Token对应Header不存在时尝试通过URL参数解析这一行为,配合上一处SSRF对URL的控制,造成了进一步获得Exchange对应的PowerShell 端点的Exchange Remote PowerShell Management Session权限,利用的漏洞为CVE-2021-34523。

漏洞相关核心代码为:

Exchange Remote PowerShell Management Session权限获得后,由于此Session属于受限制的PowerShell环境,无法执行Exchange PowerShell Cmdlet之外的命令。但由于个人邮箱导出备份对应的New-MailboxExportRequest命令的导出文件保存位置参数FilePath没有对文件路径、文件名及文件后缀进行限制,造成了任意文件写入,相关利用的Shell命令如下所示,利用的漏洞为CVE-2021-31207。

攻击者通过配合上述SSRF漏洞调用对应Exchange API端点,向受害者邮箱草稿文件夹存储或向受害者邮箱发送经过加密的、包含恶意代码的WebShell文件,确保在导出个人邮箱备份进行二次加密时能够还原WebShell信息,达到写入WebShell的目的。WebShell的加密使用了微软加密PST文件格式所使用的Permutative Encoding方式,确保字符能够经过一定的置换算法实现加解密的效果。

捕获到的样本大部分均为加密后的一句话后门:

其加密的拼接字符串由常量字符串及char()计算后的字符串两部分构成,将char替换为String.fromCharCode,再使用window.atob进行解码,最终解密后的WebShell如下:

  • DLL劫持植入Cobalt Strike

攻击者通过PowerShell执行wget命令下载后续系列攻击工具包,并通过频繁变换服务端口以及随机命名文件的方式(如:http://x.x.x.x:45261/5rFxNBwH6ol0Q9z1sAaIZ),防止被研究人员捕获分析,目前已知的早期攻击者下载IP包括:209.14.0.234、45.91.83.176、183.226.73.185、178.63.226.197。

攻击者首先利用工具包中的EfsPotato.exe,实现本地权限提升,以系统最高权限运行Cobalt Strike木马加载器程序active_desktop_launcher.exe。

提权工具EfsPotato利用的漏洞为CVE-2021-36942,又被称为PetitPotam,攻击者通过利用EFSRPC(加密文件系统远程协议),进行NTLM中继攻击可实现AD域内权限提升或本地权限提升。

active_desktop_launcher是酷狗音乐的正常启动程序,具备有效数字签名,主要用于加载执行恶意代码动态链接库active_desktop_render.dll。

程序调用了两个函数SetDesktopMonitorHook和ClearDesktopMonitorHook,这两个函数均在active_desktop_render.dll中,其中SetDesktopMonitorHook执行下列行为:

1、尝试打开当前目录下的desktop.ini文件,如果不存在,则退出程序。

2、创建新线程,在新线程里打开desktop.ini,并且将文件映射到内存中。

3、通过内存映射的方式读取文件内容,然后异或解密文件内容并作为shellcode执行。

ClearDesktopMonitorHook则是读取文件进行字符串比对操作,然后退出进程,并无实际功能,捕获样本中Cobalt Strike木马C2地址为:sc.microsofts.net/messages/DALBNSf26。

  • AD域组策略批量下发脚本

攻击者将勒索病毒相关利用工具拷贝到域控的NETLOGON共享目录下,对应绝对路径为C:\Windows\Sysvol\Sysvol\[DomainName]\Scripts,以便域内主机可通过UNC路径\\server\netlogon访问相关工具。

同时在域控制器组策略管理中创建用于脚本执行的GPO(组策略对象),并链接下发至域内主机。

从捕获的脚本文件autologin.bat分析,首先将NETLOGON共享目录下的勒索病毒文件autoupdate.exe及KDU内核程序工具(包括autologin.exe、autologin.dll、autologin.sys)拷贝到本地C:\Windows\Temp目录下,通过KDU工具获取系统内核权限结束杀软进程,最后执行勒索病毒文件。

  • KDU工具结束多个杀软进程

攻击者将KDU工具(开源Windows驱动加载器,通过漏洞利用实现DSG绕过)重命名为autologin,通过bat脚本将相关程序拷贝到临时目录,并加载执行指定驱动文件,从而实现以内核权限执行代码,结束杀软进程。

对攻击者加载的sys文件进行分析,发现其功能较为简单,即遍历系统全部进程,根据进程名定位杀软进程,并将其结束。

驱动程序中保存的部分进程名称如下,涉及包括McAfee、Symantec、Windows Defender、VIPRE在内的多个杀毒软件。

autologin.sys驱动加载后,可通过工具获取驱动程序的输出内容:

值得注意的是,KDU是将驱动文件以映射方式加载到内存执行,而非使用正常的驱动加载流程,因此传统排查工具无法获取其加载的驱动。

  • 执行LockFile加密并自删除

autoupdate.exe是LockFile用于加密文件的64位程序,程序本身通过UPX加壳。

程序主要有以下行为:

1、创建互斥量”25a01bb859125507013a2fe9737d3c33″。

2、对一些wmic命令进行解码并用cmd /c执行,共执行以下7条命令,用于终止相关进程,包括VMware、VirtualBox、SQLServer、MySQL、Oracle等。

wmic process where “name  like ‘%vmwp%'” call terminate

wmic process where “name  like ‘%vbox%'” call terminate

wmic process where “name  like ‘%sqlservr%'” call terminate

wmic process where “name  like ‘%mysqld%'” call terminate

wmic process where “name  like ‘%omtsreco%'” call terminate

wmic process where “name  like ‘%tnslsnr%'” call terminate

wmic process where “name  like ‘%vmware%'” call terminate

3、获取所有逻辑驱动器盘符,如果驱动器类型为硬盘或者闪存盘,则会创建一个新线程加密对应的驱动器文件,并给加密文件名添加.lockfile后缀,同时在驱动器目录创建勒索信息文件 LOCKFILE-README-<computer name>-<time>.hta,其中<computer name>是计算机名,<time>为时间戳,并将事先编码好的内容写入hta文件。

待所有文件加密结束后,生成%PUBLIC%\LOCKFILE-README.hta文件并调用mshta执行。

加密过程使用了Rijndael算法(AES使用的算法)对文件内容进行加密。

4、最后创建进程执行cmd /c ping 127.0.0.1 -n 5 && del “%s” && exit删除程序自身。

四、攻击排查

1、用户可根据此次事件中的IOC信息,排查当前网络中是否存在以下IP/域名通信记录。

Cobalt Strike C2域名:

sc.microsofts.net

PowerShell下载IP

209.14.0.234

45.91.83.176

183.226.73.185

178.63.226.197

2、排查系统应用程序日志中,是否存在以下事件序列:Front End HTTP Proxy à Autodiscover à MapiMailboxAppPool。

3、排查Exchange访问日志中,是否存在以下特征序列:

(1)/autodiscover/autodiscover.json@域名/ews/exchange.asmx

(2)/autodiscover/autodiscover.json@域名/autodiscover/autodiscover.xml

(3)/autodiscover/autodiscover.json@域名/mapi/emsmdb

(4)/autodiscover/autodiscover.json@域名/powershell/?X-Rps-CAT=<Base64字符串>

4、排查Exchange审计日志中,是否存在以下特征:

(1)New-ManagementRoleAssignment-> New-MailboxExportRequest

(2)Export Request写入路径为Web目录、C:\ProgramData 或C:\Users\目录

Exchange审计日志默认位于Exchange安装目录下,如:C:\Program Files\Microsoft\Exchange Server\V15\Logging\LocalQueue\Exchange

5、排查ASP.Net根目录(如:C:\inetpub\wwwroot\aspnet_client\)及Exchange前端目录(如:C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy \owa\auth)是否存在可疑WebShell,同时排查IIS存储配置区文件(如:C:\Windows\System32\inetsrv\config\applicationHost.config)的sites节点中是否存在可疑的virtualDirectory配置项。

目前监测到的样本中,部分攻击者通过修改该配置文件,实现将WebShell植入Web路径下,同时通过创建Windows设备名目录做进一步隐藏。

五、影响范围

ProxyShell漏洞受影响版本

  • Exchange Server 2010(官方已停止维护)
  • Exchange Server 2013
  • Exchange Server 2016
  • Exchange Server 2019

PetitPotam漏洞受影响版本

  • Windows Server, version 20H2 (Server Core Installation)
  • Windows Server, version 2004 (Server Core installation)
  • 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
  • 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 R2 for x64-based Systems Service Pack 1 (Server Core installation)
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1

六、ProxyShell漏洞检测

  • 脚本检测

用户可使用微软官方提供的Exchange Server运行状况检查脚本,判断查当前Exchange是否在漏洞影响范围,下载地址:https://microsoft.github.io/CSS-Exchange/Diagnostics/HealthChecker/

  • 产品检测

绿盟科技远程安全评估系统(RSAS)与WEB应用漏洞扫描系统(WVSS)已具备对此次漏洞的扫描检测能力,请有部署设备用户升级插件包至V6.0R02F01.2405及以上版本。下载链接如下:

 升级包版本号升级包下载链接
RSAS V6 系统插件包V6.0R02F01.2405http://update.nsfocus.com/update/downloads/id/118556
RSAS V6 web插件包V6.0R02F00.2305http://update.nsfocus.com/update/downloads/id/118857
WVSS V6 web插件包V6.0R03F00.224http://update.nsfocus.com/update/downloads/id/118860

关于RSAS的升级配置指导,请参考如下链接:

https://mp.weixin.qq.com/s/SgOaCZeKrNn-4uR8Yj_C3Q

七、漏洞防护

  • 补丁更新

目前微软官方已针对受支持的产品版本发布了修复以上漏洞的安全补丁,建议受影响用户开启系统自动更新安装补丁进行防护。

注:由于网络问题、计算机环境问题等原因,Windows Update的补丁更新可能出现失败。用户在安装补丁后,应及时检查补丁是否成功更新。右键点击Windows徽标,选择“设置(N)”,选择“更新和安全”-“Windows更新”,查看该页面上的提示信息,也可点击“查看更新历史记录”查看历史更新情况。

针对未成功安装更新补丁的情况,可直接下载离线安装包进行更新,下载链接如下:

产品更新补丁编号补丁下载链接MSExchangeRPC版本
Windows ServerKB5005413https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36942
Microsoft Exchange Server 2019 Cumulative Update 10KB5004780https://www.microsoft.com/en-us/download/details.aspx?id=10330915.02.0922.013
Microsoft Exchange Server 2019 Cumulative Update 9KB5004780https://www.microsoft.com/en-us/download/details.aspx?id=10330815.02.0858.015
Microsoft Exchange Server 2019 Cumulative Update 8KB5003435https://www.microsoft.com/en-us/download/details.aspx?id=10310215.02.0792.015
Microsoft Exchange Server 2016 Cumulative Update 21KB5004779https://www.microsoft.com/zh-CN/download/details.aspx?id=10331115.01.2308.014
Microsoft Exchange Server 2016 Cumulative Update 20KB5004779https://www.microsoft.com/en-us/download/details.aspx?id=10331015.01.2242.012
Microsoft Exchange Server 2016 Cumulative Update 19KB5003435https://www.microsoft.com/en-us/download/details.aspx?id=10310015.01.2176.014
Microsoft Exchange Server 2013 Cumulative Update 23KB5004778https://www.microsoft.com/en-us/download/details.aspx?id=10331215.00.1497.023

【注】:建议您在安装补丁前做好数据备份工作,避免出现意外。

MSExchangeRPC对应文件为Microsoft.Exchange.Rpc.ClientAccess.Service.exe:

  • 产品防护

针对此次ProxyShell漏洞,绿盟科技Web应用防护系统(WAF)已发布规则升级包,请相关用户升级规则,以形成安全产品防护能力。安全防护产品规则版本号如下:

 升级包版本号升级包下载链接
WAF规则6.0.7.1升级包6.0.7.1.49846http://update.nsfocus.com/update/downloads/id/118859
WAF规则6.0.7.0升级包6.0.7.0.49846http://update.nsfocus.com/update/downloads/id/118861

WAF规则升级的操作步骤详见如下链接:

https://mp.weixin.qq.com/s/7F8WCzWsuJ5T2E9e01wNog

  • 防护建议
  1. 在未完成补丁修复之前,通过入侵检测设备重点监测Exchange服务器非法外连及对内端口扫描和蠕虫行为;
  2. 建议相关用户请勿打开来历不明的邮件,避免被攻击者利用漏洞在机器上执行恶意代码;
  3. 如果不能及时安装补丁,建议关注Exchange用户登录异常情况,清理僵尸账号、离职员工或供应商账号,以及重置登录异常的账户和弱口令账户密码,并使其满足较强的口令规范。

声明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。

绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

Spread the word. Share this post!

Meet The Author

Leave Comment