0%

抓包工具-charles

一 、Charles 的安装与使用

Charles官网:https://www.charlesproxy.com/

Charles的作用:
image

1. 对请求抓包

保证iPhone和PC工作在同一局域网内(即同一个WIFI下)。

1.1 获取PC端的IP地址

image

打开网络偏好设置…

image
获取IP地址。

1.2 配置手机代理

设置->无线局域网
image
HTTP代理->配置代理(手动)
image

1.3 PC端的Charles设置

具体的端口可以从Charles菜单栏 -> Proxy -> Proxy Settings中查看。图示如下:
image
代理配置完成后,Charles会弹出连接提示框,点击Allow之后即可使用Charles对从该手机发出的请求进行抓包了。图示如下:
image

2. 抓取HTTPS请求

配置iPhone代理完毕后,就可以通过Structure或者Sequence窗口预览HTTP请求的数据了。但由于HTTPS请求被加密过,预览请求时只能预览到乱码数据。要预览到HTTPS请求的数据明文,需要PC和iPhone安装证书授权。

2.1 PC端安装证书

在Charles菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以为PC安装证书,证书可以在Mac的钥匙串中查看。图示如下:
image

证书可以在Mac的钥匙串中查看,双击证书,将信任权限设定为始终信任。图示如下:
image

2.2 在手机端配置根证书

2.2.1 iPhone手机安装证书
  • 1、打开Charles,选择help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser
    image

  • 2、手机连接电脑代理,打开safari,输入网址:chls.pro/ssl
    选择后会显示IP与端口号,用于手机设置http代理:
    image
    手机的网络上设置成电脑的http代理:
    此时必须保证手机和电脑在同一网络,并且手机可以访问电脑的ip与端口

image

  • 3、手机弹出提示:此网站正尝试打开“设置”已向您显示一个配置描述文件。您要允许吗?忽略|允许,选择允许,安装描述文件,并信任

image

  • 4.1、iOS10.3以上的手机需要在:设置→ 通用 → 关于本机 → 证书信任设置→ 找到charles proxy CA证书,打开信任即可
  • 4.2、 手机浏览器(笔者使用Chrome)访问chls.pro/ssl,下载证书并安装(证书名任意):
    image

在iPhone浏览器中访问http://charlesproxy.com/getssl可以下载证书并安装。
基于iOS的证书信任机制,在安装完成并信任证书后,需要到iPhone设置 ->通用-> 关于本机 -> 证书信任设置中启用根证书。

2.2.2 安卓手机安装证书
  • 方法一:

      1、打开Charles,选择help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser
    
      2、手机连接电脑代理,打开浏览器,输入网址:chls.pro/ssl
    
      3、手机弹出提示:安装配置描述文件。您要允许吗?忽略|允许,选择允许,即可
    
  • 方法二:

      1、打开Charles,选择help→SSL Proxying→Save Charles Certificate,将证书导入到手机中
    
      2、导入后直接点击安装证书即可
    
  • 方法三:

      1、打开Charles,选择help→SSL Proxying→Save Charles Certificate,将证书导入到手机中
    
      2、导入后直接点击安装证书,提示无法打开
    
      3、进入手机设置 → 更多设置 → 系统安全 → 从存储设备安装 → 选择charles.pem,点击高级,安装证书即可
    

常见手机:小米手机,华为手机,需要设置手机锁屏密码

2.2.3 如果证书下载不下来怎么办?

可根据安卓我手机安装证书的方法 将证书下载并导入手机进行安装

2.4 启动抓包的SSL权限

在Charles菜单栏 -> Proxy -> SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。图示如下:
image

即对所有的https都进行抓包。

二、Charles的破解方法

破解网站:https://www.zzzmode.com/mytools/charles/

此工具用于计算Charles激活码

输入RegisterName(此名称随意,用于显示 Registered to xxx),点击生成计算出注册码,打开Charles输入注册码即可。
image
打开Charles菜单栏 -> help -> Register Charles
填入上述产生的Registered Name和License Key,即可破解成功!
image
破解成功
image

三、Android 7.0以上手机抓包方式(抓取https,亲测有用)

安卓7.0有安全保护,用户级别的证书在大部分app中无法通过验证。(charles安装的证书就是用户级别的)

Android7.0 之后默认不信任用户添加到系统的CA证书:

To provide a more consistent and more secure experience across the Android ecosystem, beginning with Android Nougat, compatible devices trust only the standardized system CAs maintained in AOSP.(文档链接

也就是说对基于 SDK24 及以上的APP来说,即使你在手机上安装了抓包工具的证书也无法抓取 https 请求

1、下载VritualXposed apk包安装到android手机

https://github.com/android-hacker/VirtualXposed

2、下载JustTrustMe apk包安装到android手机

https://github.com/Fuzion24/JustTrustMe

3、安装完成进入VirtualXposed apk应用,点击6个小点进入设置页面

image

4、进入设置页面,点击模块管理,勾选JustTrustMe(如果没有找到它,可能是这个版本不需要在手动选择了,安装之后自动识别到了)

5、重启VirtualXposed

6、重启之后我们重新进去设置页面,添加我们需要抓包的应用即可,比如网速管家APP

image
image

7、设置Fiddler/charles代理,手机设置wifi里面代理改成手动。输入ip,端口:默认8888,注意手机和电脑在一个wifi下就可以了

8、回到VirtualXposed 上滑解锁,打开我们安装的应用进行操作,则发现Fiddler/Charles已经成功抓取到安居客的HTTPS的数据包

image

------------- 本文结束 感谢您的阅读-------------