Android安卓系统漏洞

Android安卓系统漏洞

黑客安全hacker2017-08-22 2:10:178471A+A-

(一) 序言

1.1什么叫root

Root——也就是说人们这儿说的系统软件提权,一般是对于Android系统软件的手机上来讲,它促使客户能够获得Android电脑操作系统的超级用户管理权限。root一般用以协助客户翻过手机制造商的限定,促使客户能够卸载掉手机制造商预装在手机上中一些手机应用程序,及其运作某些必须超级用户管理权限的手机应用程序。Android系统软件的root与Apple iOS系统软件的越狱5相近。

1.2怎样建立root

通常root有二种方法,这种是在recovery方式下刷入root包,另一个这种就是说运用系统软件层系统漏洞(网络层系统漏洞或内核系统漏洞)超过root提权目地,下列稿子将简易详细介绍一下下怎样运用漏洞开展root提权。

有关root的实际效果,能够简易的分成二种:这种仅本身系统进程得到root管理权限;另一个这种是本身程序流程和其他程序流程都能获得到root管理权限。

(二)基本知识

Android安卓系统漏洞 第1张

2.1文档管理权限

系统软件中文档的访问限制是根据客户ID(UID)和用户组ID(GID)来操纵的。

每1个客户都分派有个UID,随后全部的客户又按组来进区划,每1个用户组都分派有个GID。特别注意,1个客户能够归属于好几个用户组。

Linux中的每1个文档都具备几种管理权限:Read、Write和Execute。这几种管理权限又依照客户特性区划为三组:Owner、Group和Other。

2.2系统进程UID

Android安卓系统漏洞 第2张

在 默认设置状况下,系统进程UID相当于建立它的系统进程的UID,即父系统进程的UID。第一位系统进程是init系统进程,内核在起动进行后建立的,UID是root。其他系统进程, 全是立即由init系统进程,或简接由init系统进程的子系统进程来建立。在父系统进程在建立(fork)子系统进程以后,能够启用setuid等来更改它的UID。

(三) setresuid提权

3.1技术性背景图

setresuid(0,0,0)能够用于设定系统进程的EUID,建立为当今系统进程提权的目地。可是用户立即启用并不可以建立获取,缘故给出:

Android安卓系统漏洞 第3张

上 图中相匹配了内核文档中setresuid的一部分编码信息内容,根据剖析能够发觉,涵数在真实开展setresuid以前会对调用者有着的管理权限开展查验,如圖 红框中的內容,考虑启用管理权限时,R0的数值#0,针对用户的启用,R0是1个非零值,因此要是人们把较为的构造函数#0改为1个非零值,那麼 setresuid的能够取得成功启用开展置位。

至此,归结为起來,人们要运用setresuid建立提权,必须处理怎样改动内核文档的难题。流程:

Step1:寻找总体目标编码虚拟注册地址

Android安卓系统漏洞 第4张

Step2:寻找总体目标编码的物理地址

Step3:运用系统漏洞改动内核文档

Step4:启用setresuid(0,0,0)提权

3.2找寻编码部位

①从手机上中拖取内核img文档(还可以找寻配对的线刷包,从里边立即获得)

②将img文档导出来到PC,运用binwalk剖析img文档

通常(工作经验上,未必100%精确)人们觉得第一位出現的较为长的gzip段就是说内核文档。

③运用dd从img文档中获取内核

④从内核文档中精准定位必须改动的编码部位

要是立即将不久压解出去的文档移到IDA里边,我们都是找不着setresuid的,由于人们缺乏1个符号表——kallsyms:

这儿是在root下获得kallsyms,因为篇数限定,这儿也不详细介绍非root管理权限下获得kallsyms的方式了,大伙儿自个找吧。

将kallsyms导出来后,运用拓展软件load起來,随后就能够在在IDA中寻找相匹配的涵数了,进而确认涵数在内核文档中的虚拟注册地址(0xC009D12C),总体目标编码相对性于内核起止详细地址的偏位offset= 0xC009D12C – 0xC0000000 = 0x9D12C。

⑤获得总体目标编码的物理地址

内核的起止物理地址:

总体目标编码的物理地址:phaddr = 0x8600000 + 0x9D12C

3.3找寻提权系统漏洞

这儿人们以华为手机mt2_u071中的1个mmap提权系统漏洞为例。

扫描仪全部手机上文件系统,挖掘异常文档:

这一文档other运用rwx管理权限,列入异常构造函数。

一起在另一个1个文档/kerneldrivers/hisi/hifidsp/hifi_lpp.c中:

根据剖析,发觉phys_page_addr是固定值0x05a00000,融合remap_pfn_range函数的定义,人们了解phys_page_addr是物理地址,那麼上边的编码就能够建立往1个固定不动的物理地址写统计数据的作用。

再进一步剖析发觉当今文档中file_operations结构体hifi_misc_fops,在里边将mmap涵数重定向到hifi_misc_mmap涵数。

到这儿人们先小小总结一下:

mmap这一涵数我们都是能够随意启用的,融合人们的要求(到特定的物理地址上改动统计数据),因为要写的详细地址是受维护的,必须高管理权限。那麼前边


点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 1条评论
  • 寻妄绾痞2022-05-28 17:28:48
  • 册地址Step2:寻找总体目标编码的物理地址Step3:运用系统漏洞改动内核文档Step4:启用setresuid(0,0,0)提权3.2找寻编码部位①从手机上中拖取内核img文档(还可以找寻配对的线刷包,从里边立即获得)②将img文档导出来到PC,运用binwalk剖析img

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理