錦州市廣廈電腦維修|上門(mén)維修電腦|上門(mén)做系統(tǒng)|0416-3905144熱誠(chéng)服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁(yè)
topFlag3 收藏本站
 
maojin003 首 頁(yè) 公司介紹 服務(wù)項(xiàng)目 服務(wù)報(bào)價(jià) 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見(jiàn)故障
錦州市廣廈電腦維修|上門(mén)維修電腦|上門(mén)做系統(tǒng)|0416-3905144熱誠(chéng)服務(wù)技術(shù)文章
利用macOS內(nèi)核漏洞逃逸Safari沙盒

作者: 佚名  日期:2017-05-25 08:23:02   來(lái)源: 本站整理

 在Pwn2own 2017 比賽中,蘋(píng)果的macOS Sierra 和 Safari 10 成為被攻擊最多的目標(biāo)之一。在此次比賽過(guò)程中,盡管有多支戰(zhàn)隊(duì)成功/半成功地完成了對(duì)macOS + Safari目標(biāo)的攻破,然而360安全戰(zhàn)隊(duì)使用的漏洞數(shù)量最少,而且也是唯一一個(gè)通過(guò)內(nèi)核漏洞實(shí)現(xiàn)沙盒逃逸和提權(quán),并完全控制macOS操作系統(tǒng)內(nèi)核的戰(zhàn)隊(duì)。在這篇技術(shù)分享中,我們將介紹我們所利用的macOS內(nèi)核漏洞的原理和發(fā)現(xiàn)細(xì)節(jié)。
在Pwn2own 2017中,為了完全攻破macOS Sierra + Safari目標(biāo),徹底控制操作系統(tǒng)內(nèi)核,360安全戰(zhàn)隊(duì)使用了兩個(gè)安全漏洞: 一個(gè)Safari遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2017-2544)和一個(gè)macOS內(nèi)核權(quán)限提升漏洞(CVE-2017-2545)。CVE-2017-2545是存在于macOS IOGraphics組件中的安全漏洞。
從互聯(lián)網(wǎng)上可循的源碼歷史來(lái)看,該漏洞最早在1992年移植自Joe Pasqua的代碼,因此這個(gè)漏洞已經(jīng)在蘋(píng)果操作系統(tǒng)中存在了超過(guò)25年,幾乎影響蘋(píng)果電腦的所有歷史版本,同時(shí)這又是可以無(wú)視沙盒的限制,直接從沙盒中攻入內(nèi)核的漏洞。
在我們3月比賽中獎(jiǎng)漏洞負(fù)責(zé)任報(bào)告給蘋(píng)果公司后,蘋(píng)果已經(jīng)在5月15日發(fā)布的macOS Sierra 10.12.5中修復(fù)了該漏洞。
尋找瀏覽器可訪問(wèn)的內(nèi)核驅(qū)動(dòng)
Windows系統(tǒng)一樣,Safari的瀏覽器沙盒限制了沙盒內(nèi)進(jìn)程可訪問(wèn)的內(nèi)核驅(qū)動(dòng),以減小內(nèi)核攻擊面對(duì)沙盒逃逸攻擊的影響,因此我們進(jìn)行的第一步研究就是尋找在瀏覽器沙盒內(nèi)可訪問(wèn)的內(nèi)核驅(qū)動(dòng)接口。
在macOS 上,系統(tǒng)根據(jù)下面兩個(gè)沙盒規(guī)則文件定義了Safari瀏覽器的權(quán)限范圍。
/System/ Library/Sandbox/Profiles/system.sb
/System/Library/Frameworks/WebKit.framework/Versions/A/Resources/com.apple.WebProcess.sb
我們進(jìn)一步關(guān)注Safari瀏覽器能夠訪問(wèn)的內(nèi)核驅(qū)動(dòng)種類(lèi)。在system.sb文件中,我們發(fā)現(xiàn)這樣一個(gè)規(guī)則:
(allow iokit-open (iokit-registry-entry-class “IOFramebufferSharedUserClient”))
這個(gè)規(guī)則說(shuō)明Safari瀏覽器可以打開(kāi)IOFramebufferSharedUserClient這個(gè)驅(qū)動(dòng)接口。IOFramebufferSharedUserClient是IOGraphic內(nèi)核組件向用戶(hù)態(tài)提供的接口。IOGraphic是macOS上的核心基礎(chǔ)驅(qū)動(dòng),負(fù)責(zé)圖形圖像處理任務(wù),10.12.4版本上對(duì)應(yīng)的IOGraphic源碼包在:https://opensource.apple.com/source/IOGraphics/IOGraphics-514.10/ 。既然IOGraphic相關(guān)代碼是開(kāi)源的,那么在下一步,我們就對(duì)IOGraphic進(jìn)行了代碼審計(jì)。
攻擊面
IOFramebufferSharedUserClient 繼承于IOUserClient。用戶(hù)態(tài)可以通過(guò)匹配名“IOFramebuff”的IOService, 然后調(diào)用IOServiceOpen函數(shù)獲IOFramebufferSharedUserClient對(duì)象的端口。
在獲取一個(gè)IOUserClient對(duì)象port后,我們通過(guò)用戶(hù)態(tài)API IOConnectCallMethod可以觸發(fā)內(nèi)核執(zhí)行這個(gè)對(duì)象的 ::externalMethod接口; 通過(guò)用戶(hù)態(tài)API IOConnectMapMemory可以觸發(fā)內(nèi)核執(zhí)行這個(gè)對(duì)象的 ::clientMemoryForType接口; 通過(guò)用戶(hù)態(tài)API  IOConnectSetNotificationPort可以觸發(fā)內(nèi)核執(zhí)行這個(gè)對(duì)象的 ::registerNotificationPort接口。
實(shí)際上IOFramebufferSharedUserClient提供的用戶(hù)態(tài)接口很少,其中函數(shù)IOFramebufferSharedUserClient::getNotificationSemaphore 引起了我們關(guān)注。在IOKit.framework中,實(shí)際上有個(gè)未導(dǎo)出的函數(shù)io_connect_get_notification_semaphore, 通過(guò)這個(gè)API,我們可以觸發(fā)內(nèi)核執(zhí)行相應(yīng)IOUserClient對(duì)象的 ::getNotificationSemaphore接口。
漏洞:getNotificationSemaphore UAF
我們參考IOFramebufferSharedUserClient::getNotificationSemaphore的接口代碼
接口也很簡(jiǎn)單,代碼如下:
IOReturn IOFramebufferSharedUserClient::getNotificationSemaphore(
   UInt32 interruptType, semaphore_t * semaphore )
{
   return (owner->getNotificationSemaphore(interruptType, semaphore));
}
由此可見(jiàn), IOFramebufferSharedUserClient::getNotificationSemaphore直接調(diào)用的是它的所有者 (也就是IOFramebuffer實(shí)例)的getNotificationSemaphore接口。
OFramebuffer::getNotificationSemaphore代碼如下:
 
IOReturn IOFramebuffer::getNotificationSemaphore(
   IOSelect interruptType, semaphore_t * semaphore )
{
   kern_return_t       kr;
   semaphore_t         sema;
 
   if (interruptType != kIOFBVBLInterruptType)
       return (kIOReturnUnsupported);
 
   if (!haveVBLService)
       return (kIOReturnNoResources);
 
   if (MACH_PORT_NULL == vblSemaphore)
   {
       kr = semaphore_create(kernel_task, &sema, SYNC_POLICY_FIFO, 0);
       if (kr == KERN_SUCCESS)
           vblSemaphore = sema;
   }
   else
       kr = KERN_SUCCESS;
 
   if (kr == KERN_SUCCESS)
       *semaphore = vblSemaphore;
 
   return (kr);
}
通過(guò)上面的代碼大家可以看出來(lái),vblSemaphore是一個(gè)全局對(duì)象成員。vblSemaphore初始值為0。這個(gè)函數(shù)第一次執(zhí)行后,內(nèi)核調(diào)用semaphore_create,創(chuàng)建一個(gè)信號(hào)量,將其賦予vblSemaphore。后面這個(gè)函數(shù)再次執(zhí)行時(shí)就會(huì)直接返回vblSemaphore。
問(wèn)題在于,用戶(hù)態(tài)調(diào)用io_connect_get_notification_semaphore獲取信號(hào)量后,可以銷(xiāo)毀該信號(hào)量。此時(shí),內(nèi)核中vblSemaphore仍指向一個(gè)已經(jīng)銷(xiāo)毀釋放的信號(hào)量對(duì)象。
當(dāng)用戶(hù)態(tài)繼續(xù)調(diào)用io_connect_get_notification_semaphore獲取vblSemaphore并使用該信號(hào)量時(shí),就會(huì)觸發(fā)UAF(釋放后使用)的情況。
總結(jié)
IOUserClient框架提供了大量接口給用戶(hù)態(tài)程序。由于歷史原因,IOFramebufferSharedUserClient仍然保留一個(gè)罕見(jiàn)的接口。盡管用戶(hù)態(tài)的IOKit.framework中沒(méi)有導(dǎo)出相應(yīng)的API,這個(gè)接口仍然可以調(diào)用,我們可以把內(nèi)核中 IOFramebuffer::getNotificationSemaphore的UAF問(wèn)題,轉(zhuǎn)化為內(nèi)核地址信息泄漏和任意代碼執(zhí)行,實(shí)現(xiàn)瀏覽器的沙盒逃逸和權(quán)限提升。



熱門(mén)文章
  • 機(jī)械革命S1 PRO-02 開(kāi)機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點(diǎn)不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過(guò)串口命令查看EMMC擦寫(xiě)次數(shù)和判...
  • IIS 8 開(kāi)啟 GZIP壓縮來(lái)減少網(wǎng)絡(luò)請(qǐng)求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對(duì)講門(mén)禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開(kāi)機(jī)界面...
  • 常見(jiàn)打印機(jī)清零步驟
  • 安裝驅(qū)動(dòng)時(shí)提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門(mén)維修

    報(bào)修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號(hào):遼ICP備2023002984號(hào)-1
    上門(mén)服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門(mén)維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無(wú)線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤(pán)刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 人妻无码精品久久亚瑟影视| 国产成年无码久久久免费| 亚洲国产精品无码专区在线观看 | 亚洲av无码日韩av无码网站冲| 亚州AV综合色区无码一区| 亚洲国产91精品无码专区| 久久久久亚洲av无码专区喷水| 人妻aⅴ中文字幕无码| 无码中文字幕乱在线观看| 久久精品无码av| 亚洲av永久无码天堂网| 亚洲av无码成人黄网站在线观看| 国产成人无码A区精油按摩| 日韩精品无码AV成人观看| 无码免费又爽又高潮喷水的视频| 亚洲av极品无码专区在线观看| 国产午夜精华无码网站| 无码精品人妻一区| 特级毛片内射www无码| 无码人妻精品中文字幕| 在线观看免费无码专区| 日韩人妻无码一区二区三区| 亚洲中文无码永久免| 色综合久久无码五十路人妻| 亚洲中文字幕无码爆乳av中文 | 无码专区天天躁天天躁在线| 精品无码久久久久久久久久| 日韩经典精品无码一区| 亚洲av无码兔费综合| 亚洲AV无码专区亚洲AV桃| 亚洲国产成人无码AV在线| 久久久久久久亚洲Av无码| 久久久久久亚洲AV无码专区| 亚洲精品偷拍无码不卡av| 无码视频一区二区三区在线观看| 国产在线无码不卡影视影院| 亚洲色中文字幕无码AV| a级毛片无码免费真人久久 | 国产成人无码精品久久久性色| 国产aⅴ激情无码久久久无码| 97在线视频人妻无码|