youtube用Charles抓包

有时候需要对境外的APP,例如youtube,facebook(IOS平台测试不通过,可能是因为wifi代理检测)抓包。。。那就会引出了个问题,打开VPN,以及使用WIFI代理去抓包。。。压根就是抓不到包,,,原因是为啥呢???原因很简单呐,那就是,流量都通过VPN跑了,跑了,跑了!王八蛋黄鹤带着他的小姨子跑了!…压根就没有通过Charles等一些列的抓包工具(Wireshark等网卡抓包咱暂时不谈,因为我不会。。。)。不打开VPN,由于国内环境,又访问不了网站,硬伤呐。。。

不扯那么远了,回到正题。

本文使用的工具是Charles

其实我还是比较喜欢Burpsuite Community,因为有时候重新修改请求再发送,用Charles,真的很容易误操作。。。导致很少使用Charles,另外就是我使用的是免费体验版本,每次三十分钟就要强制关闭我,对他的好感就下降了很多。。。
另外Burpsuite 也是有硬伤的,就是会漏包!!!致命点,,,算了,看他那么好用,还是使用它吧,毕竟他是可以跟Frida的一款插件Brida一起使用。。。牛逼吧。。。简直是无敌了,可以快速验证自己逆向找到的协议所在的类是否为解密类。。。

好东西肯定是藏在里面的呢!!!哈哈哈!!!

Charles的激活码

大佬的传送门 非常感谢!!!

1
2
3
4
5
6
// Charles Proxy License
// 适用于Charles任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2.7目前是最新版,可用。

Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

Charles安装

双击666,无脑Next。。。
顺便用上面的密钥激活美滋滋,解除30分钟的限制。。。

激活入口为:Help -> Charles Register。。。

证书安装

配置Charles的代理端口。
打开https://chls.pro/ssl
or
你的ip+port
例如:

  • PC:127.0.0.1:8888
  • Mobile:192.168.10.19:8888

链接成功会提示你新设备加入,记得选择信任,如下图所示。

记得同意,否则会出现一些莫名其妙的问题的

markdown

如果安装失败可以用Keystore Explorer转换为你需要的平台。。。或者导入到谷歌浏览器再导出。。。
推荐是Keystore Explorer。因为有时候在安卓的证书校验的时候,特别是安卓平台双向数据校验,安卓特定的证书格式在PC上不好处理,支持带密码私钥转换为特定的格式的带密钥的私钥。。。强大。。。

另外,在IOS平台,在高版本的平台上(iphone 12.1.4),除了安装证书还得在设置->通用->关于本机->证书信任设置 中设置为信任,否则也是不能正常抓取Https的包的。。。
markdown

配置Charles抓取ssl数据,否则导入成功证书也是解析不了的。

Proxy -> SSL Porxy Settings -> SSL Proxying 添加并 *:443。记得激活。。。
markdown


插个旁外话,到时候有需要再开一篇专栏来专门分别介绍某一款的APP的具体处理方案。

安卓可以使用Xposed + JustTruseMe来强制绕过证书检测,不过也有局限性。那就是

  • WIFI代理检测
  • 双向证书检验
  • 自定义实现openSSl证书
    对以上的场景均不可以。

对于以上场景的解决方案如下:

  • WIFI代理的是最好解决的,那就是逆向找到他的X509Certificate证书的子类,屏蔽其checkServerTrusted方法即可。
  • 自定义实现openSSl证书,也是Hook,但是难度更大。因为一般实现的都是用openSSL,属于native层的代码,除非是比较熟悉,否则在一些自定义openssl实现中,带有混淆,难度就上升到另外个层次了。
  • 双向证书:导入证书,如果需要私钥就带上私钥。。。

重点!!!做笔记了哈!
另外无论是安装证书到PC还是移动端,都要记得对此证书进行信任,否则会被系统或者谷歌浏览器拦截,导致请求无法正常发送出去的。
在导入本机的时候千万要选择到信任到系统层次。以及在谷歌浏览器中,得把证书导入到受信任机构那边。

或者还有其他的方案,请各位大佬赐教!!!小弟感激不尽!

1
2
3
4
5
6
7
8
9
10
11
12
XposedHelpers.findAndHookMethod("a.a.a.op",
lpparam.classLoader, "checkServerTrusted",
X509Certificate[].class, String.class,
new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(
MethodHookParam methodHookParam)
throws Throwable {
XposedBridge.log("直接替换checkServerTrusted方法(检查证书合法),返回null");
return null;
}
});

又扯远了,扯淡扯蛋去了。。。强行扶正,顶上去。


如果仅仅为了抓HTTPS的包,以上的步骤就可以解决了,以下设置是为了抓取被墙过的APP的包。即只能通过VPN等代理手段
才能抓取到的包。


获取Shadowsocks 的代理信息

Windows平台直接打开查看代理端口,默认为1080.

配置Charles Shadowsocks 的代理信息

打开Charles Porxy-> External Porxy Settings

  • Use external porxy server。
    • Web Porxy(HTTP)
    • Secure Web Porxy(HTTP)
    • SOCKS Porxy
      以上的配置均为127.0.0.1:1080(上面获取的代理端口)

接下来就是愉快的抓包了啦。。。这次懒了点,以上的都不带图片了。。。

算了还是贴点图。。。做人不要那么懒呐,即使是周末…

markdown

markdown

markdown

markdown

markdown

Emoji 表情不要安装!!!玛丹娜,一个半小时就这样子被浪费了,安装几分钟,一个半小时卸载。。。坑的要死,最后还要把模块以及js代码都给清理干净。。。不然目录那边全都是带有¶¶¶符号的。。。

BUG

另外补充个BUG,那就是,以上设置之后,电脑就不能翻墙了,但是手机还是可以的。把Charles关了也不能,得把Shadowsocks关闭然后重新开启才能够再次愉快的翻墙了。。。

谢谢,爱你么么哒