蘋(píng)果TCC繞過(guò)0 day漏洞利用
近日,Jamf研究人員在XCSSET 惡意軟件中發(fā)現(xiàn)了一個(gè)蘋(píng)果TCC 0 day漏洞利用,攻擊者利用該0 day漏洞可以繞過(guò)蘋(píng)果的TCC安全保護(hù)。
在最新發(fā)布的macOS 11.4版本中,蘋(píng)果修復(fù)了一個(gè)繞過(guò)TCC(Transparency Consent and Control,透明度同意和控制)框架的0 day漏洞利用——CVE-2021-30713。TCC是控制應(yīng)用可以訪問(wèn)系統(tǒng)中的哪些資源的,比如授予軟件對(duì)攝像頭和麥克風(fēng)的訪問(wèn)權(quán)限。攻擊者利用該漏洞可以在無(wú)需用戶(hù)明示同意的情況下獲取硬盤(pán)的訪問(wèn)權(quán)限、錄屏和其他權(quán)限。
Jamf研究人員分析發(fā)現(xiàn)XCSSET 也軟件使用該漏洞利用來(lái)讓TCC以在無(wú)需用戶(hù)同意和權(quán)限的情況下實(shí)現(xiàn)用戶(hù)桌面截屏。
繞過(guò)漏洞利用
Jamf研究人員在分析XCSSET 惡意軟件樣本時(shí)發(fā)現(xiàn)了一個(gè)名為screen_sim.applescript 的AppleScript模塊。該模塊中中有一個(gè)名為verifyCapturePermissions 的檢查,并將應(yīng)用ID作為一個(gè)參數(shù)。
研究人員查看日志發(fā)現(xiàn),惡意AppleScript 模塊好像在尋找有截圖權(quán)限的應(yīng)用。并且成功找到了這樣的APP。
研究人員進(jìn)一步分析verifyCapturePermissions 函數(shù),發(fā)現(xiàn)該腳本在已安裝的應(yīng)用列表中檢查截屏權(quán)限。該列表是來(lái)自對(duì)以下軟件appID的較早檢查,被惡意軟件稱(chēng)為“ donorApps”。
被惡意軟件攻擊的目標(biāo)應(yīng)用程序ID列表是用戶(hù)經(jīng)常授予屏幕共享權(quán)限作為其正常工作一部分的所有應(yīng)用程序。然后,該惡意軟件使用以下mdfind命令檢查受害者的設(shè)備上是否安裝了appID。
如果在系統(tǒng)上找到任一個(gè)appID,該命令將返回已安裝應(yīng)用程序的路徑。惡意軟件利用這些信息可以制作一個(gè)自定義的AppleScript應(yīng)用程序,并將其注入已安裝的donor應(yīng)用程序中。
腳本會(huì)按照以下順序來(lái)執(zhí)行動(dòng)作:
(1) 從惡意軟件作者的C2 服務(wù)器下載XCSSET AppleScript截屏模塊到本地~/Library/Caches/GameKit 文件夾;
(2) 通過(guò)使用osacompile 命令將截屏模塊轉(zhuǎn)化稱(chēng)一個(gè)基于AppleScript的應(yīng)用——avatarde.app。以這種方式編譯任何AppleScript時(shí),都會(huì)在新創(chuàng)建的應(yīng)用程序捆綁包的/ Contents / MacOS /目錄中放置一個(gè)名為“ applet”的可執(zhí)行文件,并且該applet將要執(zhí)行的腳本可以位于/ Contents / Resources / Scripts / main中。
(3) 然后,新創(chuàng)建的Info.plist將會(huì)被plutil二進(jìn)制文件修改,將首選項(xiàng)設(shè)置LSUIElement修改為true。這一操作使得應(yīng)用程序可以作為后臺(tái)進(jìn)程運(yùn)行,對(duì)用戶(hù)隱藏自己的存在。
(4) 然后下載一個(gè)空白圖標(biāo),并將其應(yīng)用于應(yīng)用程序。
(5) 最后,使用如下代碼將新創(chuàng)建的應(yīng)用程序放置在現(xiàn)有的donor應(yīng)用程序中:
例如,如果在系統(tǒng)上找到虛擬會(huì)議應(yīng)用程序zoom.us.app,則惡意軟件將自己放置在:
/Applications/zoom.us.app/Contents/MacOS/avatarde.app
如果受害計(jì)算機(jī)運(yùn)行的是macOS 11或更高版本的macOS系統(tǒng),則會(huì)用ad-hoc臨時(shí)簽名對(duì)avatarde應(yīng)用進(jìn)行簽名,或用計(jì)算機(jī)本身對(duì)其進(jìn)行簽名。
所有文件放置到位后,應(yīng)用程序?qū)⒈畴x父應(yīng)用程序,比如上例中的Zoom。也就是說(shuō),惡意應(yīng)用程序可以無(wú)需用戶(hù)的明確同意進(jìn)行屏幕截圖或錄屏。因?yàn)槠鋸母赋绦騔oom處繼承了對(duì)應(yīng)的TCC權(quán)限。這對(duì)終端用戶(hù)來(lái)說(shuō)是一個(gè)很大的隱私問(wèn)題。
Jamf研究人員在測(cè)試過(guò)程中發(fā)現(xiàn),該漏洞的利用其實(shí)并不局限于屏幕錄像權(quán)限,可以將donor應(yīng)用的權(quán)限轉(zhuǎn)移到惡意APP中。
本文翻譯自:https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/