間諜軟件、CloudMensis、macOS
2022年4月,ESET的研究人員發現了一個之前不為人知的macOS後門,它監視被入侵的Mac的用戶,並使用公共雲存儲服務與操控者進行通信,本文將其命名為CloudMensis,其通過竊取文件、按鍵信息和屏幕截圖,從受害者的Mac機器中收集信息。這篇文章描述了CloudMensis的不同組件及其內部工作原理。
CloudMensis是用Objective-C開發的macOS惡意軟件,當獲得代碼執行和管理權限時,接下來的過程分為兩個階段,其中第一階段下載並執行功能比第二階段更強大,有趣的是,這個第一階段的惡意軟件會從雲存儲提供商那裡獲取下一階段的內容,它沒有使用公開的鏈接,另外,它包含一個訪問令牌,用於從雲存儲下載MyExecute文件。在分析樣本中,pCloud用於存儲和分發第二階段程序。它們的作者將兩個組件稱為execute和Client,前者是下載器組件,後者是間諜代理組件。
圖1:下載器組件中的部分字符串和代碼簽名
圖1和圖2還顯示了該惡意軟件組件的內部名稱:該項目似乎被稱為「BaD」,它位於名為Leonwork的子目錄中。此外,V29表明該樣本是29版,或可能是2.9。
第一階段惡意軟件下載並安裝第二階段惡意軟件作為守護進程。如圖3所示,將以下兩個文件寫入磁盤:
/Library/WebServer/share/httpd/manual/WindowServer: 第二階段的Mach-O可執行程序,獲取自pCloud雲存儲
/Library/LaunchDaemons/.com.apple.WindowServer.plist: 使惡意軟件作為系統守護進程實現持久化的一個屬性列表文件。
在此階段,攻擊者必須已經具有管理特權,因為兩個目錄只能由root用戶修改。
圖3:CloudMensis下載器安裝第二階段
圖5:將XPC消息發送到speechsynthesisd
CloudMensis的第二階段是一個更大的組件,包含許多功能,可從受攻擊的Mac機器上收集信息。CloudMensis使用雲存儲,既可以從其操控者接收命令,也可以用於滲出文件。它支持三個不同的雲提供商:pCloud,Yandex Disk和Dropbox,分析樣本中的配置包含pCloud和Yandex Disk的身份驗證令牌。
(1)配置
CloudMensis間諜代理所做的第一件事是加載其配置,其為14972字節長的二進制結構。它存儲在〜/library/preverences/com.apple.itunesinfo29.plist上,使用密鑰進行簡單的XOR加密。如果配置文件不存在,則配置將使用硬編碼的默認值,此外,它還嘗試從先前版本的CloudMensis配置文件中導入值:
~/Library/Preferences/com.apple.iTunesInfo28.plist
~/Library/Preferences/com.apple.iTunesInfo.plist
配置包括以下:
雲存儲提供商極其身份驗證令牌
隨機生成的bot標識符
Mac機器的相關信息
CloudMensis使用的各種目錄的路徑
操控者感興趣的文件擴展名
圖6是文件擴展名的默認列表,表明攻擊者對受害者Mac機器上的文檔、電子表格、錄音、圖片和電子郵件消息感興趣。比較罕見的格式可能是擴展名為.AMR和.3GA的錄音文件,該錄音是專門為語音壓縮設計的。此列表中的其他有趣的文件擴展名是.hwp和.hwpx文件,它是韓國流行的文字處理程序Hangul Office(現為Hancom Office)生成的文檔。
圖6:CloudMensis的默認配置中找到的文件擴展名
(2)自定義加密
CloudMensis實現了自命名為Flowencrypt的加密功能,圖7進行了分析。它需要一個字節作為種子,並通過對最近生成的字節執行一系列操作來生成密鑰的其餘部分,輸入密文為輸入明文與此密鑰流的異或,由於最終字節的值將與其先前值之一相同,因此密鑰流將進入循環。這意味着,即使密碼看起來很複雜,也可以將其簡化為靜態密鑰的異或。
圖7:分析FlowEncrypt方法
(3)繞過TTC
自2018年macOS Mojave(10.14)發布以來,訪問某些敏感輸入(例如屏幕捕獲,攝像頭,麥克風和鍵盤事件)受到了稱為TCC(透明、同意和控制)系統的保護。當應用程序試圖訪問某些功能時,macOS會提示用戶是否合法的請求,誰可以授予或拒絕訪問。最終,將TCC規則保存到Mac上的數據庫中,該數據庫受SIP的保護,以確保只有TCC守護進程才能進行更改。
CloudMensis使用兩種技術繞過TCC,從而獲得對屏幕的訪問,能夠掃描可移動存儲以獲取信息,並能夠記錄鍵盤事件。
如果禁用SIP,則不再保護TCC數據庫(TCC.db)免受篡改,在這種情況下,CloudMensis在使用敏感輸入之前添加了條目以授予自己的權限。
如果啟用了SIP,但Mac在10.15.6之前運行了任何版本的macOS Catalina,則CloudMensis將利用CVE-2020-9934漏洞,使用TCC daemon(tccd)加載CloudMensis可以寫入的一個數據庫。
首先在~/library/application support/com.apple.spotlight/library/application/com.apple.tcc/下創建一個新的數據庫,如圖8所示。
圖8:檢查已經存在非法的TCC數據庫文件
然後,它使用laundingctl setenv將HOME環境變量設置為〜/Library/Application Support/com.apple.apple.spotlight,以便TCC daemon加載替代數據庫而不是合法的數據庫。圖9顯示了如何使用NSTask。
圖9:結合Launchd與Launchctl設置HOME環境變量並重新啟動tccd
(4)與C&C服務器通信
為了與操控者通信,CloudMensis配置包含多個雲服務提供商的身份驗證令牌。配置中的每個條目都用於不同的目的,所有這些都可以使用CloudMensis支持的提供商。在分析的樣本中,支持Dropbox, pCloud, 和 Yandex Disk。
根據全局變量名稱,使用惡意軟件CloudCmd的第一家商店用於持有傳輸到bot及其結果的命令。另一個被稱為CloudData的惡意軟件被用來從受損的Mac中滲出信息。第三個稱為CloudShell的惡意軟件用於存儲Shell命令輸出。
在嘗試獲取遠程文件之前,CloudMensis首先將有關的Mac機器的RSA加密報告上傳到CloudCMD上的 / January /目錄中,該報告包括共享私密信息,例如bot標識符和口令。
然後,為了接收命令,CloudMensis在CloudCmd存儲中的以下目錄下獲取文件:/febrary/<bot_id>/may//。每個文件都會下載、解密並分發給AnalizecmdfileName方法。
CloudData存儲用於上傳操控者請求的較大文件,在上傳之前,將大多數文件添加到受口令保護的ZIP存檔中。口令在首次啟動CloudMensis時生成,保存在配置中,並在初始報告中傳輸到操控者。
(5)命令
在分析的CloudMensis樣本中實現了39個命令,它們由49至93(包括57、78、87和90至92)的數字識別,有些命令需要其他參數,命令允許操作員執行以下操作:
更改 CloudMensis 配置中的值:雲存儲提供商和身份驗證令牌、感興趣的文件擴展名、雲存儲的輪詢頻率等
列出正在運行的進程
開始截屏
列出電子郵件和附件
列出可移動存儲中的文件
運行shell命令並將輸出上傳到雲存儲
下載並執行任意文件
圖10顯示了具有標識符84的命令,根據參數值列出了由launchd加載的所有工作。
圖10:命令84運行launchctl list以獲取launchd工作
圖11顯示了一個更複雜的示例。具有標識符60的命令用於啟動屏幕截圖, 如果第一個參數是1,則第二個參數是通過startscreencapture下載、存儲和執行的文件的URL,此外部可執行文件將作為Windowser將其保存在FaceTime Sandbox容器的庫文件夾中。如果第一個參數為0它將啟動先前刪除的現有文件,就找不到此屏幕捕獲代理的樣本。
圖11:命令60如何啟動屏幕截圖
CloudMensis使用的雲存儲中的元數據揭示了有關該操作的有趣細節。圖12顯示了CloudMensis使用的存儲的樹視圖。
通過這個元數據,可以獲取觀察視角,並繪製時間表。首先,pCloud帳戶是在2022年1月19日創建的,4月22日起的目錄列表顯示,在雲存儲中創建了51個唯一的bot標識符以接收命令。由於這些目錄是在首次啟動惡意軟件時創建的,因此可以使用其創建日期來確定系統初始失陷的日期。
CloudMensis對Mac用戶是一種威脅,而且該惡意軟件家族的操控者在他們感興趣的目標中部署了CloudMensis間諜軟件。使用圍繞macOS緩解作用的漏洞利用表明,惡意軟件操控者正在積極試圖最大程度地提高其間諜操作的成功。同時,在本文研究期間,未發現未公開的漏洞(0days)。因此,建議使用最新的MAC,以避免被攻擊。
目前,仍然不知道CloudMensis最初是如何確定攻擊目標的。代碼的質量一般和缺乏混淆表明,作者可能對Mac開發並不那麼熟悉,儘管如此,仍有很多資源使CloudMensis成為強大的間諜工具,並對潛在目標構成威脅。
下表是根據MITRE ATT&CK框架版本11創建。
戰略
ID
名字描述持久化
T1513.004
創建或修改系統進程:發布守護進程CloudMensis下載器安裝第二階段作為全系統守護進程。
防禦武器
T1553
修改可信控制CloudMensis嘗試繞過TCC
收集T1560.002
存檔收集的數據:通過庫存檔存檔收集數據:CloudMensis通過SSZipArchive來創建一個受密碼保護的ZIP檔案庫。
T1056.001
鍵盤日誌Cloudmensis可以捕獲和滲透鍵盤日誌
T1113
屏幕捕捉Cloudmensis可以捕獲和滲透屏幕
T1005
本地系統數據CloudMensis尋找具有特定擴展名的文件
T1025
可移動媒體數據CloudMensis可以在連接時搜索可移動的媒體以獲取文件數據
T1114.001
本地郵件收集CloudMensis搜索郵件中的電子郵件和附件命令與控制
T1573.002
非對稱加密CloudMensis初始報告使用公共RSA-2048密鑰進行加密T1573.001
對稱加密CloudMensis使用密碼保護的ZIP檔案加密刪除文件T1102.002
Web服務:雙向通信CloudMensis通過Dropbox, pCloud, 或Yandex Drive進行C&C通信滲透
T1567.002
Web服務上的滲透:卸載到雲存儲CloudMensis通過Dropbox, pCloud, 或Yandex Drive滲透文件(1)文件
SHA-1
文件名
描述ESET檢測器D7BF702F56CA53140F4F03B590E9AFCBC83809DB
mdworker3
下載器(execute)
OSX/CloudMensis.A0AA94D8DF1840D734F25426926E529588502BC08
WindowServer, myexe
間諜代理(client)
OSX/CloudMensis.AC3E48C2A2D43C752121E55B909FC705FE4FDAEF6
WindowServer, MyExecute
間諜代理(client)OSX/CloudMensis.A(2)公鑰
-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsGRYSEVvwmfBFNBjOz+Qpax5rzWf/LT/yFUQA1zrA1njjyIHrzphgc9tgGHs/7tsWp8e5dLkAYsVGhWAPsjy1gx0drbdMjlTbBYTyEg5Pgy/5MsENDdnsCRWr23ZaOELvHHVV8CMC8Fu4Wbaz80LGhg8isVPEHC8H/yGtjHPYFVe6lwVr/MXoKcpx13S1K8nmDQNAhMpT1aLaG/6QijhW4P/RFQq+Fdia3fFehPg5DtYD90rS3sdFKmj9N6MO0/WAVdZzGuEXD53LHz9eZwR9Y8786nVDrlma5YCKpqUZ5c46wW3gYWi3sY+VS3b2FdAKCJhTfCy82AUGqPSVfLamQIDAQAB-----END PUBLIC KEY-----
(3)使用路徑
/Library/WebServer/share/httpd/manual/WindowServer
/Library/LaunchDaemons/.com.apple.WindowServer.plist
~/Library/Containers/com.apple.FaceTime/Data/Library/windowserver
~/Library/Containers/com.apple.Notes/Data/Library/.CFUserTextDecoding
~/Library/Containers/com.apple.languageassetd/loginwindow
~/Library/Application Support/com.apple.spotlight/Resources_V3/.CrashRep
編輯|李銀霞
審校|何雙澤、金矢
本文為CNTIC編譯整理,不代表本公眾號觀點,轉載請保留出處與鏈接。聯繫信息進入公眾號後點擊「關於我們」可見。