linux下安卓渗透测试抓包环境配置
引子
学习安卓app渗透测试时,网上大部分教程对于linux用户不太友好。
本文会通过常见的抓包场景介绍一些linux下的软件和一些小技巧。
基础知识
root:获取安卓系统最高权限
xposed、LSPosed、LSPatch:一类安卓系统的hook框架
准备工作
adb
shizuku
LSPatch
GitHub LSPosed/LSPatch: LSPatch: A non-root Xposed framework extending from LSPosed
Genymotion虚拟机+证书(附带脚本)
Genymotion是一款跨平台的安卓虚拟机。功能强大
注意,Genymotion并非自由软件
镜像选择
每个镜像后都标注了cpu、内存、硬盘参数,我们根据自己的宿主机性能进行选择。
我们在渗透测试中有root需求,Genymotion官方提供了带有root的镜像请参考Root access Device image User Guide选择合适的安卓版本
结合以上两点,我们选择Pixel2安卓9
创建虚拟机
这里直接无脑下一步下一步即可。
虚拟机的配置
arm转义GitHub m9rco/Genymotion_ARM_Translation: 👾👾 Genymotion_ARM_Translation Please enjoy!
下载对应版本的arm转义包
运行以下命令
1 | 改为你下载的文件名 |
shizuku+LSPatch
我们有root,直接使用shizuku的root模式即可。LSPatch授权后即可使用
burp证书导入
这里我们导入系统证书,系统证书需要将证书改名为hash.0
运行以下命令
1 | 转换证书并推送 |
使用代理
直接在wifi中配置代理即可
实体机+证书
实际上linux下的虚拟机体验并不好,很多时候还是使用实体机比较友好
证书配置
可root的机器
这里请参考上面Genymotion导入证书的方法
不可root的机器
写在前面:
理论上在安卓7.0以后非系统证书是不可用做中间人攻击的。不过这是前半句,实际上”安卓7.0后引入了网络安全配置,默认情况下应用不再信任用户添加的CA证书,除非应用明确配置为信任它们。”
所以用户添加的证书在一定程度上是可用的。
通过设置中的添加用户级别证书即可配置证书。
burp导出证书时后缀需要改为cer,这样用户才可在手动添加时选中。
具体操作步骤请参考百度。
shizuku+LSPatch
可root的机器
参考Genymotion
不可root的机器
通过adb激活shizuku
安装shizuku后运行
1 | adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh |
参考
Root access Device image User Guide
GitHub m9rco/Genymotion_ARM_Translation: 👾👾 Genymotion_ARM_Translation Please enjoy!