似乎是 Google 做的新安全策略
在 Android7.0 及以上的系统中,每个应用可以定义自己的可信 CA 集。
默认情况下,应用只会信任系统预装的 CA 证书,而不会信任用户安装的 CA 证书。通过某些抓包软件安装的证书恰恰正属于用户安装的 CA 证书,因此会被视作不安全的证书。
如果想要在 Android7.0 以上抓第三方 APP 的包只能:
逆向加(改)配置文件
Root 系统将抓包软件的证书加入系统证书或者 Xposed(也是只有 Root 后才能操作)
当然,如果是自己的 APP 那么在测试阶段加一个配置文件信任所有的证书即可
以后 Android7.0 以上的机器会越来越多,以后想抓第三方 APP 包也越来越难!
如果我以后写安卓 APP 的话,我觉得可以:
只采用微信登录的方式登录(基于实人认证;另外微信对于 Root 和安装 Xposed 似乎有限制,一个不小心会封号)
target 甚至 mini 指向 24 ( mini 或许太严格了点...)
开启 ssl pinning (保护不受中间人攻击)
弄个加固(限制普通逆向)
1
ysc3839 2019-04-24 13:17:49 +08:00 via Android 2
Android 是开源的,还可以去掉相关检测代码自己编译一个系统。除非微信拒绝在非官方系统上运行。
|
2
kyf0722 2019-04-24 13:27:50 +08:00 via iPhone
不是吧,我记得我之前还抓过 android8.0 的,用户 ca 安装了之后还需要设置一下信任,似乎是这样,一会我确认一下
|
3
zeevin 2019-04-24 13:31:20 +08:00
不存在你说的情况,android9.0.2 用 fiddler 抓包完全没问题
|
4
HongJay 2019-04-24 13:31:38 +08:00
你在说什么呢。。。
|
5
KuroNekoFan 2019-04-24 13:54:38 +08:00
https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html 是这样的,用户证书不 root 已经不能被信任了
|
6
GTim 2019-04-24 14:00:24 +08:00
楼上的你们,能抓包?
不可能啊!!!!!除非自己家的 楼主,目前,就两个方案 1. 把 APP 降级,从最低的版本开始,如果你要抓某个包,就找那个包的最古老版本 2. 找一个非主流手机,不是华为不是小米的,先 Root 了,然后就可以安装自己的手机 |
7
fvckDaybyte2 2019-04-24 14:05:06 +08:00 via iPhone
@ysc3839 国内安卓还有官方系统么……
|
8
hikari 2019-04-24 14:06:33 +08:00
root 之后,把用户证书推到系统证书目录下,这样就可以抓 https 的包了
|
9
ysc3839 2019-04-24 14:10:29 +08:00 via Android
@fvckDaybyte2 我指的是手机厂商原本的系统。
|
10
jabari 2019-04-24 14:12:58 +08:00
还有一种是双向证书
|
11
KuroNekoFan 2019-04-24 14:13:16 +08:00
即使是国内厂商的 rom,那也是根据 aosp 的版本魔改的...所以这种安全策略还是会按照 aosp 的走
|
12
HangoX 2019-04-24 14:13:42 +08:00
那个是要按谷歌的方式配置证书才能这样,国内大部分 App 都不是采用这种方法配置证书。
|
16
miyuki 2019-04-24 14:21:44 +08:00 1
|
17
lloovve 2019-04-24 14:26:11 +08:00 via iPhone
做代理,用电脑中转,什么包都能抓
|
18
unclemcz 2019-04-24 14:49:10 +08:00
virtualxposed 但仅支持 8.0 及以下,9.0 以上无法保证。
|
20
251243021 2019-04-24 15:13:07 +08:00
如果你要抓的是微信. 打开微信 x5 的控制中心.可以打开调试功能.也就发现安装用户 ca 能够被抓到
|
21
WordTian 2019-04-24 15:17:22 +08:00 via Android
我特意买了个二手的安卓机,刷成安卓 6.0,就为了抓包
7.0 以上想抓包太麻烦了,虽然不是完全不能抓 |
24
lloovve 2019-04-24 15:42:33 +08:00 via iPhone
Win10 上开抓包软件,当然我抓的是网络数据
|
25
qiyuey 2019-04-24 16:19:07 +08:00
@lloovve 你应该抓的是 HTTP 包,抓 HTTPS 必须添加抓包软件的 CA,但是目前 Android 高版本可以选择只信任系统的 CA 就导致了上述问题。
|
26
digitO 2019-04-24 16:24:42 +08:00
抓 https 就很麻烦,http 没难度
|
27
66beta 2019-04-24 16:27:04 +08:00 via Android
大部分厂商都能申请 root 的吧
|
28
limingjie138 2019-04-24 16:30:43 +08:00 via iPhone
非移动端开发,我选择电脑 fiddler 抓...iOS 是可以
|
29
symeonchen 2019-04-24 16:50:56 +08:00 via Android
得益于 Project Treble 计划,厂商适配系统大版本更新的成本大大降低了,所以 mini 24 到来的速度会比前几年的更新换代来得更快。target 完全可以紧跟最新,适配成本不大。
|
30
aoling 2019-04-24 17:44:28 +08:00
姿势不对 安卓 9.0 照样抓包 https 不需要 root
|
31
Maskeney 2019-04-24 17:50:44 +08:00
16L 正解 要么自己手动挪 要么装 magisk 插件自动挪 当然都需要 root
|
32
meisky6666 2019-04-24 17:58:30 +08:00 via Android
要抓包的 app 会检测 root ?那为什么 root ?
|
33
yingyue 2019-04-24 18:00:17 +08:00 via Android
@limingjie138 电脑端抓包,对于 https 安卓会提示,证书错误的。还是要安装信任证书
|
34
lk1ngaa7 2019-04-24 18:40:10 +08:00
是的,上周折腾一下午,才发现是系统级别的安全策略
|
35
dongyulin353 2019-04-24 18:45:14 +08:00
@aoling #30 有教程吗,同安卓 9.0,不想 root,没找到怎么设置
|
36
locoz 2019-04-24 19:02:39 +08:00
@dongyulin353 #35 当你写爬虫抓不到 APP 请求包的时候该怎么办? [中级篇] https://zhuanlan.zhihu.com/p/56397466
|
37
locoz 2019-04-24 19:09:29 +08:00
我觉得吧。。一定要抓你 APP 包的人不可能不 ROOT、不装 Xposed 之类的工具的,所以纠结有没有 ROOT 会影响最终结果的想法其实没什么意义。然后以一个做爬虫的角度来看一下你最后的方案:
方案一只能对需要使用大量账户做什么事情的情况有效果,跟抓包没关系如果 方案二、三没卵用 方案四的话普通的壳是秒脱的,高级的、带反调试等功能的壳费用较高 |
38
nanaw 2019-04-24 19:14:39 +08:00 via Android
你在搞笑吗?还利用起来微信了。只能微信登录那谁会登录。
真要抓你包专门弄个小号就是了。以目前的 Android 不 root 根本不能用,你要反 root 就自己检测。 |
39
HFX3389 OP @nanaw #38 我没在搞笑谢谢,这个帖子的讨论主体是 Android7.0 以上的抓包,我在最后只是阐述我自己的想法,请分清楚讨论主题 :)
|
40
lxghost 2019-04-24 19:46:02 +08:00
https://github.com/MegatronKing/HttpCanary/tree/master/zh-CN 参考这篇的第二部分~可以实现非 root 抓包
|
42
jim9606 2019-04-24 22:53:33 +08:00
这个策略算不上什么新玩意了。
对于自己开发的应用,debug 编译是可以选择信任用户证书的。 对于恶意第三方,root+xposed 肯定有的 对于一般用户的意义就是 可以防止某些不怀好意的 APP (例如在微信页面插广告什么的)或者企业应用用用户证书+V。PN API 监控 /窃取 /篡改流量(如果支持这个,肯定有一些企业网络监控方案会用这种方法偷懒) 事实上如果有安装用户证书,每次开机都会出“可能被第三方监控”的通知 很难说这样好不好,这算是收回用户一定的自主权。 |
43
iyaozhen 2019-04-24 23:01:47 +08:00 via Android
所以最近喜欢用 iOS 做测试了。😊
|
44
nanaw 2019-04-24 23:17:25 +08:00 via Android
@HFX3389
1. Root 环境是常规环境,目前 Android 不 Root 没法治流氓,各家 ROM 虽说有所作为但还不够。并且即使不 Root,在第三方 rec 下也可以直接操作导入系统证书。 2. 你如果不想被抓,那就只能自己维护一个证书列表,外部的都不信任。用尽手段反 Root 和 xposed 并且强加固。不过现在 xposed 好办,Root 很难检测 3. 利用微信是极其愚蠢的做法,影响你自己的业务。先不说现在用着 Root+xp 微信批事没有,就算微信严格反 Root,真想抓你上个微信小号也照抓不误。 4. 容器类应用似乎也可以,不过原理不太了解。 |
45
duan602728596 2019-04-25 06:59:59 +08:00 via iPhone
所以搞了一台二手 iPhone 越狱抓包了
|
46
dream7758522 2019-04-25 07:07:13 +08:00 via Android
楼主说的很对,不信的话可以试一试抓学习()强国的包,
|
47
Blanke 2019-04-25 08:29:52 +08:00 via Android
justTruseMe 等类似模块一键搞定
|
48
freedomshi 2019-04-25 14:27:11 +08:00
用模拟器,不用谢。
|
50
loginbygoogle 2020-07-23 04:25:22 +08:00 via iPhone
@ysc3839 说话等于放屁,各种物理定律也是公开的,你咋不去造个原子弹?
|
51
webdesigner 2020-10-17 20:11:36 +08:00
我在安卓 10 上抓包,安装可信任 CA 后,部分 app 是没法抓到包的,比如美团外卖商家版。开启代理之后,app 直接报没有网络连接。而饿了没零售商家版就能抓到包。我正在想办法让它能够抓到美团的数据。
|