使用Charles抓包手机ios系统(android系统类似)

注:Charles偏向于应用层协议,如http(s),如果想抓特殊协议的包,可用wireshark,使用ip.addr过滤指定IP

使用Charles抓手机的包

Charles配置

  自行下载安装,工具官方网站:https://www.charlesproxy.com
  安装完成后,在菜单栏的Help选项中找到SSL proxying,选择安装证书,如下图:按默认方式安装证书即可

image

  证书安装完成后,在菜单栏的proxy中,找到SSL proxying Setting选项,这项可以指定所抓的IP/域名以及端口,默认*.*表示梭哈,这项自己根据自己的需求来配置:

image

  梭哈时,抓的包量会很大,在工具的左下角,有个过滤器,可以直接输入自己想抓到的域名
  **关键来了!**,菜单栏的Proxy选项中,有Proxy Setting选项,在这里,配置自己监听的通信方法和端口,在右边的windows选项也可以代理到系统,也可以直接选择Windows Proxy:

image

  以上都配置完后,会在自己的主页面里显示抓到的数据包,如果选择了Windows Proxy,微信小程序的包一样也可以抓到,因为这取决于自己的系统通信用的是哪种协议,基于这种HTTP或者SSL协议的数据包,Charles是可以抓到的:

image

准备网络

  网络要求:需要手机与计算机在同一网络下,如果网络有限,也可以使用计算机开启热点;
  手机在连接到热点之后,需要开启代理,在自己的wifi设置中,添加手动代理,代理IP为自己开热点的计算机的本机IP,端口为上面设置的端口,默认是8888,开启代理后,在Charles的菜单栏Help里点击安装手机证书,会弹出一个页面:

image
image

  根据页面提示,使用手机的浏览器访问:chls.pro/ssl,去下载证书,如果这个链接不能使用,则访问备用地址:www.charlesproxy.com/getssl,下载证书。
   安装证书完成后,如果自己的iOS版本超过10,需要在自己的手机里,设置→通用→关于手机→证书,点击相信该证书,如果没有这一步骤,即使能抓到包,但是在手机访问任何https网站时,均提示站点不安全不允许访问。
   以上都完成后,就可以开始抓到手机的包了。

其他协议数据包-wireshark

   以上这种方式,只能抓到http/https协议的包,如果想抓到其他特殊的如TLSv1.2 1.3,或者DNS协议,UDP数据包,则需要使用其他工具,本人是因为需要抓iOS手机与APNs推送节点的长连接数据包,属于TLSv1.2加密包,使用Charles一直抓不到,但一时半会儿找不到其他方式,无奈之下选择最简单的方式,wireshark。

其实这个思路我并没有能想到,是问了deepseek给的建议

   在wireshark的打开页面,根据自己的网络,选择要捕捉的网络,有线网一般是某个本地连接,无线网是WLAN,因为自己的手机是连接了自己笔记本的热点,所以只需要抓自己笔记本所在的网络。
   有些说法中,也需要手机开启代理,不过我本人试了一下,不用开启代理也能抓到手机的包,但这种方式抓包的量会非常大,可以在wireshark的过滤器输入:ip.addr == 192.168.137.x,这个地址是自己手机的地址,这样看到的包,都是自己手机的数据包了,顺便展示一下我抓到的手机给APNs长连接的包:

image

附:延伸用法,联合BurpSuite

 在做渗透测试的时候,Charles只能抓到包,但是改包或者其他操作时会很受限制,那么可以外置到代理服务器中,那么这个外置服务器,就是BurpSuite。
  在Proxy选项中,找到External Proxy Settings,在这里可以配置自己的Web代理服务器,输入的IP和端口,即为自己的本计算机地址一级BurpSuite的监听端口,在Burp也配置好监听端口并且打开代理后,数据包就会流向BurpSuite了。

image

posted @ 2026-03-07 14:02  取到小饼干  阅读(65)  评论(0)    收藏  举报
都翻到底啦,确定不打赏一下吗😘

喜欢我的话
欢迎打赏😘
感谢您的认同

支付宝打赏二维码 微信打赏二维码