Android安卓系统漏洞
(一) 序言
1.1什么叫root
Root——也就是说人们这儿说的系统软件提权,一般是对于Android系统软件的手机上来讲,它促使客户能够获得Android电脑操作系统的超级用户管理权限。root一般用以协助客户翻过手机制造商的限定,促使客户能够卸载掉手机制造商预装在手机上中一些手机应用程序,及其运作某些必须超级用户管理权限的手机应用程序。Android系统软件的root与Apple iOS系统软件的越狱5相近。
1.2怎样建立root
通常root有二种方法,这种是在recovery方式下刷入root包,另一个这种就是说运用系统软件层系统漏洞(网络层系统漏洞或内核系统漏洞)超过root提权目地,下列稿子将简易详细介绍一下下怎样运用漏洞开展root提权。
有关root的实际效果,能够简易的分成二种:这种仅本身系统进程得到root管理权限;另一个这种是本身程序流程和其他程序流程都能获得到root管理权限。
(二)基本知识
2.1文档管理权限
系统软件中文档的访问限制是根据客户ID(UID)和用户组ID(GID)来操纵的。
每1个客户都分派有个UID,随后全部的客户又按组来进区划,每1个用户组都分派有个GID。特别注意,1个客户能够归属于好几个用户组。
Linux中的每1个文档都具备几种管理权限:Read、Write和Execute。这几种管理权限又依照客户特性区划为三组:Owner、Group和Other。
2.2系统进程UID
在 默认设置状况下,系统进程UID相当于建立它的系统进程的UID,即父系统进程的UID。第一位系统进程是init系统进程,内核在起动进行后建立的,UID是root。其他系统进程, 全是立即由init系统进程,或简接由init系统进程的子系统进程来建立。在父系统进程在建立(fork)子系统进程以后,能够启用setuid等来更改它的UID。
(三) setresuid提权
3.1技术性背景图
setresuid(0,0,0)能够用于设定系统进程的EUID,建立为当今系统进程提权的目地。可是用户立即启用并不可以建立获取,缘故给出:
上 图中相匹配了内核文档中setresuid的一部分编码信息内容,根据剖析能够发觉,涵数在真实开展setresuid以前会对调用者有着的管理权限开展查验,如圖 红框中的內容,考虑启用管理权限时,R0的数值#0,针对用户的启用,R0是1个非零值,因此要是人们把较为的构造函数#0改为1个非零值,那麼 setresuid的能够取得成功启用开展置位。
至此,归结为起來,人们要运用setresuid建立提权,必须处理怎样改动内核文档的难题。流程:
Step1:寻找总体目标编码虚拟注册地址
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