详解Android root原理

0x00 关于root

linux和类Unix系统的最初设计都是针对多用户的操作系统,对于用户权限的管理很非常严格的,而root用户(超级用户)就是整个系统的唯一管理员,拥有等同于操作系统的所有权限。所以一旦获取到root权限,就可以对整个系统进行访问和修改。而在Android下获取root权限之后就可以自己定制系统,卸载一些预装软件,完全掌控自己的设备。

0x01 setUID

在讨论root的原理之前,有一个非常重要的概念,就是文件的setUID权限。linux下普通的文件权限大家都很清楚,可读,可写,可执行,下图很清楚的一个普通的可执行文件root的权限,r(可读),w(可写),x(可执行)。

但是,要考虑一种情况,比如说,一个用户是有权修改自己的密码的,但是记录密码的文件/etc/shadow只有root用户才是可写的,那普通用户如何才能修改自己的密码呢?这一切都要归功于setUID的设置,修改密码时使用的命令passwd对应的二进制程序是/usr/bin/passwd

可以看到passwd的二进制文件的权限位中不仅仅是rwx了,多了一个s权限,而这个s权限就是我们的主角,setUID权限。

由于passwd有setUID权限,所以linux系统可以临时把这个文件的所有者(root)身份角色赋给普通用户,以达到让普通用户可以修改自己密码的目的。

那如何设置setUID权限呢?

平常使用的普通文件权限位是由3、3、3共9位的二进制数字组成 ---|---|---,分别对应文件所有者,文件所有者同一用户组权限和其他用户权限。最开始的名为root的可执行文件的权限为rwxrwxr-x,所对应的二进制位就是111 111 101 ,然后每三位对应421换算成16进制,就是775。而新增的setUID权限是在前面新增了三位,分别表示setGID、setUID、stick bit权限,而我们现在只关心setUID权限。因此加上setUID权限之后,文件的权限应该由4位数字组成,例如之前的root文件加上setUID权限就是4755。而修改密码的passwd文件对应的权限位就是4755。

可以通过一个小例子来直观的感受一下,平常使用的cat命令对应的二进制文件是没有setUID权限的:

可以在普通用户下尝试使用cat去读取/etc/shadow文件的内容:

提示权限不够,再给cat加上setUID权限之后再去读取/etc/shadow的内容:

是可以读出来的,但是/etc/shadow中的内容都经过加密处理。

0x02 Linux 下的root

平常使用的linux发行版,需要切换到root用户时,直接使用su命令,然后输入su用户的密码就可以切换到root用户了。

0x03 Android 的root

但是在未root的Android设备上是没有su的二进制文件,直接执行su命令会提示”su not found”。

再进入已经root过的设备上查看,平常在adb shell中用的命令对应的二进制文件都是在/system/bin目录下,是存在su文件的:

可以看到这里的su只是一个指向/system/xbin/的一个链接。

可以看到这里的su是有setUID权限位的。

而要在系统分区 /system/xbin 中添加文件本身就是需要root权限,而且设置su文件的所有者为root用户也是需要root权限的,设置setUID权限同样也需要root权限。

这就进入到了一个死循环当中,要利用su,首先要有root权限。因此这时就需要利用到Android存在的漏洞,Android系统本身存在着很多以root权限运行的原生进程,而这些root进程中如果存在可以利用的漏洞,就可以利用进程的root身份:

  1. 拷贝su文件到/system/xbin系统分区;
  2. 设置su文件所有者为root用户;
  3. 设置su文件的setUID权限,便于自己的进程执行su命令获取root权限。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/223656.html<

(0)
运维的头像运维
上一篇2025-04-16 01:48
下一篇 2025-04-16 01:50

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注