获取root权限
安卓手机ROOT大家都不陌生,是安卓系统的最高用户权限(本文仅谈手机),类似于Windows操作系统下的Administrator。所以在此权限下,便可以对几乎所有的文件进行操作和获取,通过ROOT后的镜像甚至还可能够分析出已删除的数据。
01
ROOT权限类型
临时ROOT/软ROOT
允许通过Shell访问
不是永久的,重启便消失
同样会留下痕迹
完全/永久ROOT
安装SU到/bin、/sbin…
重启系统依旧具有ROOT权限
手机会留下痕迹
Android设备有不同类型的ROOT方式。大多数商业取证工具都提供了一个临时的ROOT,允许临时的超级用户访问。这些临时ROOT会在设备重启后消失。同时,无论临时ROOT还是完全的ROOT,多多少少都留下了一些痕迹,如果担心留下痕迹,你不应该对设备进行ROOT操作。
02
如何ROOT
随着安卓系统的不断升级,不断的修复漏洞。ROOT变得越来越困难。但是理论上绝大多数的设备仍可被ROOT。对于系统版本较低的设备,基本可以使用网络上的ROOT软件进行“一键ROOT”,甚至有些版本只要将default.prop中的ro.secure=0改为ro.secure=1即可获取ROOT权限。但从安卓5.0开始,系统强化了SELinux安全子系统,这也使得安卓设备ROOT变得更困难。
(图1)
一键ROOT
“一键ROOT”对于系统版本5.0以后的设备几乎没有任何效果了。
刷第三方recovery
如果能获取到可靠的recovery固件,对于一部分手机还是有一定的帮助。但受限于bootloader,关于bootloader后续再做交流。
固件修改
本文采用的是此方法,通过对设备固件的修改,改变其Sepolicy安全策略。从而可以提权至ROOT。针对不同系统版本,修改的固件也略有不同,具体如下:
7.0及以下:boot.img
8.0:ramdisk.img(等同于boot.img)
9.0:recovery_ramdisk.img
03
真的需要ROOT吗?
设备被ROOT后,具有了最高的权限,固然可以获取到更多的数据,但ROOT就像双刃剑,有利也有弊。上面有提到无论是做临时ROOT还是永久ROOT,都会在设备上留下一些痕迹。另外通过修改固件再刷入手机提权,该过程必然会涉及到“刷机”,刷机又会涉及到解bootloader锁(三星Crom锁),无论是单纯的“刷机”还是bootloader解锁都会存在一些风险。比如华为手机在解锁bootloader时会触发恢复出厂。那么什么时候需要获取ROOT权限呢?
尝试恢复已删除的数据(实际效果并不理想)
尝试恢复数据库中的数据(由于目前大多数APP的数据库都采用的“回缩”机制,有可能删除的数据被排除在数据库文件之外)
获取到ROOT权限后,可对锁屏密码进行操作
通过上面的介绍,应该清楚了解到底是否真的需要对设备进行ROOT。其实即使不对设备进行提权也依旧可以获取到绝大部分数据,无论是通过备份方式、还是通过助手协议获取应该都可以满足工作的需求。
04
永久ROOT权限获取
华为Android9.0。通过制作带有ROOT权限自制固件的方式获取ROOT权限。
(图2)
RX-9000能够实现针对三星、华为、OPPO、VIVO、小米、魅族、锤子、美图、360、努比亚、金立、乐视、海信、朵唯等国内外300余个品牌、数千款机型的锁屏密码破解与镜像获取。针对安卓2.0至10.0均有专业的锁屏密码绕过,权限获取(ROOT)方案、手机全盘加密及文件加密的密码绕过方案。
使用RX-9000可以放心,所有的依规操作完全不会造成数据丢失或触发恢复出厂。软件有详细的操作流程引导。如图3,按照软件的示意图及提示进行操作即可。在数据获取结束后,可将手机还原至初始状态。
(图3)
也可以一键制作“ADB+ROOT”固件,手机重启后即可与电脑ADB“配对”,并具有ROOT权限,不受屏幕的限制。如图4
(图4)
将做好的”ADB+ROOT”权限的自制固件通过刷机工具刷至设备,刷完之后对设备进行重启操作。即完成了ROOT权限的刷入阶段。如图5
(图5)
(图6)
如图6,设备已获取到了ROOT权限,如果设备采用的是FDE加密,则此时可对全部数据进行导出。可以选择导出用户数据。如图7,导出用户数据功能是对/data/data目录下的用户应用数据打包为tar传到电脑中进行数据固定。
(图7)
如果设备采用的是FBE(文件加密),那么即使取得了ROOT权限,但依旧无法直接获取数据。如图8,这是因为FBE加密需要锁屏密码的参与,即使设备具有了ROOT权限,但没有正确输入锁屏密码数据仍处于加密状态。关于加密方式以后我们再做交流。
(图8)
数据获取完成后即可将数据导入“天鉴手机取证分析系统”进行相关的分析和报告的导出。如图9
(图9)
05
临时ROOT权限获取
OPPO R15安卓系统版本8.1可通过其内核漏洞进行临时ROOT权限的获取。
(图10)
首先确认设备已开启USB调试
(图11)
上传root文件至/data/local/tmp(该目录$权限即可写入)
(图12)
更改文件权限为可“读、写、执行”
(图13)
执行root文件获取权限
(图14)
至此获取到了ROOT权限。此时就可以对设备进行镜像的获取了。对比华为手机在获取权限的时候需要执行su,而这部OPPO手机并没有执行su就具有了ROOT权限。这是因为两种ROOT方式有这很大的区别,华为手机需要借助su进行提权。而这部OPPO的设备是通过内核漏洞直接获取到了ROOT权限。
但此时只是获取到了临时的ROOT权限,手机退出后ROOT权限随之消失。此时可以另外开启一个ADB进程如图14所示。
(图15)
通过图15可以看出,重新开启一个ADB进程对设备进行访问,并没有ROOT权限,并且也无法通过su进行提权,对/data/data进行浏览也同样提示没有相应的权限。所以临时ROOT只对本次有效。手机退出或者重新开启ADB进程都将失去ROOT权限。
END