macOS 0-day漏洞詳情披露,可被利用完全接管系統
2017 年 12 月 31 日,一名推特賬號為 Siguza 的安全研究人員公布了 macOS 0-day 漏洞的詳情。該漏洞是一個本地提權漏洞,影響到所有 macOS 版本,主要涉及人機介面設備(如觸摸屏、按鍵、加速度計等)的內核驅動程序 IOHIDFamily。攻擊者利用這個漏洞可以在在內核中進行任意讀/寫,並執行任意代碼、獲取 root 許可,進而徹底接管系統。據 Siguza 推測,漏洞可以追溯到 2002 年。
Siguza 原本是在分析 iOS 中 IOHIDFamily 的漏洞,結果發現 IOHIDSystem 組件僅存在於 macOS 上,最後發現了這個漏洞。
我最初想研究 IOHIDSystem 組件,希望找到一個能夠滲透 iOS 內核的漏洞。結果發現 IOHIDFamily 的某些部分(尤其是 IOHIDSystem)只存在於 macOS 上,結果就在 macOS 上發現了這個存在於
IOHIDFamily 組件中的漏洞
。Siguza 還發布了名為 IOHIDeous 的 PoC 代碼,可在 Sierra 和 High Sierra(最高版本為 10.13.1)上實現利用,獲取完整的內核讀/寫許可權,並禁用系統完整性保護(SIP)功能和 Apple 移動文件完整性(AMFI)保護功能。非特權用戶也可在所有最新版本的 macOS 上利用該漏洞。
圖:存在漏洞的 IOHIDSystem 代碼
如上圖所示,eop->evGlobalsOffset = sizeof(EvOffsets);
和evg = (EvGlobals *)((char *)shmem_addr + eop->evGlobalsOffset);
這兩行存在問題。
其中,eop->evGlobalsOffset
的值可以更改,所以會導致evg
指向其他非意向結果。
更多技術分析詳情可以
點擊閱讀原文
相關鏈接查閱。
實驗表明,該漏洞利用代碼運行速度很快,能夠避免用戶交互,甚至在系統關閉時「能夠在用戶註銷和內核殺毒之搶先運行」。這意味著用戶在註銷、重新啟動或關閉計算機時,都有可能遭到攻擊,被攻擊者獲取 root 許可權,連社工都不需要。
不過,Siguza 發布的 PoC 代碼似乎不適用於2017 年 12 月 6 日蘋果剛剛發布的 macOS High Sierra 10.13.2 版本,但他認為這個版本仍然有可能存在問題。
由於某些原因,我這份時序攻擊在 High Sierra 10.13.2 上不起作用,不過我也不會再深入研究了。也許是因為 10,13,2 版本打了補丁,也許只是隨機變化的後果,我既不知道也不在乎。 漏洞依然存在,這個 PoC 體現了該漏洞的信息泄露和內核讀/寫的特性,不過這兩個特性不在同一個二進位文件中。
我的主要目的是讓人們知道這個漏洞。我不會把 exploit 賣給黑客,因為我不想助紂為虐。如果蘋果的漏洞獎勵計劃包含 macOS 的漏洞,或者這個漏洞出現遠程利用的實例,那我早就把這個漏洞提交給蘋果了。
Siguza 公開披露這個 macOS 0-day 漏洞的原因是該漏洞已經被一名本地攻擊者利用,而且蘋果的漏洞獎勵計劃並未涵蓋這一類的漏洞。所以,目前漏洞還未修復。由於這個漏洞需要在本地訪問計算機或者攻擊者已經入侵過計算機的前提下才可以被利用,所以可能會被蘋果列為非嚴重問題,不會進行緊急修復。據推測,蘋果可能會在下個月的安全更新中修復。
*參考來源:Securityaffairs,AngelaY 編譯,轉載請註明來自 FreeBuf.COM。


※「BUF大事件」晶元底層巨大漏洞;絕地求生輔助程序藏挖礦木馬;跳一跳刷分需謹慎
TAG:FreeBuf |