长亭百川云 - 文章详情

听说你没有测试机?

Vlan911

51

2024-04-29

本次算是抄板凳,此篇文章主要目的是讲解如何搭建一个比较全面的APP测试模拟器,此次水文较为基础,大佬请绕过,本次介绍的工具大体如下:

  1. 雷电模拟器ldplayer9_ld_999_ld windows_x64

  2. magiskapp-debug.apk 模拟器专用面具版本

  3. LSPosed-v1.8.3-6552-zygisk-release.zip 并非最新版

  4. charles-proxy-4.2.5-win64 做socks5上游代理用

  5. Burpsuite 做下游代理用

  6. MT管理器_2.15.2.apk 可选

  7. Postern_3.1.2.apk/v2rayNG_1.8.19_arm64-v8a.apk 安装一个即可

  8. Shamiko-v0.5.2-120-release.zip   隐藏root用,这里用的版本太低了

  9. HMA-V3.2.apk  黑白名单

  10. frida-server-16.2.1-android-arm64  安卓测试必备

  11. Lsposed.apk  lsposed寄生器

  12. JustTrustMe.apk  基本没啥用了

  13. 算法助手2.1.2.apk  后期安卓逆向必备神器

  14. 开发者助手.apk  后期安卓逆向必备神器

  15. 核心破解.apk

  16. 开发助手.apk

  17. HttpCanary_9.9.9.9.apk  用处不大了,仁者见仁吧

  18. Move_Certificates-v1.9.zip  解决证书无法导入到系统信任目录问题

这里面的工具,一部分在测试中是用不到的,但是如果涉及逆向的话,这些工具就都有用处了,本次讲解主要体现在应用层,比如最常见的解决一些app加固抓包问题、sslping问题以及常问的应用层加密问题

可能会有人疑惑,模拟器自身具备root,为什么还需要单独安装面具?其实安装面具的目的是为了使用一些面具才能使用的插件,使用面具也能更好的控制root权限

话说的有点多了,安卓逆向大家可以前往52pojie专栏,正己表哥的《安卓逆向这档事》可是很出名的哦

首先安装雷电模拟器,不建议安装在虚拟机里,新建一个安卓9的安卓模拟器就行,为什么是安卓9呢?因为低版本的模拟器有很多插件都用不了,而安卓9以上对data目录又有特殊的权限限制,导致很多好的xposed框架在申请data目录权限的时候常常出现问题,所以推荐大家直接使用安卓9

保存后重新启动即可,接下来安装面具,可以直接拖进去,也可以adb install,安装完毕后,直接赋予root权限,然后修复即可

重新启动后,再次打开面具,会提示检测到其他su文件,直接x掉就行

点击右上角设置按钮,需要进行一些设置

可以先修改一下面具的包名,一些app基础检测可能会检测到系统的安装包名(不修改也行,后期黑白名单对其隐藏即可)

而后会自动关闭软件,等等就好,接下来继续回到主页-设置,打开Zygisk按钮

重启后生效,接下来安装lsp框架,这个lsp框架是压缩包形式,安装到面具里面的,所以我们可以先adb push到模拟器的目录里,也可以利用雷电模拟器的共享文件功能将文件存放进去,存放进去的目录是在模拟器的picture目录

把需要安装的一口气全拽进去就行,这个文件就在模拟器的picture目录,打开面具,选择本地安装

重启后就好了,如果重启不了了,请重新再从头来一次

直接把Lsposed.apk安装,安装的目的是因为lsp框架安装后,有的模拟器会出现玄学问题,比如说找不到任务栏里的框架,没有办法创建快捷方式,但是安装这个寄生器后会影响框架检测,后期比这也是给卸载了,在这里就简单的介绍一下

不疑有他,所有apk的都可以直接安装进去,一般xposed框架的模块都是apk可以直接安装的,有些框架是有GUI的,会有单独的入口,有些xposed框架只能在lsp框架的模块才能看到,而zip压缩包的模块一般都是面具里面的,本次案例安装步骤不再一一演示,直接给大家看部署后的样子

类似核心破解模块,是用来饶过一些app的签名认证的,需要勾选系统框架

简单介绍一下安装的apk、插件的功能

MT管理器,这是一款史诗级文件管理器,安装后可以给root权限,会员仅需200+即可获取永久会员,而MT管理器项目已经平稳的运行了N年了(笔者记得笔者高中的时候就用过这个),所以也推荐大家知识付费,支持一下开发大佬们,该工具可谓是逆向神器,常规的软件双开、签名绕过、dex逆向、Activity记录等,好用到爆

Postern_3.1.2.apk/v2rayNG_1.8.19_arm64-v8a.apk ,相信大家都用过移动端的科学上网,这两款工具的原理与科学上网类似,很多加固做了HTTP代理检测,难以绕过的时候,我们就可以利用这两款工具走socks5代理进行绕过,而由于charles工具支持socks5协议的数据包监听,而charles同样可以设置下游代理,只需要将下游代理设置成burp即可完成代理抓包,所以三者结合起来往往能起到意想不到的效果(JD APP可以利用此方式进行抓包);不过需要注意的是,Postern_3.1.2已经停止维护多年了,笔者的安卓13手机不支持安装了,所以只能使用v2ary

Shamiko该工具可以部署在面具模块里,面具模块自带的隐藏Magisk功能开启后,会影响app的测试,但是这款插件完美的解决了这个问题,在设置了xxx应用的隐藏后,我们不需要真的开启隐藏功能,Shamiko就会帮助我们隐藏root,同时并不会影响我们测试(推特app可以利用此方式绕过root检测),笔者这里使用的面具版本有点略低,建议用高点的版本,否则会很不爽利

HMA-V3.2  此工具堪称apk逆向必备神器,为什么这么说呢,因为此插件可以实现黑白名单功能,顾名思义,就是此工具可以针对app设置黑白名单,例如设置黑名单,将部分app,如:面具、lsp相关框架、root组件对其隐藏,那么加固了的app就无法查询到相关的包名或文件名,从而实现一个root、框架的检测绕过(例如某银行app可以利用此方法绕过root/框架检测)

首先需要在lsp里面把模块启用,并勾选对应需要隐藏的app

而后新建一个黑名单的模版,黑名单就是选择哪个包,哪个包就不可见;选中不可见的包名为所有的面具相关插件。lsp相关插件,包括面具和lsp框架本身,全给他选中即可

而后返回到应用配置,再次选择想要应用的app,比如说我的icu.nillptr这个app对框架和root有检测我需要单独绕过,就把这个勾选,然后工作模式为黑名单,选择我们的模版,即可

在测试的时候发现,我们单独安装的lsp.apk无论如何也隐藏不起来,所以又把单独安装的lsp安装包给卸载了(卸载的不是lsp框架,只是寄生器安装包),但是其实还是有点问题,下图为黑白名单自带检测,是全过的

但是momo检测却全查出来了

以下为实体手机效果

由此可见,真搞移动端测试还是得买个手机,模拟器的玄学问题太多了

frida-server-16.2.1-android-arm64  安卓测试必备,自然不必多说

推荐安装虚拟环境

pip3 install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple
workon
mkvirtualenv frida16
pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

把frida安卓版的frida拷贝到模拟器,由于笔者开启了多个环境,所以需要选择adb设备

adb devices

adb -s emulator-5558  push frida-server-16.2.1-android-x86_64 /data/local/tmp

对了,忘记说了,frida版本与系统架构需要一一对应,否则就会发生下面 的场景

如果大家只有一台设备,那直接adb shell即可;将frida拷贝到安卓手机的tmp目录后,再赋予权限,即可快乐的玩耍了

其实在这里的时候,笔者遇到了另一个问题,在这里记录一下;笔者前面安装了Magisk和Shamiko模块,而这里的Magisk可能版本比较低,Shamiko模块的版本也比较低,这就导致了在进行adb shell的时候,会提示unauthorized,也就是没有权限,这是因为Shamiko模块会把ro.adb.secure变成1,也就是开启adb密钥校验,因此会出现无法连接adb的问题,那么此时可以将面具换成狐狸,或者临时关闭Shamiko模块;实际上在测试的时候,笔者的实体手机是不会出现这个问题的,在这里仅作为提醒(也有可能是1版本以后的Shamiko修复了这个小问题)

JustTrustMe 最早的xposed框架必备神器之一,现在属于廉颇老矣,尚能饭否?

算法助手2.1.2 着重推荐,该工具自带很多神奇功能,如:算法自吐、activity监听、堆栈监听、root/代理检测绕过等诸多功能

开发者助手 着重推荐,资源监测神器,可以监测到资源调用情况、页面图片文字识别等

核心破解  该插件主要功能其实就是移动端安装apk后,若是对原始apk改动二次封包后可能由于签名的原因无法直接安装,但是又不想卸载原始的apk,不想丢数据,就可以利用这个尝试一下

开发助手 ,与开发者助手可以互补

HttpCanary_9.9.9.9  小黄鸟,但是现在用的场景少了

Move_Certificates-v1.9.zip  解决证书无法导入到系统信任目录问题,该插件其实和本次无关,但是笔者在刷机安卓13的时候,发现system挂载问题无法解决,无法将信任证书直接导入到系统证书根目录下;而此插件完美的解决了此问题,只需要按照常规操作将证书安装到个人目录下,然后重启手机,证书就会自动转换成.0格式,并自动迁移到系统证书根目录下;除了这个插件外,有的时候也可以用MT管理器进行迁移,但是笔者的手机有玄学问题,就是迁移过去的证书,在手机重启后就消失了,所以还是推荐这个工具,比较好用

所以此处会为大家进行一个简单的演示,演示该工具如何使用,首先以burp证书为例,将burp证书导入到手机模拟器的picture目录或者其他能访问到的目录

大家都知道,安卓7以上,系统不会对用户安装的证书信任了,所以如果直接安装的话,设置代理会导致断网的,但是使用这个插件我们可以完美的解决这个问题,我们只需要直接安装就行

此时证书安装成功

此时系统没有bp的信任证书

直接重启模拟器,我们发现,证书已经被自动迁移到系统信任目录了

所有的证书都可以通过这个方式装载,接下来演示一下常规操作如何将证书迁移进去

众所周知,系统根目录信任证书格式是.0的,所以我们需要借助ssl计算证书的hash值,我们可以直接利用kali转换

使用openssl将.der转换为.pem格式,windows中没有openssl.exe工具的可以在在linux完成

openssl x509 -inform DER -in burp.der -out burp.pem

使用openssl 获取有效的系统证书文件名

openssl x509 -inform PEM -subject_hash_old -in burp.pem

使用openssl 将证书文件转换为有效的系统证书文件

# der格式:
openssl x509 -inform DER -in burp.der -out 9a5ba575.0
# cer格式:
openssl x509 -inform DER -text -in xxx.cer > 9a5ba575.0
# pem格式:
openssl x509 -inform PEM -text -in xxx.pem > 9a5ba575.0
adb push 9a5ba575.0 /system/etc/security/cacerts/ # 将证书导入到系统证书根路径

甚至大家可以直接用MT管理器把证书迁移进去,无论怎么做都可以;

上面提到了,部分app加固后没有办法利用http代理抓包,可以使用socks5代理,而socks5代理可以用charles设置或者yakit(以前不知道yakit支持socks5代理,是我输了)

模拟器安装证书按照上面的方法,可以导出pem格式证书,直接安装到模拟器然后重启就行了,也可以自己改个名字

yak真是太强了

同样的,yak也可以继续设置下游代理,比如说再把包转给bp

TQL,啥也不说了,以后终于不用用盗版的charles了

本来还想演示一下charles的,但是现在没有必要了,玩法都是一样的,就不做演示了

后台回复  20240429 即可获取本次用到的环境,暂时都给安装到雷电模拟器了,大家想用的话可以通过备份还原的方法去提取里面的工具,但是信任证书需要重新安装

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2