企業(yè)發(fā)布
首頁 > 企業(yè)發(fā)布 > 詳細(xì)內(nèi)容
長亭科技于晨升在中國互聯(lián)網(wǎng)安全領(lǐng)袖峰會現(xiàn)場發(fā)表演講
2016/11/11 14:22:00 來源:中國企業(yè)新聞網(wǎng)
導(dǎo)言:現(xiàn)就讀于北京理工大學(xué)計算機(jī)系,來自長亭科技安全研究實驗室的實習(xí)生于晨升在第二屆中國互聯(lián)網(wǎng)安全領(lǐng)袖峰會上做了題為《我的手機(jī)怎么被別人控制了?
現(xiàn)就讀于北京理工大學(xué)計算機(jī)系,來自長亭科技安全研究實驗室的實習(xí)生于晨升在第二屆中國互聯(lián)網(wǎng)安全領(lǐng)袖峰會上做了題為《我的手機(jī)怎么被別人控制了?-- 利用未公開漏洞ROOT掉一款最新款的流行手機(jī)》的精彩演講。以下是來自51CTO.com的報道原文《干貨分享| 教你如何利用漏洞ROOT安卓手機(jī)》:
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,智能手機(jī)、平板電腦等智能終端設(shè)備逐漸普及,慢慢的融入了我們的生活。然而與此同時智能手機(jī)安全問題也越來越凸顯,手機(jī)支付漏洞、手機(jī)遠(yuǎn)程定位、手機(jī)信息泄露等問題屢見不鮮。
11月9日,為期兩天的第二屆中國互聯(lián)網(wǎng)安全領(lǐng)袖峰會(Cyber Security Summit,簡稱CSS)在北京成功召開。作為主辦方的騰訊安全攜手來自世界的頂級安全廠商、產(chǎn)業(yè)鏈上企業(yè)、個人等圍繞時下物聯(lián)網(wǎng)、互聯(lián)網(wǎng)+等諸多議題進(jìn)行探討。并在大會第二日特設(shè)了安全極客秀分論壇,該論壇邀請了來自今年GeekPwn的優(yōu)勝選手,對當(dāng)時未能展示完全的項目進(jìn)行深入展示。來自長亭科技安全研究實驗室的實習(xí)生于晨升帶來了題為《我的手機(jī)怎么被別人控制了?-- 利用未公開漏洞ROOT掉一款最新款的流行手機(jī)》的精彩演講,現(xiàn)在他正就讀于北京理工大學(xué)計算機(jī)系。
在論壇現(xiàn)場,首先他邀請了一位參會者一起演示了如何利用未公開漏洞控制安卓手機(jī),隨后與大家分享了自己是如何發(fā)現(xiàn)并利用漏洞,最終控制安卓手機(jī)的。
Android系統(tǒng)架構(gòu)解析
于晨升指出,想要利用漏洞進(jìn)行攻擊,第一步應(yīng)該對Android系統(tǒng)架構(gòu)有足夠的了解才行。Android系統(tǒng)架構(gòu)主要分為四層,即是:Application層、Framework層、Library層以及Kernel層。手機(jī)的自帶應(yīng)用在Application層,這一層從安裝到運行其權(quán)限最低。Framework層主要為Application層的應(yīng)用提供系統(tǒng)服務(wù),隨后在安卓程序運行時,需要第三層Library層的支持,通過此層引入運行時所依賴的動態(tài)庫。Kernel層為系統(tǒng)內(nèi)核層。特別是在Android系統(tǒng)第四層內(nèi)核層中包含許多廠商相關(guān)的驅(qū)動,例如顯卡、相機(jī)、觸摸屏的驅(qū)動等。于晨升表示,為了支持不同的手機(jī)不同的芯片,需要進(jìn)行驅(qū)動編寫給用戶提供相同的接口,導(dǎo)致廠商驅(qū)動的安全性比Android內(nèi)核本身的安全性差,廠商驅(qū)動為Android系統(tǒng)帶來了新的攻擊面新的漏洞。因此,尋找手機(jī)漏洞,可以從這個層面出發(fā)。
漏洞分析
在分會場現(xiàn)場,于晨升針對最新的一款手機(jī)實現(xiàn)了ROOT,所利用的漏洞還未公開,所以他選擇了一個已經(jīng)公開并修補(bǔ)的漏洞分享了CVE-2015-0569,CVE-2015-0570, CVE-2015-0571三個已知漏洞的利用思路和過程。
據(jù)悉,這三個漏洞由slipper在2015年的GeekPwn上公開,存在于高通WLAN驅(qū)動中的棧溢出與堆溢出漏洞,漏洞由于在進(jìn)行內(nèi)存拷貝之前未檢驗拷貝長度,導(dǎo)致緩沖區(qū)溢出。隨后高通第一時間修補(bǔ)了漏洞,在內(nèi)存拷貝操作之前進(jìn)行了檢查,同時在調(diào)用對應(yīng)的代碼塊之前進(jìn)行了權(quán)限檢查(CAP_NET_ADMIN)。
漏洞利用
如何從發(fā)現(xiàn)漏洞到利用漏洞,再獲得手機(jī)root權(quán)限呢?于晨升解釋說,觸發(fā)漏洞后,就能夠達(dá)到的任意內(nèi)核地址寫0效果。從0開始的地址無法申請,寫函數(shù)指針寫0無法實現(xiàn),所以需要提升條件,寫0但是不把所有的指針寫為0只是更改高位的,然后對地址進(jìn)行操作。無KASLR,覆寫固定地址的指針高位是可行的。有時改寫函數(shù)值是不可行的,因為多數(shù)ARM64架構(gòu)的手機(jī)上PXN是打開的,不能直接申請一段用戶態(tài)內(nèi)存讓內(nèi)核去執(zhí)行shellcode。那么此時該如何利用呢?
為了解決以上問題,于晨升在鏈表頭數(shù)組inetsw中尋找到了突破口,如圖所示:
inetsw是linux內(nèi)核用于維護(hù)socket創(chuàng)建時所需要的信息的雙向鏈表,inet_register_protosw時,將特定類型的socket信息加入到鏈表中, inet_create時遍歷鏈表尋找對應(yīng)信息。包含proto, ops等結(jié)構(gòu)的指針,這些結(jié)構(gòu)中又含有許多的函數(shù)指針。
因此,如果在無PAN的條件下,覆寫inetsw中某一個next指針的高位,在用戶態(tài)偽造數(shù)據(jù)結(jié)構(gòu),可創(chuàng)建一個完全被控制的socket,最終達(dá)到如下效果:
如圖所示,我們可以看到PC指針形成了一個特殊的指令,此時我們可以控制PC指令了。
那么,控制PC之后如何進(jìn)一步利用呢?此時無法執(zhí)行用戶態(tài)代碼,只能利用內(nèi)核態(tài)代碼。我們注意到ioctl中r0, r1, r2寄存器可以控制,于是可以利用以下gadget達(dá)到任意地址讀寫:
0x000000000021b598 : str w1, [x2] ; ret
0x00000000001e246c : ldr x0, [x2] ; add w0, w0, #1 ; ret
通過任意地址讀寫,利用init_task可以找到當(dāng)前進(jìn)程的task_struct(或者利用泄露sp的gadget,通過thread_info找到task_struct,更穩(wěn)定)。找到task_struct之后即可修改cred,將uid等改為0即可。同時patch掉selinux_enforcing,關(guān)掉selinux、mount -o rw,remount /system即可關(guān)掉/system分區(qū)寫保護(hù)。在實際利用中,發(fā)現(xiàn)mtk設(shè)備的內(nèi)核代碼是可寫的。在關(guān)閉selinux之后,某處的assert會失敗,可以利用上面的特性patch掉assert的代碼;蛘咄ㄟ^修改修改當(dāng)前進(jìn)程的sid,將其selinux的context修改為u:r:init:0。實際測試中,我們會發(fā)現(xiàn)u:r:init:0進(jìn)程啟動/system/bin/sh后權(quán)限會降為u:r:init_shell:0。
總結(jié)
演講最后,于晨升表示,Android 6.0/7.0版本中已經(jīng)增強(qiáng)了SEPolicy,防止未經(jīng)授權(quán)的app訪問白名單以外的設(shè)備,減少了攻擊面,大大增強(qiáng)了安全性。并建議,廠商應(yīng)該更加重視自家驅(qū)動的安全性,防止被黑客濫用,造成惡劣影響。
免責(zé)聲明:
※ 以上所展示的信息來自媒體轉(zhuǎn)載或由企業(yè)自行提供,其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本網(wǎng)站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本網(wǎng)站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。如果以上內(nèi)容侵犯您的版權(quán)或者非授權(quán)發(fā)布和其它問題需要同本網(wǎng)聯(lián)系的,請在30日內(nèi)進(jìn)行。
※ 有關(guān)作品版權(quán)事宜請聯(lián)系中國企業(yè)新聞網(wǎng):020-34333079 郵箱:cenn_gd@126.com 我們將在24小時內(nèi)審核并處理。
標(biāo)簽 :
相關(guān)網(wǎng)文
一周新聞資訊點擊排行
關(guān)于我們 | CENN服務(wù) | 對外合作 | 刊登廣告 | 法律聲明 | 聯(lián)系我們 | 手機(jī)版
客戶服務(wù)熱線:020-34333079、34333137 傳真:020-34333002 舉報電話:020-34333002、13925138999(春雷) 舉報郵箱:cenn_gd@126.com
版權(quán)所有:中國企業(yè)新聞網(wǎng) 運營商:廣州至高點網(wǎng)絡(luò)技術(shù)有限公司 地址:廣州市海珠區(qū)江燕路353號保利紅棉48棟1004