谷歌研究人員發(fā)現(xiàn)macOS漏洞利用。
谷歌研究人員在macOS系統(tǒng)中發(fā)現(xiàn)了一個安全漏洞——CVE-2021-30869。攻擊者利用該漏洞可以以kernel權(quán)限執(zhí)行任意代碼。8月底,谷歌研究人員發(fā)現(xiàn)了該漏洞的0 day在野利用,本文詳細(xì)介紹利用該0 day漏洞的攻擊活動情況。
水坑攻擊
研究人員在攻擊者控制的服務(wù)器上發(fā)現(xiàn)了攻擊中使用的網(wǎng)站中含有2個iframe,其中一個是iOS漏洞利用,一個是macOS漏洞利用。
iOS漏洞利用
iOS漏洞利用鏈?zhǔn)褂没贗ronsquirrel的框架來加密傳遞到受害者瀏覽器的加密漏洞利用。研究人員尚未獲得完整的iOS利用鏈,只發(fā)現(xiàn)攻擊者利用CVE-2019-8506漏洞在Safari瀏覽器中實現(xiàn)代碼執(zhí)行。
macOS漏洞利用
macOS漏洞利用使用的框架與iOS不同。加載頁中含有1個簡單的HTML頁面,可以加載2個腳本,一個是Capstone.js,一個是漏洞利用鏈。
腳本
參數(shù)rid 是一個全局計數(shù)器,會記錄漏洞利用的嘗試次數(shù)。研究人員發(fā)現(xiàn)該漏洞利用鏈時該計數(shù)器已經(jīng)達(dá)到200了。
漏洞利用鏈開始時JS會在運行漏洞利用前檢查訪問者是否運行macOS Mojave (10.14)或Catalina (10.15)。研究人員用Mojave訪問站點時只接收到一個未加密的漏洞利用鏈。
遠(yuǎn)程代碼執(zhí)行
通過在最新的Safari (14.1)瀏覽器版本上加載含有WebKit RCE的頁面,研究人員發(fā)現(xiàn)并沒有成功觸發(fā)該漏洞利用。為驗證該假設(shè),研究人員運行g(shù)it bisect,并確定目前已經(jīng)修復(fù)。
沙箱逃逸和本地權(quán)限提升
Capstone.js
研究人員發(fā)現(xiàn)攻擊者在漏洞利用鏈中使用了Capstone.js,而該js文件常被用于二進(jìn)制文件分析。攻擊者使用它來在內(nèi)存中搜索dlopen和dlsym的地址。
capstone.js
Capstone.js的配置為X86-64而非ARM,因此可以推測目標(biāo)硬件為基于Intel的Mac。
嵌入的Mach-O
WebKit RCE 成功執(zhí)行后,嵌入的Mach-O二進(jìn)制文件就會加載到內(nèi)存中,修復(fù)并運行。通過分析,研究人員發(fā)現(xiàn)該二進(jìn)制文件中含有可以逃逸Safari沙箱、進(jìn)行權(quán)限提升、從C2下載第二階段內(nèi)容的代碼。
Mach-O
提取的二進(jìn)制文件進(jìn)行了混淆。解碼后的字符串如下所示:
解碼后,研究人員發(fā)現(xiàn)其中含有從C2下載文件的代碼。
在下載payload后,會移除文件的隔離屬性以繞過檢測。然后提升權(quán)限來安裝payload。
為在虛擬環(huán)境下運行漏洞利用,研究人員在Python環(huán)境下寫了一個加載器來實現(xiàn)以下功能:
?加載Mach-O到內(nèi)存中;
?找到dlopen 和 dlsym的地址;
?用dlopen 和 dlsym的地址填充內(nèi)存中加載的Mach-O;
?運行Mach-O時傳遞payload url作為參數(shù)。
MACMA Payload
權(quán)限提升到root后,下載的payload就會被加載并在受害者機(jī)器后臺運行。Payload通過數(shù)據(jù)分發(fā)服務(wù)(DDS)框架與C2進(jìn)行通信。其中含有多個組件,其中部分組件被配置成了模塊。其中該后門的常見功能包括:
?獲取受害者指紋信息
?截取用戶屏幕
?文件下載和上傳
?執(zhí)行終端命令
?錄制音頻
?記錄鍵盤輸入