1
lusi1990 2021-04-22 15:28:01 +08:00
巧了 我也最近捣鼓了装证书的问题。
用 mitmproxy 的证书 ,直接装到 mumu 里面可以正常抓包。 用 fiddler 就不行 ,我也按照网上的方法装到系统证书也不行。后面就没捣鼓了 |
2
Telegram 2021-04-22 15:31:19 +08:00
抓包这个还是苹果简单,只要证书搞好,VPN 一挂起就都能抓了。
安卓感觉就算你搞好了,很多 APP 能检测到你抓包,直接拒绝通信。 |
3
KuroNekoFan 2021-04-22 15:32:18 +08:00 1
不考虑模拟器的问题,android7 以上不能通过信任个人签发证书来调试 https 了
|
4
ly841000 2021-04-22 15:37:09 +08:00
不要自己转换, 先安装用成用户证书, 再移动到系统证书目录
|
5
Jirajine 2021-04-22 15:39:23 +08:00 via Android 1
两种办法:
1. 把安装上的根证书移动到系统证书目录。需要 root,需要 app 没有使用 ssl pinning 。 2. tcpdump 抓包,劫持 libssl 函数,打出 ssl keylog,然后用 Wireshark 解密查看。 |
6
napsterwu 2021-04-22 15:41:47 +08:00 via iPhone
太长了,首先建议参考 Charles 或者 fiddler 。全程不需要使用 OpenSSL 命令,一般证书系统 ui 就可以装 pem 格式的证书。比如文件管理器直接打开证书,或者设置里面有“从 sd 卡安装证书”。安装完之后是在用户空间的,有 movecert 或者 MagiskTrustUserCerts 的话重启一下就可以了。
|
7
brader 2021-04-22 15:42:06 +08:00
咦,怎么我使用没有问题呀,我目前在用两款,MuMu 模拟器 和 夜神模拟器,都没有问题
|
8
napsterwu 2021-04-22 15:43:07 +08:00 via iPhone
不过尽管安装到系统证书,微信 7 之后小程序还是抓不了的,不知道有没有大佬可以指点一下
|
9
brader 2021-04-22 15:43:27 +08:00
对了,抓包工具我是用的 Charles
|
10
mx8Y3o5w3M70LC4y 2021-04-22 15:50:43 +08:00 via Android
我用的 fiddler+真机抓 HTTPS 的包。先从 fiddler 导出证书,放到手机根目录。手机设置里搜索 ca 证书,安装根目录的证书。fiddler 设置-https 里先 trust,再选中 capture https traffic 。就可以了
|
11
mengyx 2021-04-22 15:55:58 +08:00 via Android 1
之前处理过一样的问题 供楼主参考一下 https://blog.mengyx.cn/p/fiddler-android-packet-caputre/
|
12
MaxLi77 2021-04-22 15:56:20 +08:00
证书啥的基本不好用。。。真机 xposed + justtrustme 类插件
|
13
acess OP @Telegram 我看 JustTrustMe 这个 Xposed 模块里提到,有些 app 用了 Public Key (Certificate) Pinning——感觉就是类似 SSH 那样,不是信任 CA 来验证,而是 app 里直接指定一个服务器公钥。这种情况貌似确实比较麻烦,导了 CA 也不能解决,只能是 xposed 或者改包了吧。
@KuroNekoFan 这个我之前也看到了,按理说 MuMu 是 Android 6,所以不需要折腾系统证书也能达到类似的效果吧…… 我主要感觉奇怪的是,为什么同一个 app 下(自带浏览器),不同网站的情况也不一样……这太诡异了 再有就是为啥 Android 11 的 AVD 用了 movecert 就会无法正常启动……这也很诡异 |
14
acess OP @MaxLi77 额,按理说我现在有了带 edxp 的 AVD,也可以直接上 justtrustme……不过我感觉 AVD 还是有点卡,尤其是 GPU 硬件加速好像还是开不了,按照官方文档里说的,win 上可以从 host 模式调到 angle_indirect 模式,现在好像这个设置是无效的。再有就是 justtrustme 这类 xposed 模块虽然可以搞定 ssl pinning,也总有照顾不到的死角( hook 不到的代码)吧……
|
16
acess OP @mengyx 额,证书过期时间这个,我确实没注意。重新生成证书后,貌似 MuMu 里自带浏览器就不会报证书错误了。至于之前为什么不同网站,有的报错有的不报错,我不知道为什么,也不想管了……
|
17
SvenWong 2021-04-22 17:16:24 +08:00 1
Android 10 下,Charles+VirtaulXposed+JustTrustMe 可以正常抓包,只测试过这些版本,其他不知道
|
19
Rocketer 2021-04-23 01:08:29 +08:00 via iPhone
app 开发者为何不只信任自己的证书,非得信任所有的系统证书呢?那样不就彻底防止中间人了吗?
不做移动端开发,不懂瞎问,别笑 |
20
q197 2021-04-23 09:55:00 +08:00
@Rocketer 因为一般开发 app 直接请求 https 就行了,证书校验都是系统(可能还有用的网络请求库)自动校验的,对开发者来说调用 http 和 https 的 api 没什么区别。
|
21
tangmanger 2021-04-23 15:08:36 +08:00
JustTrustMe +fiddler 抓 http 包爽的一匹
|
22
newmlp 2021-04-23 18:07:58 +08:00
如果 app 用了 ssl pinning 是需要其他 hack 的方法的
|
24
acess OP @mengyx 啊,我在 Fiddler 5.0 上试了,不过我把 fiddler.certmaker.GraceDays 和 fiddler.certmaker.ValidDays 都设成正整数了,而不是负数,负数好像会生成还没生效的证书。
|
27
MrWhite 2021-04-26 10:20:38 +08:00
抓包的时候。打开软件配置好代理后,打开 App 的话。 有些 App 会一直 loading... 然后关了抓包软件或者代理,就可以进入 App 了? 这是什么情况哈? 我记得以前在网上看到 说 SSL 有一种貌似就是方抓包的功能? 有佬给解答吗
|
28
azhangbing 2021-04-26 17:02:53 +08:00
@tangmanger okhttp 混淆了你就 get 不到 sslfactory 方法了
|
29
acess OP @MrWhite
抓包一直 loading,不抓包就正常,那应该就是抓包的情况下不能正常连接吧。不好是啥情况……有可能是证书验证有关的问题,比如 SSL pinning ;也有可能是其他原因,比如有些应用强制要求 HTTP/2,然后 Fiddler 目前就不支持 HTTP/2 。也许还有更多预想不到的情况…… 还有,其实配置了代理,应用也可能不理睬的;甚至可能同一个应用内,也可能出现有些请求走代理、有些不走的情况。 至于“方便抓包的功能”……我搜了一下,大概是 NSS Key Log ?好像可以设置环境变量,然后让浏览器自己把密钥 log 下来。 还有楼上 @Jirajine 提到的“劫持 libssl 函数,打出 ssl keylog”,我搜了一下,有个项目 frida-sslkeylog,不过我还没试过。 |