压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

蘋果OS X Yosemite系統曝多個本地提權漏洞

  國外安全研究人員近日曝光最新版Mac OSX 10.10.1系統上存在多處本地提權漏洞,由于提交到蘋果官方時間太久都過未得到明確答復,導致研究者直接公布漏洞細節以及利用代碼。

  基于之前已發現的問題啟發,我們又對Mac OS X上最新的 IOBluetoothHCIController服務進行了一些測試,功夫不負有心人,我們又發現了5個安全問題。這些問題已經在蘋果公司的安全報告平臺上報告過,但由于蘋果官方過長時間未給予明確答復,所以我們公布了其中的4個漏洞的細節和PoC(另外一個蘋果公司還在審查中)。這5個問題都出現在"IOBluetoothHCIController"上,可在IOBluetoothFamily內核擴展中應用(md5e4123caff1b90b81d52d43f9c47fec8f)。

  問題1

  許多由"IOBluetoothHCIController" 處理的回調函數不經檢查就盲目的解引用指針參數。這些回調函數的調用者"IOBluetoothHCIUserClient::SimpleDispatchWL()"可以通過空指針致使其最終被解引用。

  具體的說就是,"SimpleDispatchWL() "處理的每一個user-space參數都包含一個數值和大小字段。當一個user-space客戶端對一個NULL指針的參數提供了一個很大的值時,就會導致"IOMalloc(size)"調用失敗,然后返回到空指針,最終導致空指針解引用。

  針對"ispatchHCICreateConnection()"的方法我們提供了PoC,但是使用其他的調用函數又會使內核死機(通常其他的調用函數會接收多個指標參數)。首先我們排除了這個漏洞僅僅是一個本地DoS。然而Yosemite只能部分阻止從用戶空間向NULL指針的映射,因此仍然有可能利用解除的空指標發動本地提權攻擊,下面是部分代碼:

  問題2

  由于一個bcopy(src, dest, strlen(src))的調用(src完全由攻擊者掌控),"IOBluetoothHCIController::BluetoothHCIChangeLocalName()"受以前的緩沖區溢出漏洞影響。因現存的Canary棧堆的保護,該漏洞不可能被直接利用。但是,如果它和內存泄露漏洞結合使用的話,仍然可以發動本地提權攻擊。

  問題3:

  "IOBluetoothHCIController::TransferACLPacketToHW()"被作為一個輸入參數來接收一個指針指向"IOMemoryDescriptor"。經過仔細檢查發現該函數所提供的指針是非空的。然而,不論這次測試的結果如何,這個指針仍然會被解引用。(如下圖所示,攻擊者將輸入參數存儲在寄存器的r15中)當調用"DispatchHCISendRawACLData()"并使用構造函數"IOMemoryDescriptor::withAddress()"來創建"IOMemoryDescriptor"時,由于該構造函數包含一個用戶控制值,可能會導致失敗并返回一個空的指針。該空指針如何利用在問題1中有過說明。

  問題4:

  該問題是由于對以下函數中的參數沒有進行完整清晰的檢查所造成的:

  第一個參數req_index被用來在人機交互請求的隊列中查找某人機交互請求(因此利用時需要用假請求填滿該隊列)。第二個整數參數"(num_of_keys)"被用來去計算其他輸入的總大小,分別指向"p_device_addresses"和"p_bluetooth_keys",如下圖所示,這個值并沒有在傳到函數"IOBluetoothHCIController::SendHCIRequestFormatted()"之前經過檢查。原型如下:

  傳遞的格式字符串"HbbNN"最終會將size_of_addresses由"p_device_addresses"倒序復制到outResultBuf,該指針將可以被攻擊者控制的值在返回用戶空間前進行重寫和訪問,因此我們可以在這里進行漏洞利用。

  我們提供的PoC"lpe-issue1.c"可以利用這個Bug調用位于控制器0×4141414142424242地址的一個函數。由于多個vtable指針是損壞的,所以如果想要它清晰的返回user-space可能需要對Poc進行多次調試。(我們所采用的Poc都并不包含真正的負載,我們也并沒有試圖繞過Yosemite現有的安全功能。)

  總結

  隨著最后一個問題被確認,我們將依據我們所發現的問題與蘋果公司分享關于Kxet的一些結論,我們推測仍然有許多其他的導致崩潰問題或者本地提權漏洞存在。我們只是通過業余的時間進行了一次很好的分析,考慮到我們所付出的努力程度,我們認為應該對Kext代碼進行一次完整的安全評估。

 

上一篇:智能無懼挑戰 山石網科轟動RSA2015

下一篇:Javascript間諜腳本分析:Web惡意程序Scanbox源碼分析與演示