通俗易懂!一文看懂手机Root的操作与防护
2024-01-16 21:02:24发布 浏览573次 信息编号:93457
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
通俗易懂!一文看懂手机Root的操作与防护
Root对于任何手机爱好者、游戏玩家以及从事移动设备研发的人来说都是熟悉的。 它代表了大多数移动设备用户可以控制的最高权限。
从技术层面来说,用户拥有修改系统文件的权限,甚至可以控制账户、添加或删除硬件等,但对于普通用户来说,最大的用处就是卸载“Root前无法卸载的软件”。 有些品牌有些厂家在手机出厂前就安装了一些无法卸载的软件。 手机Root后可以卸载这些软件。 Root 相当于给予用户添加或删除软件的自由。
Root的前世今生
Root这个词起源于Linux/Unix系统。 众所周知,Linux/Unix系统的文件系统从根“/”开始,形成倒排树文件系统结构。 Root是root的英文意思,因此Linux/Unix系统将Root帐户所拥有的权限作为系统管理员的权限。 从口碑来看,Root代表了Linux/Unix上的最高权限。
在移动设备发展的早期,各种移动设备使用不同的操作系统,比较优秀的有、Phone、iOS、。 随着市场的变化,只剩下和iOS,并成为流行的移动操作系统。 根据POSIX标准协议和开源协议的规定,和iOS都应该保留Linux/Uinx上的相应功能。
其中,是基于Linux构建的系统,而iOS则使用xnu作为内核(来自BSD)。 根据开源操作系统的要求,和iOS都应该保留所有用户使用Root帐户控制其设备的权限。
但现实情况是,和iOS不允许用户使用Root权限,尤其是iOS对Root权限的监控和屏蔽达到了前所未有的程度,以至于root iOS被称为“越狱”。 iOS 上的 Root 过程比 上更加复杂和困难,因此本文主要以 系统上的 Root 为中心,详细介绍 Root 的前世今生。
系统的三种root方法
与封闭生态的iOS系统相比,的Root方法可以说是百花齐放。 不同的系统版本有不同的主流获取Root权限的方法。
在手机上,获取Root权限的方式主要有三种:漏洞、官方OEM解锁、工厂方法。 其中,通过漏洞获取Root是开发者最早的探索; 工厂模式获取Root是通过骁龙9008模式通过底层串口向手机刷入专用ROM来获取Root; 官方的解锁方式是通过OEM厂商为部分爱好者提供的一个“通道”,通过开锁刷机ROM来获取Root。
第一阶段:数百个漏洞争夺 — CVE-2009-2692
系统早期的安全问题被忽视了。 Linux 中发生的许多安全问题都可以在 中重现。 最早被公开记录、可追溯的是Znix编写的利用Linux漏洞CVE-2009-2692的版本。 版本提权程序,代码如下:
利用蓝牙协议触发漏洞
权限提升攻击负载
该漏洞主要是由于没有对数据结构的字段进行指针检查而出现的。 有些模块没有该函数,将指针初始化为NULL。 此时直接调用会导致直接调用空指针,导致错误并进一步权限提升。 Znix直接将已有的有效用户id(euig)和有效用户组(egid)的指针赋为0,即Root用户和Root用户组,然后将有效用户和有效用户组指针赋给真实用户指针和真实用户。 组指针达到提权的目的。 然后利用蓝牙协议中的漏洞触发此攻击负载。
Znix在版本发布两个月后发布了这个版本。 发布之后,人们发现通过上的漏洞获取Root权限是非常可行的。 随后越来越多的安全人员和爱好者开始挖掘上的系统漏洞,导致安全问题爆发。 。 不过,随着这场闹剧的不断修复和引入,这场闹剧在 4.4中戛然而止。 系统进入稳定期, Root也进入新的探索时代。
使用过Linux的人都知道,Linux上有一个名为/usr/bin/su的程序。 用户可以通过su命令切换身份。 是基于Linux的。 在 1.0-4.4版本中,默认安装了su。 程序中,用户可以使用su来获取Root权限。 唯一的要求是su程序的权限是:(4755/-rwsr-xr-x) Uid: (0/Root) Gid: (0/Root)。
第二阶段:混沌中的探索——以及
4.4版本基本修复了Linux下提权的漏洞,并封堵了利用该漏洞提权的方法。 4.4及以上版本不预装su程序,如果添加的话,即使是4755权限的su也无法实现完美root。 开发者尝试将修改后的su写入下的/中,这样就可以通过/下的su程序来执行需要Root权限的程序。 将su写入/down需要提前解锁()手机,比利用漏洞提权更稳定。 很多高手都开始编写不同的su程序,其中比较有名的是su和. 不过,仅靠获取Root权限的方法还是不够的。 还需要一个分配Root权限的管理工具。 Koush的正好弥补了这个缺点。 ,从而使该系统得到改进。 然而,美好的时光并没有持续多久。 这种方法引起了公众的关注。 在后续版本中,对 / 和其他分区进行了完整性检查,使得修改分区变得不可行。 2018年10月,宣布不再维护。 另一位开发人员以巧妙的方式使 Root 再次成为可能。
第三阶段:从混乱中得到启发,走向团结
一位名叫的开发人员受到了它的启发。 他仍然采用了获取Root权限的原理,但没有对/等分区进行额外的修改。 他通过实验发现,虽然/等分区不能修改,但是/分区下可以修改。 为了添加挂载点,他用了一种独特的方法,让用户刷一个特殊的boot.img,修改启动时的挂载操作,并制作了一个版本。 所有的操作都是在此进行的,所以它避免了原来的修改,完成了原来的功能,而且这个软件现在已经被大多数人所熟悉了。 不仅获得了Root,还集成了Root权限管理器。
加入 后,您的代码需要经过安全团队的审核。 它有一定的官方认可,是目前最稳定的Root方法。
新手应该如何root安卓手机?
本文将使用TWRP方法教你如何获取Root权限。 在获取Root之前,需要先解锁锁。 请读者联系OEM厂商解锁。
丁香特别提醒:Root有一定风险,可能会导致手机无法使用。 请谨慎操作。 本文对任何后果不承担任何责任。
准备adb命令工具和对应的twrp.img(不同厂家需要不同的twrp镜像,请自行查看所需的twrp镜像)
使用adb命令放入,命令如下:
进入界面,输入相应命令,进入twrp界面。
选择 ,然后选择 .zip。
进入安装界面,将滑块从左往上滑动。
如果出现如下界面则说明安装成功。
重新启动手机后,将 .zip 更改回 .apk 并使用以下命令安装管理器。
然后你可以在手机上打开它,发现它可以正常工作。
如何发现设备的root操作
对于安全从业者和一些需要风控的公司来说,需要了解用户的手机是否存在风险,是否被root。
1.包名检测。
由于是通过.apk分发来管理其su权限的,所以可以通过获取包名的方法来检查用户手机上是否有App来了解用户是否使用过Root。 具体代码如下:
尝试运行该程序并得到以下结果。
上述方法中,虽然可以检测到用户安装了,但由于对用户隐私的法律保护,获取包名的方法会触碰隐私合规红线,因此该方法需要一定的权限,所以要小心使用此方法时。 当心。
专业安全产品。
鼎翔设备指纹和鼎翔业务感知防御平台可以有效实时识别根源风险。
鼎翔设备指纹:可准确识别模拟器、root、越狱、调试、代码注入、多开、VPN代理等风险。 包括,iOS平台hook、越狱行为、 root、调试、内存转储、注入、多开、模拟器、漏洞攻击等风险行为,WEB平台、浏览器和系统下浏览器颜色深度和分辨率,UA匹配行为和一致性、是否禁用等
鼎翔商业安全感知防御平台:基于威胁探针、流计算、机器学习等先进技术,集设备风险分析、操作攻击识别、异常行为检测、预警与防护于一体的主动安全防御平台和处置。 可实时检测摄像头劫持、设备伪造、设备root等恶意行为,有效防控各类人脸识别系统风险。 具有威胁可视化、威胁溯源、设备关联分析、多账户管理、跨平台支持、主动防御、数据开放、防御定制、全流程防控等特点。
写在最后
本文从Root的历史开始,讲述获取Root的发展历程和趣闻,教你如何从0到1对手机进行Root,并提出一些检测Root的有效方法。 Root 和 HOOK 一样,是一把双刃剑。 在普通人手中,它可以使系统摆脱束缚,带来更好的手机体验。 但到了黑灰色产业手中,就可能成为非法牟利企业。 工具,作为安全从业者,我们要辩证地看待每一项技术,严厉打击非法行为,为安全事业贡献力量。
在之前的文章《要想知道自己在防守哪里,就必须知道对方在哪里进攻——论Hook技术的攻防对抗》中我们提到了Hook的攻击方式。 Hook一定需要Root吗? 答案是否定的,如果开发者有能力修改Art源码并劫持就可以完成HOOK操作。 根源是为了降低使用HOOK和HOOK模块管理工具的成本,让HOOK操作者不再关注HOOK的先决条件,而是更加关注HOOK模块。 发展。
提醒:请联系我时一定说明是从星空网上看到的!