CVE-2021-40444為微軟MHTML遠(yuǎn)程命令執(zhí)行漏洞,攻擊者可通過傳播Microsoft Office文檔,誘導(dǎo)目標(biāo)點擊文檔從而在目標(biāo)機器上執(zhí)行任意代碼。該漏洞最初的利用思路是使用下載cab并釋放、加載inf文件的形式執(zhí)行惡意代碼。獨立安全研究員Eduardo B.在github公開了一種新的“無CAB”的漏洞利用方法及其POC。公眾號之前發(fā)布的研判文章中已對在野利用中出現(xiàn)的新的Cabless利用鏈以及RAR文件隱藏載荷的巧妙方法進(jìn)行了分析。本篇將進(jìn)一步探究該利用鏈的技術(shù)本質(zhì),并在復(fù)現(xiàn)攻擊場景的前提下嘗試對利用鏈進(jìn)行改進(jìn)。
與基于cab的攻擊方式一樣,新攻擊鏈依然需要在Office文檔中插入惡意htmlfile OLE對象,當(dāng)目標(biāo)用戶點擊文檔后會請求訪問遠(yuǎn)程html頁面,而html頁面中通過ActiveX控件調(diào)用".wsf:../" URL Scheme鏈接,最終調(diào)用wcript.exe執(zhí)行RAR中嵌入的wsf腳本。
'.wsf:../../../Downloads/?.wsf'
URL Scheme也叫URL protocol,它的作用是通過鏈接啟動對應(yīng)的本地程序,格式為[scheme]://[host]/[path]?[query]。文件后綴名可同樣用作scheme,調(diào)用相關(guān)文件類型綁定的程序。’?[query]’的存在則可利用URL Scheme與程序在處理路徑時不同的行為,達(dá)到忽略真實后綴名,繞過擴展名校驗的目的。在之前的攻擊鏈中曾使用”.cpl”鏈接調(diào)用系統(tǒng)rundll32.exe程序?qū)nf文件作為cpl文件加載執(zhí)行。
目前公開的配合RAR的Cabless利用鏈的POC有兩個利用條件,一是猜測到WINRAR的存儲位置,默認(rèn)其位于用戶目錄的Downloads文件夾下,否則無法獲取wsf腳本位置;二是明確wscript.exe運行的當(dāng)前路徑(例如Documents目錄),否則無法構(gòu)造正確的路徑。下面將從不同的利用場景考慮,思考更靈活的URL Scheme構(gòu)造方式。
配合RAR的Cabless利用鏈在實際執(zhí)行時有兩種可能,用戶直接在WinRAR中打開DOCX文件,以及先解壓再打開,對這兩條攻擊路徑進(jìn)行分別的探究。
直接在WINRAR中打開DOCX文件
當(dāng)用戶直接在WINRAR中打開壓縮包中的DOCX文件時的進(jìn)程樹如下:
WinRAR的當(dāng)前路徑為RAR文件所在文件夾。
Word的當(dāng)前路徑為C:\Users\user\Documents,RAR中的DOCX文件被釋放到%TEMP%臨時文件夾中。
wscript.exe被觸發(fā)執(zhí)行后的當(dāng)前路徑為WinRAR的路徑(也就是壓縮包所在的文件夾)。
".wsf:"被用于Url Scheme喚起wscript.exe,而在被喚起后又被當(dāng)作普通目錄名去解析。’.wsf:’后的兩個’.’可替換為其他內(nèi)容,不影響執(zhí)行,但是如果去掉這兩個字符會在參數(shù)傳遞給wscript.exe時吞掉一個“../”導(dǎo)致找不到文件。這是因為wscript.exe解析路徑的時候會將“.wsf:aa”整體當(dāng)作一個host看待,后面拼接“../”就抵消了這層目錄關(guān)系,相當(dāng)于當(dāng)前目錄。
基于以上測試可知,當(dāng)DOCX文件在WinRAR中直接執(zhí)行時雖然DOCX文件釋放于臨時目錄,但wscript.exe的當(dāng)前目錄即是RAR文件所在的目錄。由此我們可以構(gòu)造此情況下100%可用的URL Scheme(直接從當(dāng)前路徑讀取RAR文件):
'.wsf:aa/../exp.rar1?.wsf'
先解壓DOCX文件再打開
這種情況其實更復(fù)雜,也是公開的POC針對的場景,對應(yīng)進(jìn)程樹:
直接點擊解壓后的DOCX文件打開時,Word的當(dāng)前路徑為DOCX文件所在路徑,wscript.exe的路徑也將保持一致。
值得注意的是,在一些情況下Word會將當(dāng)前路徑設(shè)置為C:\Users\Document,這可能是公開POC中構(gòu)造路徑的依據(jù)。但無論當(dāng)前路徑是什么,攻擊者都必須成功獲取(猜測)到RAR所在的文件夾。
微軟在9月的補丁中已將MHTML中使用URL Scheme的問題修復(fù),在ieframe.dll中加入了一個新的校驗函數(shù)IsValidSchemeName:
該函數(shù)將對URL Scheme進(jìn)行校驗,諸如”.cpl”、“.wsf”這種以文件擴展名啟動應(yīng)用程序的方式由于以字符“.”開頭無法通過該校驗函數(shù)的判斷。
本文主要分析了CVE-2021-40444的Cabless利用鏈中存在的路徑問題以及對之前技術(shù)研判內(nèi)容進(jìn)行補充。通過分析CVE-2021-40444新利用鏈,可以看到該漏洞的根本原因是Office文檔可以通過MHTML協(xié)議請求訪問遠(yuǎn)程HTML頁面從而執(zhí)行JavaScript代碼,并最終通過Url Scheme啟動本地應(yīng)用程序執(zhí)行投遞的惡意代碼,而中間投遞惡意代碼的方式是可以替換的。同時也給了作為初學(xué)者的筆者很多啟發(fā),在分析漏洞時需加入對根本問題的思考:在攻擊鏈中哪些部分是必不可少的,哪些是可以替換的。必不可少的部分作為漏洞根本問題要更深入地分析,而可以替換的部分要嘗試去挖掘可替換的新利用鏈。而對于防守方,把握漏洞本質(zhì)與漏洞利用必經(jīng)之路,方能以不變應(yīng)萬變徹底控制各種漏洞利用變體。
了解討論網(wǎng)絡(luò)安全和領(lǐng)取網(wǎng)絡(luò)安全的學(xué)習(xí)資料“關(guān)注”并私信“資料”免費領(lǐng)取
2022年5月27日,我們發(fā)現(xiàn)有安全研究人員公開了一個新的Office漏洞,稱為Follina,由白俄羅斯的一個IP地址上傳。該漏洞的原理是利用Microsoft Office將遠(yuǎn)程HTML頁面作為OLE對象插入的功能,文檔打開后將訪問遠(yuǎn)程HTML頁面并執(zhí)行其中的代碼,攻擊者利用js代碼將頁面重定向,使其通過"ms-msdt:"協(xié)議訪問URL鏈接,調(diào)用本地msdt.exe并傳入攻擊者構(gòu)造好的參數(shù),最終執(zhí)行任意PowerShell代碼。值得注意的是,該漏洞在宏被禁用的情況下仍可被利用,具有較大的安全隱患。
6月初,研究人員公開了一個針對烏克蘭的攻擊樣本(7908d7095ed1cde36b7fd8f45966fc56f0b72ca131121fdb3f8397c0710100e1),發(fā)現(xiàn)有組織使用Cobalt Strike Beacon惡意軟件并利用該漏洞CVE-2022-30190對烏克蘭國家組織進(jìn)行了網(wǎng)絡(luò)攻擊。下面將對該漏洞的利用和此樣本產(chǎn)生的流量進(jìn)行分析。
二、Follina漏洞利用
1.使用網(wǎng)上已公開的poc
https://github.com/chvancooten/follina[ . ]py
2.在當(dāng)前目錄下生成clickme.docx和www下exploit.html,并啟動監(jiān)聽
python follina.py -t docx -m binary -b windowssystem32calc.exe -H 127.0.0.1 -P 8080
3.在word啟動時可以看到“正在打開http://localhost:8080/exploit[ . ]html”,說明word和服務(wù)端建立連接成功,彈出calc.exe,漏洞利用成功
三、TLS加密流量分析
1.捕獲的流量中檢測到nod-update[ . ]it可疑域名,每隔一段時間,Beacon會對nod-update[ . ]it發(fā)出A記錄dns查詢
2. 下圖為樣本通信時的流量,使用TLS加密
3.服務(wù)器已經(jīng)不存活,主機無法上線,TCP建立握手連接失敗
4.從流量導(dǎo)出的證書,頒發(fā)者是CN = R3 O = Let's Encrypt C = US ,指紋是85fbc86f7a5411e6472b167c8016723a51cc090a,R3的頒發(fā)機構(gòu)為ISRG Root X1,是一個免費的證書頒發(fā)機構(gòu),由于免費證書申請不會經(jīng)過嚴(yán)格的使用者身份驗證,較容易獲取,因此,經(jīng)常被黑客或惡意程序使用。
5.觀成瞰云(ENS)-加密威脅智能檢測系統(tǒng)針對本次測試產(chǎn)生的加密流量進(jìn)行檢出,從握手檢測、域名檢測、證書檢測進(jìn)行多模型分析,綜合評分為0.76。
四、總結(jié)
隨著Follina漏洞的出現(xiàn),改變了以前要“釣魚”就要想辦法繞過office宏禁止機制的攻擊方法,取得了新的突破,網(wǎng)絡(luò)攻擊的手段變得越來越多樣化,通信方式也變得隱蔽化和加密化,這一趨勢給流量檢測帶來了更高挑戰(zhàn)。
頭條創(chuàng)作挑戰(zhàn)賽# 在Excel VBA中,HTMLObjectElement對象表示HTML文檔中的<object>元素。它允許您通過VBA代碼訪問和操作HTML文檔中的<object>元素,例如Flash、Java Applets、嵌入式視頻等。使用HTMLObjectElement對象,您可以在VBA中設(shè)置<object>元素的屬性,例如高度、寬度、數(shù)據(jù)等,以及執(zhí)行與<object>元素相關(guān)的操作。
以下是6個代碼實例來解釋說明HTMLObjectElement對象的用法:
1、獲取HTMLObjectElement對象
Dim obj As HTMLObjectElement
Set obj = ActiveDocument.getElementById("myObject")
2、設(shè)置HTMLObjectElement對象的高度和寬度
obj.Height = 100
obj.Width = 200
3、獲取HTMLObjectElement對象的數(shù)據(jù)屬性
Dim data As String
data = obj.Data
4、設(shè)置HTMLObjectElement對象的數(shù)據(jù)屬性
obj.Data = "http://example.com/myvideo.mp4"
5、獲取HTMLObjectElement對象的classid屬性
Dim classid As String
classid = obj.classid
6、設(shè)置HTMLObjectElement對象的classid屬性
obj.classid = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
下面是兩個Excel案例代碼來解釋HTMLObjectElement對象的使用:
1、在Excel中插入Flash動畫
Sub InsertFlash()
Dim obj As HTMLObjectElement
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="ShockwaveFlash.ShockwaveFlash", _
Link:=False, DisplayAsIcon:=False, Left:=10, Top:=10, Width:=200, Height:=100).Object
obj.Movie = "http://example.com/myflash.swf"
End Sub
2、在Excel中插入嵌入式視頻
Sub InsertVideo()
Dim obj As HTMLObjectElement
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="MediaPlayer.MediaPlayer", _
Link:=False, DisplayAsIcon:=False, Left:=10, Top:=10, Width:=200, Height:=100).Object
obj.URL = "http://example.com/myvideo.mp4"
End Sub
在這些代碼中,我們使用HTMLObjectElement對象來訪問和操作插入到Excel工作表中的<object>元素。我們可以設(shè)置<object>元素的高度、寬度、數(shù)據(jù)、classid等屬性,以及執(zhí)行與<object>元素相關(guān)的操作,例如播放Flash動畫和嵌入式視頻。
在使用HTMLObjectElement對象時,需要注意以下幾點:
1、要確保已經(jīng)正確地引用了Microsoft HTML Object Library。
2、要確保在HTML文檔中正確地指定了<object>元素的classid屬性,以便在VBA中正確地創(chuàng)建和引用HTMLObjectElement對象。
3、要確保在操作<object>元素之前,已經(jīng)加載了完整的HTML文檔。
4、要確保在設(shè)置<object>元素的屬性之前,已經(jīng)正確地驗證了這些屬性的值,以避免出現(xiàn)錯誤。
5、要確保在操作<object>元素之前,已經(jīng)正確地驗證了這些元素的狀態(tài)和可用性,以避免出現(xiàn)錯誤。
6、在使用HTMLObjectElement對象時,應(yīng)該遵循良好的編程實踐,例如使用錯誤處理和代碼注釋等,以提高代碼的可讀性和可維護(hù)性。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。