CVE-2023-23397 Microsoft Outlook 特权提升漏洞

警告
本文最后更新于 2023-07-07,文中内容可能已过时。

CVE-2023-23397 Microsoft Outlook 特权提升漏洞 详情分析

CVE-2023-23397 - Security Update Guide - Microsoft - Microsoft Outlook Elevation of Privilege Vulnerability

Microsoft Mitigates Outlook Elevation of Privilege Vulnerability | MSRC Blog | Microsoft Security Response Center

CVE-2023-23397 script - Microsoft - CSS-Exchange

Patch CVE-2023-23397 Immediately: What You Need To Know and Do (trendmicro.com)

Exploiting CVE-2023-23397: Microsoft Outlook Elevation of Privilege Vulnerability - MDSec

Guidance for investigating attacks using CVE-2023-23397 - Microsoft Security Blog

Everything We Know About CVE-2023-23397 (huntress.com)

内网渗透–NTLM中继与反射浅析 - 跳跳糖 (tttang.com)

外部攻击者可以发送特制的电子邮件,导致受害者连接到攻击者控制的外部 UNC 位置。这会将受害者的 Net-NTLMv2 散列泄露给攻击者,然后攻击者可以将其中继到另一个服务并作为受害者进行身份验证。在利用 CVE-2023-23397 时,威胁者可以在特制的消息中指定 PidLidReminderFileParameter 的值,以触发 Net-NTLMv2 哈希泄漏到威胁者控制的服务器。

CVE-2023-23397 是微软 Outlook 中的一个的 EoP(特权提升) 漏洞,当攻击者发送带有扩展 MAPI 属性的信息时,会触发该漏洞,该信息具有通往不受信任网络上攻击者控制的恶意服务器的 SMB(TCP 445)共享的 UNC 路径。不需要用户互动。

威胁者利用与远程 SMB 服务器的连接发送用户的 NTLM 协商信息,然后攻击者可以对其他支持 NTLM 认证的系统进行中继认证。

所有受支持的 Microsoft Outlook for Windows 版本都会受到影响。其他版本的 Microsoft Outlook,例如 Android、iOS、Mac,以及 Outlook 网页版和其他 M365 服务不受影响。

  • Microsoft Outlook 2016 (64-bit edition)
  • Microsoft Outlook 2016 (32-bit edition)
  • Microsoft Outlook 2013 Service Pack 1 (64-bit editions)
  • Microsoft Outlook 2013 Service Pack 1 (32-bit editions)
  • Microsoft Outlook 2013 RT Service Pack 1
  • Microsoft Office LTSC 2021 for 64-bit editions
  • Microsoft Office LTSC 2021 for 32-bit editions
  • Microsoft Office 2019 for 64-bit editions
  • Microsoft Office 2019 for 32-bit editions
  • Microsoft 365 Apps for Enterprise for 64-bit Systems
  • Microsoft 365 Apps for Enterprise for 32-bit Systems

在漏洞出来的初期,包含官方通告在内的文章都提及到,基于 WebDAV 协议的交互存在通过此漏洞利用技术泄露凭据的风险。实际上该漏洞仅影响 SMB 协议。

基于 WebDAV 协议的交互不存在通过此漏洞利用技术泄露凭据的风险。虽然威胁参与者基础设施可能会请求 Net-NTLMv2 身份验证,但 Windows 将遵守定义的互联网安全区域,并且不会发送(泄漏)Net-NTLMv2 哈希值。换句话说,该漏洞仅影响 SMB 协议。如果目标设备可以通过端口 445 (SMB) 与威胁参与者基础设施通信,则可能会发送 Net-NTLMv2 哈希值;但是,如果无法通过 SMB 进行此通信,Windows 将退回到利用 WebDAV。 WebDAV 将与威胁参与者基础设施建立连接,但不会发送 Net-NTLMv2 哈希。

简单描述 NTLMv2 Hash 中继攻击,已了解此部分的可以直接阅读下一节。

1.客户端向服务器发送登录请求,密码在客户端被 hash 一次 2.客户端向服务器发送 username 3.服务器返回一个 16 字节的挑战码(Challenge),并将已存储的用户密码 hash 加密这个 Challenge,生成 Challenge1 4.客户端将第一步 hash 的密码与 Challenge 再进行 hash 一次,生成 response 即 Challenge2 5.客户端将 response 发送给服务器 6.服务器比较 Challenge1 和 response,相同则认证成功

2.jpg

SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口 (ApplicationProgram Interface,简称API),一般端口使用为139,445。

SMB协议是一个很重要的协议,目前绝大多数的PC上都在运行这一协议,windows系统都充当着SMB协议的客户端和服务器,所以SMB是一个遵循客户机服务器模式的协议。SMB服务器负责通过网络提供可用的共享资源给SMB客户机,服务器和客户机之间通过TCP/IP协议、或者IPX协议、或者是NetBEUI进行连接。

当远程连接计算机访问共享资源时有两种方式:

  1. 共享计算机地址\共IP享资源路径
  2. 共享计算机名\共享资源路径

域环境底下域用户的账号密码 Hash 保存在域控的 ntds.dit 里面。如下没有限制域用户登录到某台机子,那就可以将该域用户 Relay 到别人的机子,或者是拿到域控的请求,将域控 Relay 到普通的机子,比如域管运维所在的机子。

  • 域普通用户 != 中继
  • 域管 == 中继
  • 域普通用户+域管理员组 == 中继

img

▲图片:SMB 中继攻击其实是一种中间人攻击

攻击者向受害者发送一条带有扩展消息应用程序接口 (MAPI) 属性的消息,该消息具有通向远程攻击者控制的服务器消息块(SMB,通过 TCP 445)的 UNC 路径。无论收件人是否看到消息,该漏洞都会被利用。攻击者远程发送以 .msg 为代表的恶意日历邀请(Outlook 中支持提醒的消息格式),以使用“PidLidReminderFileParameter”(提醒的自定义提醒声音选项)触发易受攻击的 API 端点 PlayReminderSound。

当受害者连接到攻击者的 SMB 服务器时,与远程服务器的连接会自动发送用户的 NTLM 协商消息,攻击者可以使用该消息对支持 NTLM 身份验证的其他系统进行身份验证。

outlook

图片:CVE-2023-23397 中的 NTLM 中继攻击

NTLMv2 Hash是 Windows 用于身份验证的最新协议,它用于许多服务,每个响应都包含用户信息的哈希表示,例如用户名和密码。因此,威胁参与者可以尝试 NTLM 中继攻击来获得对其他服务的访问权限,或者如果受感染的用户是管理员,则可以完全攻陷域。虽然 Microsoft 365 等在线服务由于不支持 NTLM 身份验证而不易受到此攻击,但 Microsoft 365 Windows Outlook 应用程序仍然容易受到攻击。

用户交互不需要触发(甚至在消息预览之前),也不需要高权限。 CVE-2023-23397 是一个 zero-touch 漏洞,当受害客户端收到提示和通知时(例如,约会或任务在指定时间前五分钟提示时),就会触发该漏洞。很难阻止远程用户的出站 SMB 流量。攻击者可以使用相同的凭据来访问其他资源。

Exchange Server(含 2023 年 3 月 SU)和 Exchange Online 在发送或接收新邮件时在 TNEF 转换时删除 PidLidReminderFileParameter 邮件属性。邮件的扩展 MAPI 属性 PidLidReminderFileParameter 的值是此漏洞关键属性。

image-20230327111343907

▲图片:官方检查脚本中 PidLidReminderFileParameter 属性相关的代码片段

文档中对此属性的定义是:

指定当该对象的提醒过期时客户端应播放的声音的文件名。如果此属性不存在,则客户端可以使用默认值。

MS-OXORMDR 文档中提到:

PidLidReminderFileParameter 属性([MS-OXPROPS] 2.219 节)应该指定声音<1> 的完整路径(但可以只指定文件名),当 Message 对象的提醒过期时客户端应该播放该声音<1>。如果此属性不存在,则客户端可以使用默认值。

如果客户端使用 PidLidReminderFileParameter 属性的值来播放声音并且它不代表完整路径,则客户端可以搜索匹配的文件名。

说明文档都说明是一个文件名,在此漏洞中正是利用此属性,将 PidLidReminderFileParameter 属性改成 UNC 路径即可构造出 PoC 的雏形。

Screenshots of Outlook on Windows showing how to set a custom sound that plays when a reminder is triggered

图片:具体功能是在Outlook 中触发提醒时设置要播放的自定义声音

使用当前公开的 PoC 构造的恶意 Date,mfcmapi 查看该 Date,发现该邮件附带的 PidLidReminder 相关属性已经被修改成如下。

image-20230327142402847

▲图片:生成的扩展 MAPI 属性及其值是自定义在触发提醒时播放的声音的结果,如使用 MFCMAPI 所见

攻击成功时,无任何进程被创建或者启动。在官方的博客中提到,在以下情况下会有进程调用。

如果到 Internet 的 SMB 流量被您的组织阻止或以其他方式失败,Windows 将回退到使用 WebDAV 来尝试完成连接。

image-20230327161755674

▲图片:WIN7下,攻击成功时,无任何进程被创建或者启动,UNC 为 \\10.10.10.10\notexists\file.wav

image-20230327163636020

图片:WIN7下,攻击成功时,无任何进程被创建或者启动,UNC 为\\files.domain.com@80\file.wav

image-20230327162310682

▲图片:SMB 回退到使用 WebDAV 时的进程创建事件

image-20230327165018634

▲图片:公开报告中的 SMB 回退到使用 WebDAV 时的进程创建事件

新的第一次利用尝试至少会调用一些 svchost.exe 和 rundll32.exe 进程来关闭。但是需要注意的是,这样的攻击是不成功的,该漏洞仅影响 SMB 协议

rundll32.exe C:\Windows\system32\davclnt.dll,DavSetCookie 192.168.111.138 http://192.168.111.138/share/

以下是微软观察到的在野利用场景。

对 Exchange Server 使用 Net-NTLMv2 中继攻击。

使用 Exchange Web 服务 (EWS) API 向组织内部和外部的用户发送带有 PidLidReminderFileParameter 扩展 MAPI 属性恶意值的其他邮件。

使用 EWS API 枚举受感染用户邮箱中的文件夹,并使用 UpdateFolder API 更改邮箱文件夹权限,以便任何经过身份验证的用户都可以使用“所有者”权限访问所有邮箱文件夹内容。即使密码被重置或以其他方式补救,这种技术也建立了对用户邮箱内容的额外持久访问。

下图显示了使用 Net-NTLMv2 中继攻击的初始访问、通过修改邮箱文件夹权限的持久性以及通过发送其他恶意邮件的横向移动。

Diagram showing exploitation of the vulnerability

▲图片:获得对 Exchange Server 的未授权访问,并*修改邮箱文件夹权限*以实现对邮箱的持久访问

参考-利用hash对Exchange资源的访问:

Exchange Web Service(EWS)开发指南2——SOAP XML message (3gstudent.github.io)

渗透技巧——Pass the Hash with Exchange Web Service (3gstudent.github.io)

image-20230327191312598

▲图片:查看收件箱中的邮件信息(使用hash登录)

参考-有Hash实现对邮箱的持久访问:

渗透基础——持续获得Exchange用户收件箱邮件的方法 (3gstudent.github.io)

image-20230327191734706

▲图片:只有邮件用户的Hash,先使用hash登录ews,再通过程序发送SOAP消息实现

Diagram showing threat actor extending access to a compromised environment

图片:攻击者通过使用受感染的电子邮件帐户,以同一组织的其他成员为目标,在受感染的环境中进一步扩展访问权限

当攻击者拿到用户的 Hash 的时候,可以做到:

  • 查看收件箱中的邮件信息(邮件内容,附件);
  • 更新、查看、删除收邮箱委托;
  • 更新、查看、删除收邮箱规则;
  • 等等…

做到这些可以进一步做信息收集和其他行为。

  1. 更新 Outlook,March 2023 Monthly Security Update。
  2. 阻止 TCP 445/SMB 从您的网络出站。这将阻止将 NTLM 身份验证消息发送到远程文件共享。如果无法做到这一点,我们建议监控通过端口 445 的出站流量以查找未知的外部 IP 地址,然后识别并阻止它们。
  3. 在客户端和服务器上强制执行 SMB 签名以防止中继攻击。
  4. 禁用 Outlook 客户端的铃声提醒