安全研究人員發現了一款從未見過的macOS惡意軟體,該軟體綜合運用多種巧妙的攻擊手法,將具有高度隱蔽性的自定義憑證竊取代碼植入Mac系統。
該惡意軟體分兩個階段傳播。第一階段通過偽裝成Mac剪貼板管理工具Maccy的磁盤鏡像文件進行分發,以AppleScript形式編譯,其第二階段的投遞方式尤為值得關注。該惡意軟體被命名為PamStealer,因為其用Rust編寫的資訊竊取程序,利用macOS內置的可插拔認證模組(PAM)接口驗證目標登錄密碼,隨後將其發送至攻擊者控制的伺服器。
磁盤鏡像與AppleScript的組合使用在Mac惡意軟體中較為常見,但PamStealer將兩者結合以增強隱蔽性的方式則更為少見。當用戶雙擊AppleScript文件時,它會在macOS腳本編輯器中打開,惡意功能深度隱藏於文件內部。
專注於macOS安全的公司Jamf的研究人員表示:"該AppleScript並未依賴curl或zsh等Shell命令,而是執行一個自包含的JavaScript自動化(JXA)下載器,通過原生Objective-C API獲取並部署載荷。結合基於Rust的第二階段模組以及通過PAM在本地驗證憑證的密碼捕獲流程,最終形成的執行鏈比我們通常在普通macOS竊取軟體中觀察到的更為隱蔽。"
當用戶以為正在安裝可信賴的剪貼板管理工具並打開磁盤鏡像時,系統會提示其在雙擊後立即按下Command-R組合鍵。此操作會直接執行AppleScript中的惡意代碼,同時繞過com.apple.quarantine機制——該機制原本會在可執行文件從網際網路下載時發出警告並施加限制。
Jamf對此進行了詳細說明:PamStealer將一種新興的投遞方式與不太常見的載荷相結合。儘管可點擊的.scpt文件和腳本編輯器誘導手法已在macOS威脅場景中逐漸被採用,但該惡意軟體憑藉自包含的JXA投放器、基於Rust的第二階段模組,以及在收集密碼前通過PAM進行本地驗證的密碼捕獲流程,使其區別於同類軟體。第二階段在保持隱蔽方面下了相當大的功夫:偽裝成Finder進程、加密命令與控制流量,並將"完全磁盤訪問"等權限請求延遲長達40分鐘後才彈出,以避免其活動與啟動時間相關聯。這些行為共同表明,普通macOS竊取軟體仍在持續演進,採用更為隱蔽的執行鏈和原生實現方式,在減少傳統檢測機會的同時,與標準macOS功能保持兼容。
第一階段將載荷嵌入一個仿冒macOS內置組件的應用程式包中,具體組件因惡意軟體樣本不同而有所差異。例如,位於com.apple.finder.core或com.apple.finder.monitor路徑下的Finder.app,以及位於com.apple.security.daemon路徑下的Software Update.app。這些進程均以隱藏方式運行,並使用macOS原生的Finder.icns作為圖標。
第二階段是一個專為搭載Apple晶片的Mac編寫的精簡Mach-O文件。攻擊者選擇用Rust編寫該文件,這在macOS資訊竊取軟體中相對少見,更常見的選擇是Swift、Go和Objective-C。該二進制文件調用內置SQLite應用的讀取接口,使資訊竊取程序能夠直接讀取資料庫文件。
PamStealer會顯示一個仿照系統授權請求設計的原生密碼提示框,提示文字為:"Maccy想要進行更改,請輸入密碼以允許此操作。"如前所述,一旦目標用戶遵從提示,惡意軟體便通過PAM API在本地對密碼進行驗證。
Jamf指出:"整個驗證過程完全通過PAM完成,不會調用dscl、security、osascript或任何衍生進程來核驗密碼,而許多普通macOS竊取軟體都會這樣做。這使整個流程更加隱蔽,只保留經過驗證的密碼,同時減少了防禦者可檢測到的進程鏈。"
若驗證失敗,PamStealer將反覆顯示提示框,直至獲取正確密碼。密碼驗證成功後,PamStealer會顯示一條提示,稱文件已損壞、無法安裝,以此迷惑目標用戶,使其不起疑心。
該惡意軟體還通過多種手段最大化竊取資訊的範圍:一方面請求目標用戶授予假冒Maccy應用完全磁盤訪問權限,另一方面還包含專門用於訪問以太坊賬戶的代碼。
腳本編輯器誘導手法、自包含的JXA投放器、基於Rust的第二階段模組以及通過PAM進行本地憑證驗證——這些技術手段均值得高度關注。
Jamf總結道:"這些行為共同表明,普通macOS竊取軟體仍在持續演進,採用更隱蔽的執行鏈和原生實現方式,在降低傳統檢測可能性的同時,與標準macOS功能保持兼容。"
Q&A
Q1:PamStealer是什麼類型的惡意軟體?它是如何感染Mac的?
A:PamStealer是一款針對macOS的資訊竊取惡意軟體,分兩個階段傳播。第一階段偽裝成Mac剪貼板管理工具Maccy的磁盤鏡像文件,以AppleScript形式存在;第二階段是用Rust編寫的資訊竊取程序。用戶雙擊文件並按下Command-R後,惡意代碼即被執行,同時繞過macOS的安全隔離機制,完成整個感染流程。
Q2:PamStealer是如何竊取用戶密碼的?
A:PamStealer會彈出一個仿照系統授權請求設計的假冒密碼提示框,提示用戶輸入密碼。與其他竊取軟體不同,PamStealer完全通過macOS內置的PAM接口在本地驗證密碼,不調用任何外部命令或衍生進程,使得整個驗證過程極為隱蔽。密碼驗證成功後,惡意軟體會將其發送至攻擊者控制的伺服器,並顯示"文件已損壞"的虛假提示以消除用戶疑慮。
Q3:PamStealer如何躲避macOS的安全檢測?
A:PamStealer採用多重隱蔽手段:偽裝成Finder等系統內置組件運行、加密命令與控制流量、將權限請求延遲40分鐘後才彈出以避免與啟動時間關聯,同時利用Command-R組合鍵繞過com.apple.quarantine安全隔離機制。此外,使用原生JXA和Rust實現,也使其更難被傳統檢測工具識別。






