软件怎么获取root权限,软件获取root权限后能干嘛

首页 > 实用技巧 > 作者:YD1662023-06-09 07:29:54

root,对于任何手机发烧友、玩机客、从事移动设备研发的人员来说,并不陌生,它代表绝大部分移动设备的使用者能够掌握到的最高权限。

从技术层次来讲,用户拥有了修改系统文件的权限,甚至可以控制账户、增加或删除硬件等,但对普通用户来说,最大的一个用处就是卸载“Root之前无法卸载的软件”,部分品牌商在手机出厂之前内置安装了一些无法卸载的软件,这些软件在手机Root之后,都可以被卸载掉,Root相当于让用户拥有了自由增减软件的权限。

Root的前世今生

Root一词起源于Linux/Unix系统,众所周知,Linux/Unix系统的文件系统以根“/”出发向下形成一个倒置的树型文件系统结构,Root即根的英文释义,那么Linux/Unix系统就以Root账号所拥有的权限作为系统管理员的权限,口口相传,Root就代表了Linux/Unix上最高的权限。

在移动设备发展的初期,各种移动设备所使用的操作系统各不相同,比较出众的有塞班、Windows Phone、iOS、安卓。随着市场的选择,只有安卓与iOS留存下来,成为普及的手机操作系统。按照POSIX标准协议和开源协议的规定,安卓与iOS都应该保留了Linux/Uinx上的相应的功能。

其中,安卓就是以Linux作为基础进行构建的系统,而iOS则是使用了以xnu为内核的Darwin(Darwin来自于BSD)。按照开源操作系统而言,安卓和iOS都理应保留所有用户使用Root账户去掌控自己设备的权限。

但现实情况是,安卓与iOS不允许用户使用Root权限,尤其是iOS对于Root权限的监控与封锁达到了前所未有的地步,以至于对iOS的Root被称作“越狱”。iOS上的Root过程相对于安卓更为复杂与困难,所以本文主要以安卓系统的Root为主,详细介绍Root的前世今生。

安卓系统的三大Root方式

相较于封闭生态的iOS系统,安卓的Root方式可谓是从百花齐放到万物归一。不同安卓系统版本,获取Root权限主流方式不同。

软件怎么获取root权限,软件获取root权限后能干嘛(1)

在安卓手机上,获取Root权限主要有三种方式:漏洞、OEM官方解锁、工厂方式。其中通过漏洞方式获取Root,是开发者最早的探索;工厂模式获取Root则是通过如骁龙9008模式通过底层串口将特殊的ROM刷写入手机进而获取Root;官方解锁的方式则是OEM产商提供给一些发烧友的“通道”,通过解锁BootLoader锁获取刷写ROM获取Root。

第一阶段:百家漏洞齐争鸣,先驱CVE-2009-2692漏洞

在安卓系统早期时忽略了安全性问题,许多在Linux中产生的安全问题,都能在安卓得以复现,其中最早有公开记录并可追溯的是Znix利用Linux漏洞CVE-2009-2692编写的安卓版本提权程序,代码如下:

软件怎么获取root权限,软件获取root权限后能干嘛(2)

利用蓝牙协议触发sendpage漏洞

软件怎么获取root权限,软件获取root权限后能干嘛(3)

权限提升攻击载荷

该漏洞的产生主要是sock_sendpage没有对socket_file_ops数据结构的snedpage字段字段做指针检查,有些模块不具有sendpage功能,将指针初始化为NULL,此时直接调用sendpage会导致直接调用空指针导致报错并进而进行权限提升。Znix直接将现有有效用户id(euig)与有效用户组(egid)的指针赋值为0即Root用户与Root用户组,再将有效用户与有效用户组指针赋给真实的用户指针与真实的用户组指针,从而达到权限提升的目的。然后利用蓝牙协议与send_page的漏洞触发这一攻击载荷。

Znix发布该exploit的时间点在安卓_ndk_r1版本发布后的两个月。在该exploit发布后,人们发现在安卓上通过漏洞的形式获取Root权限方式大为可行,随即越来越多的安全人员与发烧友开始在安卓上挖掘系统漏洞,导致安卓的安全问题呈现井喷式的爆发。不过这场闹剧随着Google不断的修复与SElinux的引入,闹剧在安卓4.4戛然而止,安卓系统进入了一个稳定的时期,安卓的Root也进入了一个新的探索时代。

软件怎么获取root权限,软件获取root权限后能干嘛(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.