成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【干貨分享】教你如何利用漏洞ROOT安卓手機

原創
安全 終端安全
于晨升指出,想要利用漏洞進行攻擊,第一步應該對Android系統架構有足夠的了解才行。Android系統架構主要分為四層,即是:Application層、Framework層、Library層以及Kernel層。

【51CTO.com原創稿件】隨著移動互聯網的快速發展,智能手機、平板電腦等智能終端設備逐漸普及,慢慢的融入了我們的生活。然而與此同時智能手機安全問題也越來越凸顯,手機支付漏洞、手機遠程定位、手機信息泄露等問題屢見不鮮。

11月9日,為期兩天的第二屆中國互聯網安全領袖峰會(Cyber Security Summit,簡稱CSS)在北京成功召開。作為主辦方的騰訊安全攜手來自世界的頂級安全廠商、產業鏈上企業、個人等圍繞時下物聯網、互聯網+等諸多議題進行了深入探討,并在大會第二日特設了安全極客秀分論壇。該論壇邀請了來自今年GeekPwn的優勝選手,對當時未能展示完全的項目進行深入展示。現正就讀于北京理工大學計算機系,來自長亭科技安全研究實驗室的實習生于晨升帶來了題為《我的手機怎么被別人控制了?——利用未公開漏洞ROOT掉一款最新款的流行手機》的精彩演講。

【干貨分享】教你如何利用漏洞ROOT安卓手機

長亭科技安全研究實驗室的實習生于晨升

在論壇現場,首先他邀請了一位參會者一起演示了如何利用未公開漏洞控制安卓手機,隨后與大家分享了自己是如何發現并利用漏洞,最終控制安卓手機的。

【干貨分享】教你如何利用漏洞ROOT安卓手機

于晨升與參會者正在進行現場演示

Android系統架構解析

于晨升指出,想要利用漏洞進行攻擊,第一步應該對Android系統架構有足夠的了解才行。Android系統架構主要分為四層,即是:Application層、Framework層、Library層以及Kernel層。手機的自帶應用在Application層,這一層從安裝到運行其權限最低。Framework層主要為Application層的應用提供系統服務,隨后在安卓程序運行時,需要第三層Library層的支持,通過此層引入運行時所依賴的動態庫。Kernel層為系統內核層。具體如圖所示:

【干貨分享】教你如何利用漏洞ROOT安卓手機

如圖所示,特別是在Android系統第四層內核層中包含許多廠商相關的驅動,例如顯卡、相機、觸摸屏的驅動等。于晨升表示,為了支持不同的手機不同的芯片,需要進行驅動編寫給用戶提供相同的接口,導致廠商驅動的安全性比Android內核本身的安全性差,廠商驅動為Android系統帶來了新的攻擊面新的漏洞。因此,尋找手機漏洞,可以從這個層面出發。

漏洞分析

在分會場現場,于晨升針對最新的一款手機實現了ROOT,所利用的漏洞還未公開,所以他選擇了一個已經公開并修補的漏洞分享了CVE-2015-0569,CVE-2015-0570, CVE-2015-0571三個已知漏洞的利用思路和過程。

據悉,這三個漏洞由slipper在2015年的GeekPwn上公開,存在于高通WLAN驅動中的棧溢出與堆溢出漏洞,漏洞由于在進行內存拷貝之前未檢驗拷貝長度,導致緩沖區溢出。

【干貨分享】教你如何利用漏洞ROOT安卓手機

隨后高通第一時間修補了漏洞,在內存拷貝操作之前進行了檢查,同時在調用對應的代碼塊之前進行了權限檢查(CAP_NET_ADMIN)。

【干貨分享】教你如何利用漏洞ROOT安卓手機

漏洞利用

如何從發現漏洞到利用漏洞,再獲得手機root權限呢?于晨升解釋說,觸發漏洞后,就能夠達到的任意內核地址寫0效果。從0開始的地址無法申請,寫函數指針寫0無法實現,所以需要提升條件,寫0但是不把所有的指針寫為0只是更改高位的,然后對地址進行操作。無KASLR,覆寫固定地址的指針高位是可行的。有時改寫函數值是不可行的,因為多數ARM64架構的手機上PXN是打開的,不能直接申請一段用戶態內存讓內核去執行shellcode。那么此時該如何利用呢?

為了解決以上問題,于晨升在鏈表頭數組inetsw中尋找到了突破口,如圖所示:

【干貨分享】教你如何利用漏洞ROOT安卓手機

inetsw是linux內核用于維護socket創建時所需要的信息的雙向鏈表,inet_register_protosw時,將特定類型的socket信息加入到鏈表中, inet_create時遍歷鏈表尋找對應信息。包含proto, ops等結構的指針,這些結構中又含有許多的函數指針。

因此,如果在無PAN的條件下,覆寫inetsw中某一個next指針的高位,在用戶態偽造數據結構,可創建一個完全被控制的socket,最終達到如下效果:

【干貨分享】教你如何利用漏洞ROOT安卓手機

如圖所示,我們可以看到PC指針形成了一個特殊的指令,此時我們可以控制PC指令了。

那么,控制PC之后如何進一步利用呢?此時 無法執行用戶態代碼,只能利用內核態代碼。我們注意到ioctl中r0, r1, r2寄存器可以控制,于是可以利用以下gadget達到任意地址讀寫:

0x000000000021b598 : str w1, [x2] ; ret

0x00000000001e246c : ldr x0, [x2] ; add w0, w0, #1 ; ret

通過任意地址讀寫,利用init_task可以找到當前進程的task_struct(或者利用泄露sp的gadget,通過thread_info找到task_struct,更穩定)。找到task_struct之后即可修改cred,將uid等改為0即可。同時patch掉selinux_enforcing,關掉selinux、mount -o rw,remount /system即可關掉/system分區寫保護。在實際利用中,發現mtk設備的內核代碼是可寫的。在關閉selinux之后,某處的assert會失敗,可以利用上面的特性patch掉assert的代碼。或者通過修改修改當前進程的sid,將其selinux的context修改為u:r:init:0。實際測試中,我們會發現u:r:init:0進程啟動/system/bin/sh后權限會降為u:r:init_shell:0。

總結

演講最后,于晨升表示,Android 6.0/7.0版本中已經增強了SEPolicy,防止未經授權的app訪問白名單以外的設備,減少了攻擊面,大大增強了安全性。并建議,廠商應該更加重視自家驅動的安全性,防止被黑客濫用,造成惡劣影響。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:藍雨淚 來源: 51CTO.com
相關推薦

2016-03-12 21:30:55

2021-05-07 11:06:44

漏洞Qualcomm MS高通

2013-07-30 10:01:10

2015-12-10 17:02:59

2018-09-14 09:55:26

2015-07-31 09:52:25

安卓漏洞

2015-08-07 16:58:53

2016-03-29 10:48:53

2015-07-08 14:15:46

2021-04-27 15:24:22

安卓手機ROOT卸載

2011-10-09 15:03:15

手機

2020-06-05 10:17:58

安全漏洞LG

2016-11-16 15:36:09

2016-11-16 08:47:01

2015-01-29 11:15:35

2015-10-20 09:21:41

2021-03-15 10:31:48

手機安卓蘋果

2025-02-04 20:21:15

2015-07-02 14:29:22

2014-01-03 10:00:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区中文字幕 | 国产欧美日韩综合精品一区二区 | 玖玖视频免费 | 欧美一区二区三区在线看 | 黄色国产| 午夜精品久久久久久久99黑人 | 91在线看片 | 国产在线一区二区三区 | 欧美久久视频 | 黄色片大全在线观看 | 国产午夜精品一区二区三区四区 | 久久午夜精品福利一区二区 | 亚洲激情在线视频 | 精品国产精品一区二区夜夜嗨 | 亚洲在线 | 亚洲第一成人影院 | 国产精品免费看 | 粉嫩av在线 | 青青草一区二区 | 国产成人精品久久 | 精品一二区 | 亚洲网站在线播放 | 中文字幕高清一区 | 色资源在线视频 | 午夜天堂精品久久久久 | 亚洲中午字幕 | 久久婷婷色 | 精品久久久久久久久久久久久久 | 亚洲www| 亚洲一区二区三区在线播放 | 欧美日韩在线一区 | 亚洲精品久久久久久久久久吃药 | 狠狠躁18三区二区一区 | 中文字幕av中文字幕 | 欧美成人一级视频 | 亚洲先锋影音 | 欧美在线看片 | 91新视频| 国产日韩欧美激情 | 中文字幕一级 | 超碰520|