近期安全研究機構 Jamf Threat Labs 發現了一款針對 macOS 的新型資訊竊取程式,被命名為 PamStealer。這款惡意軟體最值得關注的地方在於它並非單純地嘗試猜測密碼,而是利用了 macOS 系統底層的驗證機制來確保獲取的登入密碼是正確的,展現了極高的隱蔽性與攻擊效率。
攻擊路徑與社交工程手法
PamStealer 的傳播採取典型的社交工程手法。攻擊者建立了一個與知名開源剪貼簿管理工具 Maccy 極其相似的偽造網站(例如 maccyapp[.]com),誘導使用者下載偽裝成該軟體的磁碟映像檔。
使用者下載後,會執行一個編譯過的 AppleScript 檔案(.scpt)。為了規避使用者的懷疑,該腳本會引導使用者透過腳本編輯器執行,或使用快捷鍵 ⌘ + R 啟動。由於惡意邏輯被隱藏在大量空白行之後,使用者在預覽時很難發現異常。更危險的是,這種方式甚至能繞過 Apple 的 Gatekeeper 安全檢查機制(即 com.apple.quarantine 屬性),讓惡意程式在系統防禦較嚴格的環境下依然能成功執行。
精準的環境指紋識別
PamStealer 並非對所有 Mac 採取同樣的攻擊,它具備強大的環境感知能力。在正式下載核心 payload(攻擊載荷)之前,它會先對主機進行指紋識別(Fingerprinting)。
它會檢查 CPU 架構、地區設定、鍵盤佈局以及時區。如果偵測到設備是 Intel 晶片而非 Apple Silicon (M系列晶片),或者系統設定位於東歐國家(如俄羅斯、白俄羅斯等),腳本會直接終止執行。這種做法能有效過濾掉安全研究人員的分析環境(Sandbox)以及特定地區的目標,降低被安全公司偵測到的風險。
核心攻擊機制:PAM 密碼驗證
這款惡意軟體之所以被命名為 PamStealer,是因為它利用了 macOS 的 PAM (Pluggable Authentication Modules) 機制。PAM 是一種可插拔認證模組,是系統用來驗證使用者身分(例如登入時檢查密碼)的標準介面。
一般的資訊竊取程式通常只是彈出一個假視窗騙取密碼,但 PamStealer 則是在後台直接呼叫 PAM API。當使用者在偽造的視窗中輸入密碼後,程式會立即將密碼傳給 PAM 進行本地驗證。如果驗證失敗,它會持續要求使用者重新輸入,直到獲得正確的系統登入密碼為止。這種即時驗證機制確保了攻擊者拿到的密碼百分之百有效。
後續載荷與資料竊取
一旦通過初步篩選,腳本會利用 Objective-C API 下載一個由 Rust 語言編寫的二進位檔案。選擇 Rust 語言能提供更高的執行效率且更難被反編譯分析。
這個 Rust 程式會偽裝成 Finder 應用程式,並要求使用者授予完整磁碟存取權限(Full Disk Access)。獲權後,它會開始大規模收集敏感資料,包括: 瀏覽器儲存的帳號密碼。 加密貨幣錢包擴充功能。 iCloud 鑰匙圈(Keychain)內容。 剪貼簿紀錄。
所有竊取的資料會經過加密,隨後透過 HTTP 請求傳送到攻擊者的伺服器。
完美的掩護與持久化
在完成密碼竊取與資料外傳後,PamStealer 會執行最後一步掩護工作。它會彈出一個偽造的系統警告,內容寫著 Maccy 已損壞無法開啟,建議使用者將其移至垃圾桶。
這個警告完全模仿了 macOS Gatekeeper 的原生介面。對使用者而言,他們會以為是軟體安裝失敗而將檔案刪除,但實際上惡意程式已經在系統中建立了持久化機制(Persistence),並成功竊取了所有權限,讓使用者在毫不知情的情況下被完全掌控。
總結與防範
PamStealer 的案例提醒我們,即便在 macOS 這樣相對封閉的系統中,社交工程結合系統原生 API(如 PAM)依然能造成嚴重威脅。對於工程師與使用者而言,最有效的防禦手段是: 僅從官方網站或經過驗證的 GitHub 儲存庫下載開源軟體。 對任何要求輸入系統管理員密碼的第三方軟體保持高度警覺。 定期檢查系統設定中的完整磁碟存取權限,移除不必要的授權。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。