首页
社区
课程
招聘
[原创]安卓逆向之绕过root检测的四种姿势
发表于: 2021-3-3 19:42 21149

[原创]安卓逆向之绕过root检测的四种姿势

2021-3-3 19:42
21149

本机:192.168.137.1 所需软件python2.7.X,android killer 雷电模拟器
Kali虚拟机 ip 192.168.137.129 所需软件 drozer Frida objection
安卓模拟器:ip 192.168.137.195 所需软件 insecureBankV2.apk(下文简称bank) drozer-agent,frida-server

软件地址:
insecureBankV2.apk:https://github.com/dineshshetty/Android-InsecureBankv2

drozer:https://github.com/FSecureLABS/drozer

frida:https://github.com/frida/frida/releases

第一步,安装app,配置app服务端
App安装好后如图,配置ip地址为后面启动app.py的主机地址
图片描述
图片描述
执行python app.py,该步骤模拟安卓的客户端的后台服务
图片描述
问题:bank上来需要登陆,不知道账号密码,所以我们需要先搞个账号密码
解决方式:使用drozer进行本地sql注入
操作如下:
启动drozer agent
图片描述
Kali操作
Adb connect 192.168.137.195 adb连接雷电模拟器,需要先在本机执行adb disconnect断开本地adb连接
Adb forward tcp:31415 tcp:31415 转发本地端口到模拟器,drozer通讯走adb通道
图片描述
万事具备,执行drozer console connect运行drozer链接到drozer-agent
出现如下表示进入drozer控制台,环境可以使用了
图片描述
开工
先查看bank包名
Kali 执行adb shell 进入安卓系统 /data/data/ 目录下查看
图片描述
回到kali drozer控制台
执行如下命令扫描sql注入
run scanner.provider.injection -a com.android.insecurebankv2
存在SQL注入
图片描述
开始注入,出现用户名,没有密码,应该是空密码
图片描述
有了用户名,回到模拟器bank登录界面,开始登陆
图片描述
图片描述
登陆成功,并看到设备已经root的提示,模拟器的系统是root过的,所以这里提示已经root,该app只是测试app,通常app检测到root环境会退出app,我们如何绕过他的root检测呢,
首先,要了解他检测root的原理,最多的为检查几个root相关文件、/system/bin/su
/system/xbin/su / superuser.apk 等文件,针对文件检测,可以直接通过修改文件名绕过
重命名/system/bin/su /system/xbin/su
图片描述
提示没有权限,remount重新挂载文件系统即可,回到bank看效果
图片描述
陈宫绕过,这个方法太简单,有没有更好玩的方法,当然有,请往下看
开始之前请把重名的su恢复原样

模拟器安装frida_server 模拟器x86版本
上传frida-server到安卓手机/system/xbin下
Adb push Frida-server /system/xbin/
Adb shell 进入安卓系统命令行
Frida-server 运行frida-server

Kali安装frida
Pip3 install Frida Frida-tools
Adb forward tcp:27042 tcp:27042
Frida-ps -U
出现安卓手机软件列表表示frida配置成功
图片描述
通过androidkiller静态分析hook功能点,apk直接拖入android killer
通过关键字搜索,我们找到了root检测实现方法所在的类,有了类,我们可以编写脚本对所有函数进行hook
使用androidkiller快速定位关键点
图片描述
查找该类所有函数
脚本如下
图片描述
Frida注入获取该类的所有函数,经过静态分析,该函数返回值为布尔值,有可能是判断su是否存在的
图片描述
图片描述
有了类和函数,就可以直接编写js脚本更改返回值
脚本如下
图片描述
运行frida注入脚本
图片描述
成功绕过
图片描述

有了frida的经验,objection就简单多了
运行objection
图片描述
知道了root检测函数的所在的类和函数,直接hook函数返回值,这里显示true
图片描述
更改函数返回值,
图片描述
返回值更改成功,成功绕过root检测
图片描述


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-3-4 10:31 被半杯凉茶编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 6209
活跃值: (5645)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
2
感谢分享技术贴!
2021-3-3 21:56
0
雪    币: 32
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享技术贴!
2021-3-25 18:33
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
修改软件不是办法 那么多 绕过ROOT检测 最关键是把su藏起来 利用selinux 规则 规限用户的访问权限 不要用常用的HOOK框架进行HOOK 像XP firda sub那些环境 早就给国内厂商搞到必检项目 
2021-3-26 01:22
2
游客
登录 | 注册 方可回帖
返回
//