记录一下折腾app的一些过程与奇奇怪怪的问题
环境:
小米6一台(已root)
- termux(0.118.0)
adb(1.0.36(nox夜神模拟器里的))
magisk 版本25.2(25200)
- 模块(启动Zygisk):
- Shamiko(root隐藏)
- Zygisk-LSPosed(LSPosed)
- 模块(启动Zygisk):
LSPosed(1.8.6(6712)-Zygisk,API版本93)
- 模块
- 隐藏应用列表(3.1.1 root隐藏)
- JustTrustMe(.2)
- SSLUnpinning(1.0.0)
- 模块
Frida (16.0.11)
Objection (1.11.0)
HttpCanary (v3.3.5)
各种安装过程
root
咕咕
termux
安卓下的shell终端。具体可以参考:
https://www.sqlsec.com/2018/05/termux.html
面具Magisk
咕咕
Shamiko
Shamiko的github地址
https://github.com/LSPosed/LSPosed.github.io/releases
下载zip,在magisk中导入即可刷入Shamiko模块,重启手机,打开面具右上角设置,打开遵循排除列表选项,再点击配置排除列表。打开排除配置列表后,勾选要隐藏root的应用,然后关闭排除列表选项。如果不关闭排除列表选项,那么Shamiko模块就会不工作,隐藏root就会不生效,所以是必须关闭的,首次配置建议重启一次手机,已达到最佳的隐藏效果。
关于新版本magisk隐藏root,可以看:https://zhuanlan.zhihu.com/p/506203078
Zygisk-LSPosed
在magisk设置中直接打开即可
LSPosed
咕咕
隐藏应用列表(3.1.1 root隐藏)
直接在LSPosed里面搜索下载就行,需要先加载一下(时间可能比较久)
JustTrustMe(.2)
JustTrustMe需要在github中下载:https://github.com/Fuzion24/JustTrustMe
安装apk即可
SSLUnpinning(1.0.0)
同样直接搜索即可
Frida
安装客户端(win10电脑上的)
1 | pip install frida |
然后 pip list|findstr frida 找到安装的frida版本.
比如我这里是16.0.11。然后就去https://github.com/frida/frida/releases找到对应的服务端版本下载即可
可以使用 adb shell getprop ro.product.cpu.abi 确定手机系统架构
下载解压后,使用adb将frida-server放到手机目录/data/local/,然后修改属性为可执行
1 | #查看设备连接状态 |
随后usb连接电脑与手机输入 frida-ps -Ua
有类似返回即可
Objection
pip install objection即可
Fiddler classic
Fiddler Classic(经典版),这个版本是免费的,不过只能在Windows上使用。
Fiddler Everywhere可以在所有平台使用,并且相当于Fiddler Classic+postman,但是是收费的。
如果只作为抓包工具经典版就够用了,可以直接点击下方链接前往下载页面。
邮箱和地址随便填就行了
fiddler使用教程可以看:
https://juejin.cn/post/7021763777460699150
https://www.cnblogs.com/hong-fithing/p/7582947.html
证书
burp证书
- 获取证书
1 | 挂上代理后,访问 https://burp 下载证书,即 cacert.der。 |
- 将证书转换为移动设备用户凭据文件(Ubuntu 16.04)
1 | # 转换为 *.pem 文件 |
- 安装证书(手机已Root)
1 | # 将 <hash>.0 传到手机 |
- 验证
1 | 设置->安全性和位置信息->加密与凭据->信任的凭据(显示信任的CA证书)->系统->PortSwigger |
Fillder证书
- 获取证书
1 | 两种方式: |
- 将证书转换为移动设备用户凭据文件(Ubuntu 16.04)
1 | root@cj:~# openssl x509 -inform DER -in FiddlerRoot.cer -out F.pem |
- 安装证书(手机已Root)
1 | adb push 269953fb.0 /sdcard/ |
- 验证
1 | 设置->安全性和位置信息->加密与凭据->信任的凭据(显示信任的CA证书)->系统->DO_NOT_TRUST_FiddlerRoot |
- 抓包配置
1 | Fiddler->Tools->Connecttions->Allow remote computers to conect |
burp证书2
在安卓版本高于10的情况下,使用之前的方法添加证书,会在挂载这步卡住,如下图:
所以需要使用别的方法来添加证书。来源:https://blog.csdn.net/qq_42923605/article/details/126870645
原理很简单,就相当于刷模块来达到修改的目的。所以需要刷好了面具才行。
1.在/data/adb/modules/目录下随便找一个模块,这里我找的是shamiko模块,在里面创建一个system文件夹,然后在里面创建证书的那一层层路径,最后把证书丢进去。所以我这里证书完整路径为/data/adb/modules/zygisk_shamiko/system/etc/security/cacerts/
随后重启手机,就可以在/system/etc/security/cacerts/路径下看到证书了,系统设置中也可以看到PostSwigger了。
问题1:本地转发抓包
把burp设置成系统代理后,抓到一个app的包,但是host地址是127.0.0.1:30000,很显然这不是我电脑上的,也不是一个远程地址,那就只能是手机上某个app开放的端口了
查看发现是app启动的端口:
但是我在电脑上是访问不到这个端口的
经过学长指导,决定用ssh转发获取返回包
termux安装ssh
1 | # 换源 |
手机上的ssh默认端口是8022,需要注意下,下图就是登录成功的界面
在测试可以登录后,就可以开始监听了
1 | ssh -L 30000:127.0.0.1:30000 root@192.168.0.3 -p 8022 |
其中192.168.0.3是手机的ip地址,127.0.0.1:30000是转发的目的地址机器端口,30000是本地一个闲置端口(这个可以任意取,但是我为了方便,即让抓来的包不做任何修改就可以直接发送并获取返回包,就改成了这个)。
现在我在burp上抓到包后,直接send,就可以有返回包了
问题2:wsl2使用adb
在wsl2中连接不到手机,需要用到ip连接(需要在同一个局域网下),具体为以下几步
- 物理机中先插上数据线,adb连接好,然后输入 adb tcpip 5555
- 拔下数据线,来到wsl2中,确保可以ping通手机,输入 adb connect 192.168.0.3 。(后面的ip是手机ip)
fine
参考:
app抓包:https://mp.weixin.qq.com/s/xDvxKJPdqf7AfJSfuWHZ0g
新版magisk隐藏root:https://zhuanlan.zhihu.com/p/506203078
Android 8.1 导入Burp、Fiddler证书: https://www.cnblogs.com/cijian9000/p/13431754.html
frida(hook工具)的环境搭建:https://www.cnblogs.com/tjp40922/p/11353808.html
Fiddler抓包(下载安装及使用):https://juejin.cn/post/7021763777460699150
Termux 高级终端安装使用配置教程:https://www.sqlsec.com/2018/05/termux.html
彻底搞懂SSH端口转发命令:https://zhuanlan.zhihu.com/p/148825449