安卓渗透基础(root篇)
这里主要是以真机为测试环境,不使用模拟器,我这里用的是小米6,安卓版本为9
主要是学习一下和root相关的知识(顺便再水一篇博客)
前置知识
一些相关的术语和root知识,可以看一下极客湾的ROOT指南:https://www.bilibili.com/video/BV1BY4y1H7Mc/?share_source=copy_web&vd_source=35d5dfeb47a963c5dbc7d7d4f9c17ca5,对我这个玩机小白肥肠友好
安卓分区
大致分为五个分区:Boot、System、Data、Recovery、Cache
首先是Boot分区
root的操作主要也是在修改Boot分区,还有一些比较底层的操作,比如改CPU调度、给GPU超频等也在这个分区
如果该分区损坏的话,就会导致启动卡在第一屏,也就是logo界面
System分区
这里图很形象也不多说了,System分区要是损坏就会卡在开机第二屏也就是进不去操作系统了,卡在动画界面
Vendor分区现在会归并到System分区了,以前说是会独立出来
Data分区
这个理解也很简单,就是平时各种的使用数据之类的
Cache分区
就是缓存一些常打开的应用程序的数据,方便快速启动之类的
Recovery分区
恢复分区类似于PE的存在,可以用来恢复和更新其他分区的内容,刷机刷系统一般就在这个分区进行
但是现在很多手机不存在Recovery分区了,因为安卓7.0之后引入新的OTA升级方式:A/B System Updates
它是把System和Boot分成了两套
平时在用的就是A分区,没在用的就是B分区
这种分区的好处就是可以做到系统无缝升级,而且可以做到防止升级系统异常导致无法开机等情况,原理就是系统升级首先是在备份分区升级,然后手机重启就会将A、B分区切换,此时升级好的备用分区就是我们的主分区,当然升级异常处理也是同理,只要我们将分区回滚回未升级的就能解决了。
但是这种方式的缺点就是会占用双倍System空间,因为总有一个需要用来备份
于是又多了一个VAB(Virtual A/B System Updates)
虚拟AB分区用来解决这种情况,安卓11后的机型普遍采用这种方式来解决空间占用问题
这种AB分区刷机会比较麻烦,因为Recovery并到了Boot分区里了
所以更推荐用更底层的fastboot来操作
Bootloader(引导加载器)和Fastboot
这里需要先知道Bootloader,下面是极客湾的一张图
Recovery比作PE,fastboot的这个阶段就是BIOS或者UEFI了
引导操作系统内核之后就会进入fastboot阶段,也就是刷机阶段了,fastboot模式下连接电脑可以通过fastboot程序输入命令执行很多操作,比如解锁设备、注入boot镜像、线刷系统等
不同手机进入fastboot的方式
还可以通过adb用下面命令进入
|
连接手机后可以用 fastboot devices
检测是否连接设备,当然也可能没有识别到,比如我这样
这是驱动问题,需要我们去设备管理器装一下fastboot驱动,驱动链接:https://cz-jam.lanzouj.com/iZICY02v2k8j
安装好之后就能检测了
fastboot的一些命令
卡刷和线刷
卡刷指的就是通过Recovery方式刷机,也就是直接把要刷的包拷进手机里,在手机上刷
线刷指的就是通过fastboot的方式来刷机,且需要用数据线连接电脑
开发者选项
进入手机的参数界面点击7次版本号就可以进入
ADB
从这里安装即可:https://developer.android.com/tools/releases/platform-tools?hl=zh-cn#downloads
里面就包含了很多常用的工具包括我们后面会用到的fastboot
至于adb的使用,可以直接看官方文档:https://developer.android.com/tools/adb?hl=zh-cn#burstMode
root手机
这是很重要的一步了,只有root之后才能安装证书,这里的操作都需要打开开发者选项之后才行
第一步是OEM解锁,只要去开发者选项里面打开即可,有些手机可能没有,所以最好还是选择有的,不过这一步并不一定能解锁BootLoader,比如小米解锁OEM只是表示允许解锁BootLoader
大部分手机root基本都是两步走,第一步解锁BootLoader,第二步再修改boot文件刷入Magisk
然后就是解锁BL了,这里小米可以直接点击解锁状态,然后点击绑定设备和账号,进入fastboot模式,然后电脑上下载官方的解锁设备:https://www.miui.com/unlock/index.html
官网也贴心地给出了流程
我们usb连接手机后,启动工具点击解锁即可
其他品牌的手机解锁就不记录了
解锁完之后就可以开始root了,root分为两种方法,也就是前面说的卡刷和线刷
这里采用线刷,所以简单介绍一下卡刷的流程就算了,毕竟我只是为了做渗透测试,不需要这么复杂
卡刷
因为说过Recovery类似PE,但是手机出厂给的Recovery功能简单不能随便刷东西,也就是需要刷入第三方Recovery来进行操作,出名的第三方Recovery就是TWRP,他的项目地址在这:https://twrp.me/
这是一个流程图:
先通过fastboot线刷TWRP,然后再进入TWRP进行操作,各品牌进入TWRP也就是Recovery如下:
也可以adb直接重启进入recovery
|
刷新recovery的命令
然后就是刷入最流行的root管理工具Magisk,也就是常说的面具,项目地址:https://github.com/topjohnwu/Magisk
具体操作大概就是将zip扔进手机,然后TWRP下载,再将后缀改成apk安装即可,具体就不尝试了,现在新的Magisk直接就是apk了
而且后面AB分区的话,刷TWRP就很麻烦了,要刷两遍
线刷
这里给一个线刷的流程图
Magisk的原理就是对Boot镜像进行修补来获取root,所以我们可以提取出Boot镜像,修补好再刷入,但是提取Boot镜像又需要root,所以我们需要使用别人已经给我们提取好的boot镜像,厂商的刷机包里就有
小米就直接去这里下载:https://xiaomirom.com/
也可以直接在手机系统更新里面下载完整包,一般下载到download里面
线刷包下载好之后解压找到boot.img即可
然后将boot.img传到手机,我们要先在手机上安装好Mgisk,然后修补该boot.img文件,然后把该文件拷到电脑上,手机重启到fastboot模式,然后刷入修补后的这个boot就可以获取root权限了
修补后的镜像
然后fastboot刷入该镜像
|
这时候重启手机,如果能切换到超级用户就是成功了
成功root!
抓包配置
这里选择用小黄鸟:https://reqable.com/
下载客户端的时候需要查看架构,可以用在ubs调试连接之后用下面的命令
|
各架构的说明:
- armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年5月以后的生产的大部分Android设备都使用它.
- arm64-v8a: 第8代、64位ARM处理器,现在已经是主流版本,三星 Galaxy S6是其中之一。
- armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
- x86: 平板、模拟器用得比较多。
- x86_64: 64位的平板。
然后我们之后的操作都需要root才行,然后就是启动reqable的连接,然后安装android的证书,这一步都是自动的,而且都有指引,就不记录了
安装了系统证书后,可以不用安装用户证书了
然后就可以愉快的抓包了
如果嫌重放不方便,还可以将流量导向bp或者yakit,设置一个二级代理即可
然后就可以愉快地抓包了,虽然后面还会有很多让你抓不到包的头疼问题😭