整合一个Android抓包新姿势(AVD+https+remount+clash代{过}{滤}理转发+burp 版)

查看 81|回复 9
作者:Fythem   
标签: Https抓包,AVD,remount,系统证书,clash代{过}{滤}理转发,Burp
根据自己的一些需求整合了一些抓包手段,有一部分内容借鉴了其他大佬的抓包姿势,均有在文中备注并添加链接。


狗头.png (7.31 KB, 下载次数: 0)
下载附件
2022-10-19 16:08 上传

(保命)
一、需求的产生:
    出差了,要加白ip进行测试,这里环境用的公共环境的ip进行加白,手机直连可以访问业务,但不知道为啥抓不到包,pc和手机互相也ping不通,考虑到加白ip流程比较麻烦(需要提交申请的那种),所以我还是尽量保持已经加好的ip,于是就想直接电脑装模拟器抓包。
二、手头的设备:
    m1 的 macbookpro
三、开始捣鼓
3.1、创建AVD
    这里不清楚国内的各种模拟器是否支持m1芯片,于是就上手Android Studio中的 AVD,配置是Pixel 3a XL API 29 + AndroidQ arm64-v8a,其余的默认就可以了。现在可以不着急运行,因为后面我们需要通过命令行启动AVD


1.png (180.07 KB, 下载次数: 0)
下载附件
创建AVD
2022-10-19 15:44 上传

3.2、创建burp证书(参考:安卓手机使用adb添加系统证书方法)
    打开burp,电脑浏览器访问"http://burp"并下载证书cacert.cer,获得证书文件cacert.cer之后,准备将其转换成可放入系统证书库的文件
[Shell] 纯文本查看 复制代码openssl x509 -inform DER -subject_hash_old -in 证书文件.cer


2.png (303.83 KB, 下载次数: 0)
下载附件
获取hash值
2022-10-19 15:47 上传

获得红框中的hash值并把它作为后续的放入到系统证书库的证书名字,当前我的证书名为(9a5ba575.0)
[Shell] 纯文本查看 复制代码openssl x509 -inform DER -text -in 证书文件.cer > hash值.0


3.png (464.62 KB, 下载次数: 0)
下载附件
修改证书文件
2022-10-19 15:47 上传

3.3、Remount并将证书导入到系统目录
      获得了修改好的证书文件(9a5ba575.0)之后,就需要将证书放入AVD的目录当中,直接adb push会报Read-only,直接adb root 、adb remount也会报错,通过百度学到了通过命令行配置启动参数的方式运行AVD(参考:解决Android Studio ADV模拟器无法使用remount命令记录),就可以以写的方式启动AVD并向系统目录写入证书文件。
启动AVD之前,需要配置一下Android相关的环境变量。打开 .bash_profile 写入环境变量
[Plain Text] 纯文本查看 复制代码export ANDROID_HOME=/Users/xxx/Library/Android/sdk
export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/cmdline-tools/latest:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"


4.png (56.17 KB, 下载次数: 0)
下载附件
添加环境变量
2022-10-19 15:47 上传

保存并退出,并使其生效
[Plain Text] 纯文本查看 复制代码source .bash_profile
接着进入到AVD目录并以 "-writable-system" 的方式启动AVD
[Shell] 纯文本查看 复制代码cd /Users/xxx/Library/Android/sdk/emulator/
#查看模拟器名字
./emulator -list-avds
./emulator -avd '@模拟器名字' -writable-system
然后就可以看到AVD运行了起来,此时再在控制台执行remount命令挂载文件系统,接着就可以push我们修改好的系统证书文件了。
[Shell] 纯文本查看 复制代码adb root
adb remount


5.png (115.45 KB, 下载次数: 0)
下载附件
remount
2022-10-19 15:47 上传

[Shell] 纯文本查看 复制代码#推入证书
adb push 9a5ba575.0 /system/etc/security/cacerts/
#检查一下证书权限(644权限-rw-r--r--)
adb shell
cd /system/etc/security/cacerts/
ls -la


6.png (90.98 KB, 下载次数: 0)
下载附件
检查证书权限
2022-10-19 15:47 上传



7.png (194.78 KB, 下载次数: 0)
下载附件
添加系统证书成功
2022-10-19 15:47 上传

3.4、抓包(clash+burp)
    此时我们已经将证书成功放入到系统证书当中了,已经可以通过设置代{过}{滤}理进行抓包了。不过平常抓包的时候,或多或少都会碰到需要来回切代{过}{滤}理,很麻烦,这里就从其他同事那边学到了利用clash进行代{过}{滤}理转发抓包的姿势,需要抓包的时候点击clash开关就可以将流量转发到我们指定的ip:port上,还是比较方便的,于是就有了这一部分内容。
    首先,还是需要安装clash应用的。接下来就是配置yaml规则文件,只要将图片中圈出的ip和port修改成burp监听的ip和port就可以了(至于其他配置,可以查阅相关文档进行自定义的配置)
[Plain Text] 纯文本查看 复制代码mixed-port: 7890
allow-lan: false
mode: global
log-level: info
external-controller: 127.0.0.1:9090
proxies:
  - name: "burp"
    type: http
    server: 192.168.70.72
    port: 8080
proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - burp


8.png (131.32 KB, 下载次数: 0)
下载附件
设置代{过}{滤}理配置文件
2022-10-19 15:47 上传

修改完之后直接adb push到AVD当中。然后打开clash,从文件导入配置就可以了。
使用时在"配置"中勾选刚导入的配置文件


9.png (20.13 KB, 下载次数: 0)
下载附件
使用代{过}{滤}理1
2022-10-19 15:47 上传

点击运行


10.png (45.22 KB, 下载次数: 0)
下载附件
使用代{过}{滤}理2
2022-10-19 15:47 上传

"代{过}{滤}理" 中选择burp(在yaml文件中命名的),就可以将流量转发到指定ip:port上。


11.png (43.25 KB, 下载次数: 0)
下载附件
使用代{过}{滤}理3
2022-10-19 15:47 上传

最后再在burp当中进行一番抓包配置(这个burp配置,应该可以不用再贴出来了吧?对吧?对吧?),就可以抓包了。


12.png (80.07 KB, 下载次数: 0)
下载附件
抓包成功
2022-10-19 15:47 上传

四、多余的总结(不是)
1、解决了真机和pc连接同一网络,但抓不到包的各种情况(例如访问隔离之类的,直接在pc本地抓包本地发包)
2、解决了remount(不管是AVD还是真机)挂载不上的问题。
3、补充一些抓包姿势,通过代{过}{滤}理转发去抓包可以试试drony(小程序|App抓包-Drony配合Burp实现App定向抓包)和 lamda

证书, 下载次数

Fythem
OP
  


烤奶少糖2 发表于 2022-10-20 17:03
看完了,但是为什么不用Charles呢

burp那一块换成charles和fiddler抓包,也是可以的
TinyBad   

学习了,每日一个骚操作
nullable   

一个奇妙的思路,通过clash写一个配置替代反复手写HTTP袋里,学到了
xiting   

你这波操作也是真的骚
烤奶少糖2   

谢谢分享
JiuTian666   

看完了,但是为什么不用Charles呢
aonima   

不错不错, 新姿势
hxiang   

不错,新东西
nullable   

安卓版的?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部