iOS的安全性遠(yuǎn)比大家的想象中脆弱,除了沒有公開的漏洞以外,還有很多已經(jīng)公開并且可被利用的漏洞,本報告總結(jié)了2016年比較嚴(yán)重的iOS漏洞(可用于遠(yuǎn)程代碼執(zhí)行或越獄),希望能夠?qū)Υ蠹乙苿影踩矫娴墓ぷ骱脱芯繋硪恍椭?/span>

 

0x01 iOS 10.1.1 公開的可利用漏洞

1. mach_portal攻擊鏈:該攻擊鏈?zhǔn)怯蒅oogle Project Zero的Ian Beer公布的。整個攻擊鏈由三個漏洞組成:損壞的內(nèi)核port的uref可導(dǎo)致任意進(jìn)程的port被越權(quán)替換(CVE-2016-7637),powerd任意port替換可導(dǎo)致DoS(CVE-2016-7661),因為set_dp_control_port沒有上鎖導(dǎo)致的XNU內(nèi)核UaF(CVE-2016-7644)。

攻擊者先使用CVE-2016-7637將launchd與”com.apple.iohideventsystem”系統(tǒng)服務(wù)具有發(fā)送權(quán)限的port替換成自己控制的進(jìn)程的port,并攻擊者還具有該port的接收權(quán)限。然后,攻擊者利用CVE-2016-7661對powerd這個進(jìn)程進(jìn)行DoS,使其重啟。在啟動過程中,因為powerd的啟動需要用到”com.apple.iohideventsystem”系統(tǒng)服務(wù),于是將task port發(fā)送給了這個系統(tǒng)服務(wù)。但因為攻擊者利用之前的CVE-2016-7637漏洞獲取了”com.apple.iohideventsystem”系統(tǒng)服務(wù)port的接收權(quán)限,因此攻擊者獲得了powerd的task port,從而控制了具有root權(quán)限并且在沙盒外的powerd進(jìn)程。攻擊者隨后利用powerd進(jìn)程的task port獲取到了host_priv port,然后利用host_priv port觸發(fā)因set_dp_control_port沒有上鎖而導(dǎo)致的XNU內(nèi)核UaF(CVE-2016-7644)漏洞,從而控制了kernel task port。攻擊者在獲取了kernel task以后,就可以利用系統(tǒng)提供的mach_vm_read()和mach_vm_write()去進(jìn)行任意內(nèi)核讀寫了。

2016年12月22日,qwertyoruiop在Ian Beer公布的mach_portal攻擊鏈的基礎(chǔ)上,加入了KPP的繞過、內(nèi)核patch和cydia的安裝,并在自己的twitter上發(fā)布了iOS 10.1.*的越獄。

 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式