iPhone 漏洞 (Pegasus 、Triangulation)

2023122917:02

兩年前的 Pegasus 飛馬間諜軟體, 以色列 NSO Group 開發
能夠讀取簡訊、跟蹤通話、收集密碼、追蹤位置、 iPhone 麥克風和攝像頭
不過攻擊的成本很高,多用來對付黨政軍重要人士... 一般民眾被駭的機率不高
據說有  5 萬人遭駭,18個記者、異議人士、維權人士、企業家,600多政府高官,包含法國總統馬克宏

https://en.wikipedia.org/wiki/Pegasus_(spyware)

NSO Group 飛馬間諜軟體鑑識報告

A deep dive into an NSO zero-click iMessage exploit: Remote Code Execution
這篇是 google 研究員的詳細分析
大致的入侵過程:

發給被害者一封 sms 簡訊(或 iMessage)
被害者點了簡訊中的連結後,開始一連串的組合攻擊
下載一個 GIF 檔案 (其實是 PDF 偽裝成 GIF)

PDF 中一個古老的漏洞 (跟 xerox 印表機有關)
駭客利用這個漏洞,建立 AND、OR、XOR、XNOR 的邏輯運算
在利用這些邏輯運算功能寫了 7萬行的指令做出一台 "小型作業系統"
(應該是類似組合語言)
然後就可控制被害者 iPhone




這兩天又被爆新的 iOS 漏洞
4-year campaign backdoored iPhones using possibly the most advanced exploit ever

入侵的過程也是超複雜,比 Pegasus 還複雜:
(以 ChatGPT 翻譯)

。攻擊者發送一個惡意的 iMessage 附件,該附件在應用程序處理時不向用戶顯示任何跡象。

。此附件利用了未記錄的、僅適用於蘋果的TrueType字型指令ADJUST的漏洞CVE-2023-41990,用於遠程代碼執行。這個指令自90年代初就存在,並且在補丁中被移除。

。它使用返回/跳轉導向編程,使用NSExpression/NSPredicate查詢語言編寫的多個階段,修補JavaScriptCore庫環境以執行一個使用JavaScript編寫的特權升級漏洞。

。這個JavaScript漏洞經過混淆,使其完全不可讀並最小化其大小。儘管如此,它有約11000行代碼,主要用於JavaScriptCore和內核內存的解析和操作。

。它利用了JavaScriptCore的調試功能DollarVM($vm),以從腳本中操作JavaScriptCore內存並執行本地API功能。

。它被設計為支持舊款和新款iPhone,並包括用於新型號利用的Pointer Authentication Code(PAC)繞過。

。它使用XNU的內存映射系統調用(mach_make_memory_entry和vm_map)中的整數溢出漏洞CVE-2023-32434,以從用戶級獲得對設備整個物理內存的讀/寫訪問權限。

。它使用硬件內存映射I/O(MMIO)寄存器來繞過頁面保護層(PPL)。這已經被緩解為CVE-2023-38606。

。在利用所有漏洞之後,JavaScript漏洞可以對設備進行任何操作並運行間諜軟件,但攻擊者選擇:a)啟動imagent進程並注入一個清理設備上的利用藝術品的載荷;b)以隱形模式運行Safari進程並將其轉發到帶有下一階段的網頁。

。網頁包含一個驗證受害者的腳本,如果檢查通過,則接收到下一階段——Safari利用。

。Safari利用使用漏洞CVE-2023-32435執行shellcode。

。Shellcode執行另一個以mach對象文件形式的內核漏洞。它使用相同的漏洞CVE-2023-32434和CVE-2023-38606,它的大小和功能也很龐大,但它與JavaScript編寫的內核漏洞完全不同。只有與上述漏洞利用相關的某些部分是相同的。儘管如此,它的大多數代碼還是用於解析和操作內核內存。它具有各種後期利用工具,但其中大多數未被使用。

。漏洞利用獲得根權限,然後繼續執行其他負責加載間諜軟件的階段。