导语:CVE-2021-34473作为ProxyShell攻击链的基础,验证简单,危害巨大。站在防御的角度,建议用户尽快更新补丁。

前言

Orange在今年的BlackHat演讲中介绍了在Pwn2Own 2021上使用的Microsoft Exchange攻击链,他分享的内容给了我很大的启发。
【学习资料】

本文仅在技术研究的角度记录我在研究ProxyShell中的细节,分析利用思路。

简介

本文将要介绍以下内容:

◼调试环境搭建

◼漏洞分析

◼利用思路

调试环境搭建

1.禁用Visual Studio中的调试优化

设置环境变量COMPLUS_ZapDisable=1

重启系统【学习资料】

2.查看Exchange中对应的进程

执行命令:

可以获得Exchange的所有进程和对应的pid,如下图

3.使用dnSpy进行调试

打开相关的dll文件并在待调试的位置下断点,选择附加进程开始调试

如果不确定待调试的Exchange进程,可以选择所有w3wp.exe

漏洞调试

使用dnSpy打开文件C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\bin\Microsoft.Exchange.FrontEndHttpProxy.dll

依次定位到Microsoft.Exchange.Clients.Owa.Core -> Microsoft.Exchange.HttpProxy

关于SSRF漏洞(CVE-2021-34473)的漏洞原理可以参考如下文章:

https://peterjson.medium.com/reproducing-the-proxyshell-pwn2own-exploit-49743a4ea9a1

漏洞分析

1.判断漏洞是否存在

这里使用Orange原文给出的方法:

访问:https:///autodiscover/autodiscover.json?@foo.com/mapi/nspi/?&Email=autodiscover/autodiscover.json%3f@foo.com

如果漏洞存在,返回如下结果:

如下图

权限为System

url地址中的"/mapi/nspi"为Exchange服务器访问的最终地址

url地址中的"?&Email=autodiscover/autodiscover.json%3f@foo.com"作为参数,这是为了满足漏洞触发的条件。此处还可以通过设置Cookie的内容为"Email=Autodiscover/autodiscover.json%3f@foo.com"实现相同的效果,源码如下图

2.通过SSRF漏洞调用Exchange Web Service(EWS)

Exchange Web Service(EWS)对应邮箱用户的邮件内容,关于EWS的使用可以参考之前的文章《Exchange Web Service(EWS)开发指南2——SOAP XML message》,通过发送XML请求,能够获得对应用户的邮件内容。【学习资料】

由于SSRF默认的权限为System,所以我们需要找到能够模拟任意邮箱用户的方法,才能够读取对应用户的邮件内容。

经过一段时间的调试,我没有找到通过参数指定EWS认证用户的方法,但是这里我们可以使用Exchange提权漏洞(CVE-2018-8581)中的技巧,通过在Header中使用SerializedSecurityContext,指定SID可以实现身份伪装,从而以指定用户身份进行EWS调用操作【学习资料】

代码地址:

https://github.com/thezdi/PoC/blob/master/CVE-2018-8581/serverHTTP_relayNTLM.py#L48-L64

Header格式如下:

为了获得用户的SID,我们可以使用Exchange SSRF漏洞(CVE-2021-26855)中的技巧,通过访问/autodiscover/autodiscover.xml获得legacyDn,作为参数继续访问/mapi/emsmdb,就能够获得用户对应的sid【学习资料】

至此,整个利用链完成,流程如下:

1、访问/autodiscover/autodiscover.xml获得legacyDn

2、访问/mapi/emsmdb获得用户对应的sid

3、在Header中使用SerializedSecurityContext,指定用户身份进行EWS调用操作

3.枚举邮箱用户列表

我在之前的文章《渗透技巧——获得Exchange GlobalAddressList的方法》提到过:“Exchange GlobalAddressList(全局地址列表)包含Exchange组织中所有邮箱用户的邮件地址,只要获得Exchange组织内任一邮箱用户的凭据,就能够通过GlobalAddressList导出其他邮箱用户的邮件地址。”

这里也是可以进行利用的,我们只需要使用FindPeople操作,做一个遍历并进行结果去重即可

实现细节可以参考之前开源的脚本:https://github.com/3gstudent/Homework-of-Python/blob/master/ewsManage.py【学习资料】

4.默认邮箱用户

为了读取Exchange GlobalAddressList(全局地址列表),我们需要获得Exchange组织内任一邮箱用户的凭据,对应到这个漏洞,我们仅仅需要邮箱用户名称

Exchange中默认存在以下四个用户可供使用:

◼SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}

◼SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}

◼SystemMailbox{D0E409A0-AF9B-4720-92FE-AAC869B0D201}(Exchange 2016 CU8 and later)

◼SystemMailbox{2CE34405-31BE-455D-89D7-A7C7DA7A0DAA}(Exchange 2016 CU8 and later)

小结

CVE-2021-34473作为ProxyShell攻击链的基础,验证简单,危害巨大。站在防御的角度,建议用户尽快更新补丁。

有需要网络安全相关资料的朋友可以关注私信我哦!!!

ProxyShell利用分析1——CVE-2021-34473相关推荐

  1. 【安全漏洞】ProxyShell利用分析2——CVE-2021-34523

    前言 本文将要介绍ProxyShell中第二个漏洞的细节,分析利用思路. 简介 本文将要介绍以下内容: ◼CommonAccessToken ◼Exchange PowerShell Remoting ...

  2. 【安全漏洞】简要分析复现了最近的ProxyShell利用链

    前言 近日,有研究员公布了自己针对微软的Exchange服务的攻击链的3种利用方式.微软官方虽然出了补丁,但是出于种种原因还是有较多用户不予理会,导致现在仍然有许多有漏洞的服务暴露在公网中,本文主要在 ...

  3. CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)

    CVE-2013-2551漏洞成因与利用分析 1. 简介 VUPEN在Pwn2Own2013上利用此漏洞攻破了Win8+IE10,5月22日VUPEN在其博客上公布了漏洞的细节.它是一个ORG数组整数 ...

  4. 分式求二阶导数_近10年高考数学“导数大题”分析,附2021备考建议

    今天小马给大家整理了近10年高考数学"导数大题"分析,以及2021高考备考建议 相关推荐(点击跳转)???▶语文干货 | 高中必修1-5古代文化常识大汇总!▶高中数学 | 知识点结 ...

  5. PHP 绕过禁用函数漏洞的原理与利用分析

     聚焦源代码安全,网罗国内外最新资讯! 漏洞简介 PHP 发布公告,旧版本的 php_array_merge_recursive 函数中存在UAF风险,被利用可能导致用来绕过禁用函数. 受影响的版本 ...

  6. 攻击者对 Exploit-DB平台的利用分析

    引言 **观点 4:截至 2020 年 11 月,NVD 平台公布的物联网 相关漏洞数量已达 1541 个,有望创历史新高. 总体而言,相关漏洞具有攻击复杂度低.危害评级高的特点.从我们观察到的漏洞利 ...

  7. CVE-2013-3897漏洞成因与利用分析

    CVE-2013-3897漏洞成因与利用分析 1. 简介 此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存.攻击者可以利用此类漏洞实现远程代码执行.UAF漏洞的根源源于对对 ...

  8. 安装squid_CVE-2019-12527:Squid缓冲区溢出漏洞利用分析

    报告编号:B6-2019-110702 报告来源:360-CERT 报告作者:360-CERT 更新日期:2019-11-07 0x00 背景描述 2019年8月22日,趋势科技研究团队发布了编号为C ...

  9. php 函数漏洞,PHP绕过禁用函数漏洞的原理与利用分析

    漏洞简介 PHP 发布公告,旧版本的 php_array_merge_recursive 函数中存在UAF风险,被利用可能导致用来绕过禁用函数. 受影响的版本 PHP 7.2 - 7.4.9 安全专家 ...

最新文章

  1. 008_html属性
  2. eda可视化_5用于探索性数据分析(EDA)的高级可视化
  3. 常用开发环境搭建配置教程(OneStall)
  4. 本地Vue前端请求本地Spring Boot跨域问题(CROS错误)
  5. python循环遍历把表写入csv_求教python3.5如何把字典循环写入csv?
  6. 华为P30现身华为新加坡官网:坐实水滴屏
  7. 突然!锤子科技天猫官方旗舰店商品全线下架 店铺撤店?!
  8. jQuery dataTables四种数据来源[转]-原文地址:http://xqqing79.iteye.com/blog/1219425
  9. Total Commander 使用技巧
  10. 在线编辑Word——插入内容控件
  11. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
  12. 如何对U盘文件数据加密,U盘加密方法教程分享
  13. 笔记本在Win7/Win8/win8.1下安装OS X 10.9.3懒人版通用教程
  14. 2023年品牌营销趋势是什么?如何提升品牌知名度
  15. java面试分为_【中软国际Java面试】面试分为两轮。-看准网
  16. Pytorch学习之神经网络参数管理
  17. 开学季准备什么蓝牙耳机好?五款性价比高的蓝牙耳机品牌推荐
  18. Isometric terrain
  19. Python列表(list)的操作及方法
  20. 在二十四节气中,冬至是个大节气,从冬至以后就开始数九啦一九二九不出手,

热门文章

  1. GitHub:GitHub简介、使用方法、经验总结(图文教程)之详细攻略(持续更新!)
  2. 面向对象编程(OOP)和面向过程编程
  3. iOS RunLoop 初识
  4. 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap
  5. URAL 1014 Product of Digits
  6. 字符设备驱动基本流程
  7. 可视化篇(五)——— python绘制热力图及案例
  8. 解读“中国数字人民币的研发进展白皮书“
  9. Hyperledger Fabric 链码(1) 类型
  10. 区块链BaaS云服务(16)天德链TDBC“系统介绍”