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