Exchange漏洞系列分析(一) 【CVE-2021-26855、CVE-2021-27065】

2021-12-27 雲影實驗室
0x00 前言

在今年3月份,微軟公布了多個Microsoft Exchange的高危漏洞,通過組合利用這些漏洞可以在未經身份驗證的情況下遠程獲取伺服器權限。這套組合拳被稱為ProxyLogon。安全研究員Orange Tsai於2020年底發現該系列漏洞並命名。ProxyLogon是Exchange歷史上最具影響力的漏洞之一,有上千臺Exchange伺服器被植入了webshell後門。

0x01 漏洞描述

CVE-2021-26855是一個SSRF漏洞,利用該漏洞可以繞過Exchange的身份驗證,CVE-2021-27065是一個文件寫入漏洞。二者結合可以在未登錄的狀態下寫入webshell。

0x02 影響範圍

Exchange Server 2019 < 15.02.0792.010

Exchange Server 2019 < 15.02.0721.013

Exchange Server 2016 < 15.01.2106.013

Exchange Server 2013 < 15.00.1497.012

 

0x03 調試環境及工具

版本

作業系統

Windows Server 2012

應用名稱

Microsoft  Exchange Server 2016

.NET反編譯調試器

DnSpy 

.NET反編譯對比器

Telerik

 

0x04 CVE-2021-26855 SSRF漏洞1.  補丁查看

通過對比補丁內容,快速定位漏洞位置。

Exchange版本號查看:

打開 ExchangeManagement Shell,並執行命令:

Get-ExchangeServer | fl name,edition,admindisplayversion

版本對應關係可以在微軟官網中查看:

搜索對應版本的補丁(Exchange 2016 RTM的補丁未找到,所以直接用 Exchange CU11 的補丁分析):

https://www.catalog.update.microsoft.com/Search.aspx?q=exchange%202016%20cu11

下載補丁KB5000871,使用winrar解壓cab文件,解壓後是一個msp文件,使用7-zip 對msp格式的文件內容進行提取。

使用Telerik對補丁內容做對比,內容有差異的dll文件如下,漏洞存在於Microsoft.Exchange.FrontEndHttpProxy.dll中:

 

使用Reflector對dll文件反編譯並導出源碼,方便對關鍵字進行搜索。

2.  漏洞調試

使用dnSpy對Microsoft.Exchange.FrontEndHttpProxy.dll 文件進行反編譯,定位到class BEResourceRequestHandler,下斷點。

點擊 【調試】–>【附加到進程】 MSExchangeECPAppPool,使用ProcessExplorer查看對應的進程ID。

使用進程ID進行過濾(註:必須以管理員權限運行dnSpy,否則無法獲取進程信息)。

在BackEndCookieEntryParse 的TryParse()函數下斷點,bp發請求,觸發斷點。

首先會根據uri來判斷請求的協議類型,如果請求協議為ecp,即請求uri為/ecp/。跟蹤進入CanHandle()函數,驗證cookie及uri的合法性。

獲取cookie中X-BEResource的值

判斷uri 是否合法

uri以 js,css,html,flt,xap等後綴結尾的文件(沒有驗證文件是否存在)都是合法的。拼接後 /ecp/xx.(js|css)等都是有效uri。

接著對X-BEResource的值進行處理

獲取到X-BEResource的值

並使用『~』分割得到數組array

其中array[0] 為fqdn;array[1] 為version

接著進行版本比較

如果版本的值小於 E15MinVersion,進入if判斷語句,並將類成員變量ProxyToDownLevel賦值為True,之後會調用身份認證函數EcpProxyRequestHandler.AddDownLevelProxyHeaders進行身份認證,如果沒有通過認證,則返回401錯誤。同理如果version大於E15MinVersion則跳過if判斷從而繞過身份認證。

 

經過一系列的解析

可以看到host的值是win2012,這個值我們可控,最後經過一系列的拼接得到AbsoluteUri的值:https://host/autodiscover/autodiscover.xml。(autodiscover.xml 文件中包含有LegacyDN 的值)

 

進入CreateServerRequest函數,訪問uri,

進入PrepareServerRequest函數,會進行授權認證判斷,

接著進入AddProtocolSpecificHeadersToServerRequest,

由於ProxyToDownLevel被置為false不會進入if語句,從而導致可以直接繞過認證,進而在未授權的狀態下獲取autodiscover.xml文件內容。

 

0x05 CVE-2021-27065 任意文件寫入漏洞

在Exchange伺服器上依次打開【管理中心】 -【伺服器】-【虛擬目錄】-【OAB虛擬目錄】。

由於外部URL的內容可控,所以可在URL寫入一句話木馬(其中URL必須以http開頭,以保持外部URL參數的合法性)。

之後可以通過重置虛擬目錄,來把配置內容寫入指定的路徑。

註:路徑必須是UNC路徑格式:\\host\ShareFolder\aaa.xml

修改路徑為:\\win2012.test.local\C$\test.aspx

可以看到OAB VirtualDirectory的配置信息已經被寫入C:/test.aspx文件中。

 

上述操作請求內容如下

POST /ecp/DDI/DDIService.svc/SetObject?schema=OABVirtualDirectory&msExchEcpCanary=pM2NWg8xu0euTUqTjiLwzquHekjm6dgIw6lt6YfDyflndCz1iGsGnnhEivzKafJL9vhOxpqYuAU.

請求中有一個關鍵參數msExchEcpCanary,如果沒有這個參數,服務端返回500錯誤。這個參數的值可以利用CVE-2021-26855 SSRF漏洞通過多次請求獲取。

 

0x06 漏洞利用過程

整個過程都是在未登錄的狀態下,利用SSRF漏洞訪問內部資源,Cookie中的 X-BEResource欄位內容為要訪問的資源連結。利用過程如圖:

 

  1.   獲取server name,/ecp/xx.js,cookie中 mail.skyeye.com 為目標exchange的域名 

  2.   通過SSRF漏洞讀取autodiscover.xml文件,獲取LegacyDN的值;

  3.   利用Legacy DN獲取SID;

  4.  利用SID獲取Session、msExchEcpCanary;

  5. 寫入shell。

cookie中的X-BEResource欄位內容為利用SSRF漏洞訪問的內網資源連結。

指定保存路徑

 webshell路徑為:

https://[ip]/owa/auth/dkYAIm7ELFjJ3KVzXb1Q.aspx

0x07 檢測修複方案

針對上述漏洞,微軟發布了一款工具,用於幫助用戶檢測Exchange是否被黑客利用相關漏洞入侵。連結如下:

https://github.com/microsoft/CSS-Exchange/tree/main/Security

腳本

描述

EOMT.ps1

通過 URL 重寫配置緩解 CVE-2021-26855漏洞

ExchangeMitigations.ps1

該腳本包含4個緩解措施,以幫助解決以下漏洞:cve-2021-26855、cve-2021-26857、cve-2021-27065、cve-2021-26858

http-vuln-cve2021-26855.nse

nmap掃描腳本,檢測指定URL是否存在CVE-2021-26855漏洞

Test-ProxyLogon.ps1

該腳本檢查CVE-2021-26855、26858、26857和27065漏洞是否存在被利用的跡象

安裝微軟提供的漏洞補丁,相關漏洞補丁如下:

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-26855

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-27065

 

0x08 參考連結

https://www.freebuf.com/articles/web/265539.html

https://www.praetorian.com/blog/reproducing-proxylogon-exploit/

https://docs.microsoft.com/en-us/exchange/architecture/architecture?view=exchserver-2019#client-access-protocol-architecture

https://secvery.com/5433.html

https://www.4hou.com/posts/q66D

https://www.anquanke.com/post/id/234607

  職位要求: 

網絡協議漏洞、常見客戶端軟體漏洞的分析;

漏洞利用代碼及工具的分析,特徵提取及驗證;

支持產品對特定漏洞或安全事件的應急響應;

能編寫腳本對樣本或漏洞做自動化檢測;

   職位要求: 

熟練掌握Linux/Unix或windows平臺的各種開發技能;

精通至少一種以下語言,C/C++/Java/Python/Golang/PHP等;

 熟悉常用算法和數據結構,熟悉網絡編程、多線程編程技術;

熟悉TCP/IP等網絡協議;

了解常見安全漏洞及原理優先;

有安全檢測相關模塊設計與開發優先;

具有良好的團隊合作精神和積極主動的溝通意識;

本科或以上學歷,計算機相關專業。

 

  職位描述:

安全產品系統相關模塊設計與編碼研發;

保障系統的穩定性和項目質量。

有意者可以直接私信公眾號~~

相關焦點

  • 【漏洞預警】Microsoft Exchange多個高危漏洞(CVE-2021-26855等)
    2021年03月3日,微軟官方發布了Microsoft Exchange安全更新,披露了多個高危嚴重漏洞,其中:1、在 CVE-2021-26855 Exchange SSRF漏洞中,攻擊者可直接構造惡意請求,以Exchange server的身份發起任意HTTP請求,掃描內網,並且可獲取Exchange用戶信息。該漏洞利用無需身份認證。
  • 【安全預警】Microsoft Exchange多個高危漏洞(CVE-2021-26855等)
    近日, 微軟發布了Exchange 多個高危漏洞的風險通告,該漏洞編號為CVE-2021-26855,CVE-2021-26857,CVE-2021-26858,CVE-2021-27065。CVE-2021-27065 高危0x03漏洞詳情1、在 CVE-2021-26855
  • Microsoft Exchange多個高危漏洞 (CVE-2021-26855/26857/26858/27065)
    ,CVE-2021-26857,CVE-2021-26858,CVE-2021-27065等多個高危漏洞。2021年03月03日微軟官方披露多個Exchange高危漏洞:CVE-2021-26855Exchange伺服器端請求偽造漏洞。利用此漏洞的攻擊者能夠以Exchange Server發送HTTP請求,掃描內網,獲取Exchange用戶信息。CVE-2021-26857Exchange反序列化漏洞。
  • Exchange CVE-2021-26855 RCE漏洞復現
    感謝@saucer-man師傅的轉載允許原文出處:https://saucer-man.com/information_security/748
  • Exchange CVE-2021-26855 漏洞復現
    0x1 漏洞概述CVE-2021-26855 是Exchange中的服務端請求偽造漏洞(SSRF),利用此漏洞的攻擊者能夠發送任意HTTP請求並繞過
  • CVE-2021-26855:Exchange SSRF致RCE復現
    編號:CVE-2021-26855該漏洞是Exchange中的服務端請求偽造漏洞(SSRF),利用此漏洞的攻擊者能夠發送任意HTTP請求並繞過Exchange Server身份驗證,遠程未授權的攻擊者可以利用該漏洞以進行內網探測,並可以用於竊取用戶郵箱的全部內容。
  • 詳細復現Microsoft Exchange Proxylogon漏洞利用鏈(CVE-2021-26855)
    在最近的幾周中,Microsoft檢測到有攻擊者在全球範圍內利用多個0-Day漏洞針對Microsoft Exchange Server的本地版本發動攻擊。其中的CVE-2021-26855漏洞又被稱為ProxyLogon,這是Microsoft Exchange Server上存在的一個漏洞,可以導致攻擊者繞過身份驗證模擬用戶操作。
  • 漏洞技術 | CVE-2021-26855
    0x01漏洞概述該漏洞是Exchange中的服務端請求偽造漏洞(SSRF),利用此漏洞的攻擊者能夠發送任意HTTP請求並繞過Exchange Server身份驗證,遠程未授權的攻擊者可以利用該漏洞以進行內網探測,並可以用於竊取用戶郵箱的全部內容。
  • Microsoft Exchange多個高危漏洞安全通告
    Exchange server可以被用來構架應用於企業、學校的郵件系統或免費郵件系統。它還是一個協作平臺。你可以在此基礎上開發工作流,知識管理系統,Web系統或者是其他消息系統。2021年03月03日,新華三攻防實驗室監測到微軟官方發布了Microsoft Exchange安全更新,修復了包含CVE-2021-26855在內的多個高危漏洞。
  • CVE-2021-40444 漏洞深入分析
    可以發現其是指向文件的更新連結從樣本庫眾獲取到mountain.html後,我們打開一看,發現全部都混淆了,基本這就很簡單了,我通過普通腳本再一次去混淆:經過簡單的靜態分析與調試,基本上就是它會去請求伺服器獲取一個
  • CVE-2021–26855漏洞分析及復現
    CVE-2021–26855CVE-2021–26855是⼀個SSRF,只需要能夠訪問Exchange伺服器,攻擊者可以不經過任何類型的身份驗證來利
  • Exchange SSRF+RCE漏洞復現
    0X01 漏洞概述CVE-2021-26855該漏洞是Exchange中的服務端請求偽造漏洞(SSRF),利用此漏洞的攻擊者能夠發送任意HTTP請求並繞過Exchange Server身份驗證,遠程未授權的攻擊者可以利用該漏洞以進行內網探測,並可以用於竊取用戶郵箱的全部內容。CVE-2021-26857是統一消息中的一個不安全的反序列化漏洞。
  • 微軟Exchange曝多個高危漏洞,無需驗證交互即可觸發
    「高危」,漏洞編號分別為CVE-2021-26855、CVE-2021-26857、CVE-2021-26858、CVE-2021-27065。CVE-2021-26858該漏洞是Exchange中的任意文件寫入漏洞。該漏洞需要進行身份認證,利用此漏洞可以將文件寫入伺服器上的任何路徑。並可以結合利用CVE-2021-26855 SSRF漏洞或繞過權限認證進行文件寫入。危害:該漏洞是Exchange中的任意文件寫入漏洞。
  • Sudo 提權漏洞 CVE-2021-3156分析
    在類Unix 系統中,攻擊者利用該漏洞可以讓非特權用戶在默認sudo 配置下獲取root權限。Sudo 是基於Unix和Linux的作業系統中的程序,可以讓系統管理員給與sudoers文件中的用戶有限的root權限。
  • 【安全通告】Microsoft Exchange多個高危漏洞,無需用戶交互即可觸發攻擊
    CVE-2021-26857:反序列化漏洞,該漏洞需要管理員權限,利用此漏洞的攻擊者可以在Exchange伺服器上以SYSTEM身份運行代碼。CVE-2021-26858/CVE-2021-27065:任意文件寫入漏洞,在通過身份驗證後攻擊者可以利用該漏洞將文件寫入伺服器的任意路徑。
  • 細數微軟Exchange的那些高危漏洞
    今天,多個安全廠家都發布了微軟Exchange多個高危漏洞的通告,涉及漏洞編號CVE-2021-26855、CVE-2021-26857、CVE
  • 騰訊安全研究員對OpenSSL拒絕服務漏洞CVE-2021-3449的分析
    長按二維碼關注騰訊安全威脅情報中心
  • 【漏洞通告】Linux Kernel 本地權限提升漏洞(CVE-2021-33909)
    0x00 漏洞概述CVE     IDCVE-2021-33909時
  • 【漏洞通告】VMware ESXi身份驗證繞過漏洞(CVE-2021-21994)
    0x00 漏洞概述CVE     IDCVE-2021-21994時
  • 【漏洞利用】CVE-2021-33909:Linux 文件系統層中的 size_t-to-int 漏洞
    Qualys 研究團隊確認該漏洞後,Qualys 立即進行負責任的漏洞披露,並與供應商和開源發行版協調公布該漏洞。披露時間表2021-06-09:Qualys 研究團隊 (QRT) 向 Red Hat Product Security 發送了關於 CVE-2021-33909 和 CVE-2021-33910 的建議(這兩個漏洞密切相關,systemd-security 郵件列表由紅色的帽子)。