已經握有iOS 12.1.3 以下漏洞的奇虎安全研究團隊 360 Vulcan Team 成員 S0rryMybad(老实敦厚的大宝)已經釋出漏洞細節,根據S0rryMybad 描述,這是在2018年11月天府杯比賽中,替 iPhone X 上讓最新 iOS 系統實現Safari 網頁越獄,在這次也公布Chaos的PoC,還能夠讓 A12處理器設備取得tfp0的exploit細節,但是 S0rryMybad 並不會釋出 exploit 代碼和提及post exploit的利用細節,如想要越獄就需要依賴越獄開發者自行完成exploit代碼。
S0rryMybad(老实敦厚的大宝)將這個漏洞稱為「Chaos」,用到的是一個沙盒內可直接到達的內核漏洞(I name it Chaos),所以在取得Safari的RCE以後,我們可以直接從Safari沙盒內觸發這個漏洞,就能達到 JailbreakMe 網頁越獄。
從底下這個越獄示範影片上可以發現到,影片中兩台都是 iPhone XS 設備,透過 Safari 連上JailbreakMe越獄網站後,過沒幾秒後,漏洞就會被觸發並注入,過沒多久會 Respring (重新載入主畫面),再次進入主畫面後,設備就已經越獄完成,S0rryMybad也打開終端機 App,確認設備已經獲得 iOS 12.1.1 的 root權限。
為何會選擇在這時候發佈?其實過去S0rryMybad 就已經預告,如果此漏洞被蘋果修補後,就會將它釋出,在 iOS 12.1.3 正式版本推出後,已經修補了Chaos漏洞,就將這個漏洞部分細節分享給有興趣研究越獄的開發者和社區研究。
漏洞發現過程與細節
這個漏洞是怎麼被發現的呢? S0rryMybad 表示他當初看見底下一段代碼。
可以發現在 semaphore 非空的時候,每一個路徑都調用了|semaphore_dereference|
,除了 |!=task|
那個路徑,所以直覺告訴我,無論MIG的代碼是怎樣的,這裡面肯定會有一個路徑會發生引用計數的洩露。經過瀏覽MIG的函數後,我發現確實|!=task|的路徑發生了引用計數的洩露,這個在iOS12之前是可以利用的,並且在沙箱內可以出發,只不過需要很久的時間去觸發引用計數的溢出,意義不大.並且在最新版已經修復。
但是如果你是一個老練的漏洞挖掘人員,你應該有敏銳的觸覺第一時間想到,這部分的代碼肯定是缺少review並且質量不怎麼好,畢竟這裡可是沙盒內能直達的代碼啊,也意味著內核編寫人員可能並不熟悉MIG代碼的生成規則。這個信息比找到上面那個雞肋的漏洞更加重要,於是我開始找這些MIG相關的內核函數,當然是沙盒直達的,這也啟示了我以後挖掘漏洞的一些方法。
適用於 iOS 12.1.2 與最新 A12 處理器
根據 S0rryMybad 表示,目前這個JailbreakMe漏洞在 iOS 12.1.3 上被修補,這也代表 iOS 12~iOS 12.1.2 是可以使用這個越獄漏洞,如果你目前維持在 iOS 12.1.2 或更低版本,請維持不動等待後續越獄推出。
至於新款 A12 設備,像是 iPhone XS 、iPhone XS Max 及 iPhone XR 有Pointer Authentication Codes(PAC)等多種高級防禦機制,此漏洞也同樣可以讓 A12 運用,過去 SorryMybad 就已經針對A12 處理器上挖掘漏洞,也分享了一張 iPhone XS Max 運作 iOS 12.1 圖片,並且用「A12」文字敘述來暗示與敘述,從圖片內可以看見,他已經成功獲得iPhone XS Max 上的 iOS 12.1 “tfp0” 。
越獄何時會推出?
S0rryMybad 已經說過並不會釋出 exploit 代碼和提及post exploit的利用細節,詳細的 exploit 就要自行開發,不過對於一位經驗熟練的越獄開發者而言,透過 IPC Voucher UaF Remote Jailbreak Stage 2 漏洞分析操作,就會有辦法寫出 iOS 12 越獄工具,但這也引起不少越獄開發者興趣,不過目前還有一位開發者願意表明要推出 iOS 12 越獄。
不過還是要提醒大家,iOS 12.1.2 shsh2 請記得要保存,這才能夠保有後續升級的機會。
喜歡這篇文章教學,後續想了解更多Apple資訊、iPhone、Mac、3C隱藏技巧,歡迎追蹤 瘋先生FB粉絲團、瘋先生LINE@、訂閱瘋先生Google新聞、Telegram、Instagram以及 訂閱YouTube頻道,將會有更多非常實用的技巧教學分享給大家。