您当前的位置:首页 > 互联网教程

ios手机使用charles抓包教程

发布时间:2025-05-28 12:43:00    发布人:远客网络

ios手机使用charles抓包教程

一、ios手机使用charles抓包教程

1、第一步:win+R键打开CMD命令框。

2、第二步:在CMD命令框中输入:ipconfig后点击回车键。

3、第三步:找到我们想要在手机端配置的IP地址。

4、第五步:在ios手机Safari浏览器中,输入chls.pro/ssl后,点击回车,会提示下载证书。

5、第六步:打开电脑端的Charles客户端。

6、第七步:只抓指定的接口,需要在Filter里面填写接口关键字就可以了。例如在Filter里面输入:baidu,就只会抓baidu的相关接口。

7、第八步:如果只想抓手机上面的包,不想抓PC(电脑)端的包时,需要在charles中Proxy里面的windowsProxy去掉勾选(不勾选)。然后在手机端重新请求接口后,就可以抓到带有关键词的接口了。

8、第九步:抓到接口后,点击Contents,就可以查看相关接口信息了。

二、iOS 真机抓包方式

只能抓 http(s)的包,不能抓自定义协议的包,如果要分析到更底层的包,像TLS handShake这种就没办法了

功能相对强大一些,可以针对某个网卡抓到所有的的数据包,类似于 tcpdump,也可以抓自定义协议的包,可以分析到 TLS handShake包

iOS 5之后, iPhone带了一个 Remote Virtual Interface(RVI)功能,我们可以通过 RVI把数据从 iOS设备上转发到我们 Mac机器上的一个虚拟网卡

连接手机到电脑上,获取到设备的 UUID,Xcode->Window-> Devices And simulators

在命令行中查看当前已有网络接口

接下来使用 rvictl创建虚拟网络接口

可以看到虚拟接口已经创建成功。

虚拟网络接口已经创建完毕,接下来使用抓包工具抓到原始包分析

RVI设置好以后,我们可以在 Mac上直接利用 tcpdump查看数据包。

输入完密码后可以,抓包已经可以开始

tcpdump很强大,但是可读性不太高,我们尝试用Wireshark分析原始数据包。

AirPlay是Apple私密协议,但也被很多商业破解收费,但每个版本 Apple都有可能再加密一次,这边有一份 non-official AirPlay协议,大致描述了 AirPlay的一个过程, non-official AirPlay protocol,接下来看一下 iOS 12上 AirPlay协议

工具: airServer可以将手机通过 AirPlay投到 mac上

选择抓 rvi0网络接口数据,点击开始

我们在 wireShark上看下具体原始数据包:

30.40.200.4--> 30.40.202.17

发送端向接收端查询AirPlay和 RAOP的信息,拿到数据包原文如下:

30.40.202.17--> 30.40.200.4

里面包含了很的信息我们都可以解析。

三、iOS系统如何实现网络数据抓包

在进行iOS开发过程中,经常会遇到各种各样的网络访问问题,以前苦于没有抓包工具,很多网络问题解决起来很痛苦。现在终于好了,本文提供两种方式进行网络抓包:

原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在MAC系统上也可以使用Paros工具)。

现在以MAC系统下Paros工具为例,详细描述下抓包过程:

1)首先将MAC电脑的以太网共享给airport,使iOS设备能够通过wifi连接

打开系统偏好设置,找到共享,选择internet共享,在右侧“通过以下方式将”选择以太网,“连接共享给其他电脑”选择airPort。

2)打开paros,设置paros的本地代理paros下载地址()

在paros的tools-》options中选择local proxy,在Address中输入AirPort的ip地址。输入端口8080。打开系统偏好设置,找到网络,选择左侧的AirPort,可以看到AirPort的地址为169.254.69.225,将该地址填入到上面提到的Address栏中。

3)使用ios设备连接mac共享出来的网络:在iOS设备中,选择设置-》通用-》网络-》wifi,找到共享的网络,加入。然后在该网络的纤细内容中的http代理部分,选择手动,输入paros中设置的代理ip和端口。

4)下面就可以使用paros来监控iOS设备的网络,我们打开Safiri,在paros中即可察看到网络的所有请求。

tcpdump命令是一个网络的抓包的命令行,他能指定具体的设备,也能制定具体的五元组进行捕获链路上的数据包。它可以再终端上打印出来也可以将捕获到得数据写入到一个文件,文件的格式是二进制形式,所以,我在打开该文件的时候才用的工具是UltraEdit。

当然也可以保存成Wireshark能够识别的pcap格式,然后使用Wireshark进行查看。

1)采用ssh登陆iphone手机,使用top命令获取:

b)在PC上打开终端,输入ssh root@IP地址:

输入密码:alpine(root用户的默认密码)

2)通过“tcpdump-X-s0-w/data.pcap”命令将tcp数据包保存到iOS设备的根目录下。

3)通过91助手等工具取出pcap文件,在Windows下使用双击使用Wireshark打开查看。

当然也可以不输出到文件,tcpdump的命令格式和参数说明:

tcpdump [-adeflnNOpqStvx ] [-c数量 ] [-F文件名 ]

[-i网络接口 ] [-r文件名] [-s snaplen ]

[-T类型 ] [-w文件名 ] [表达式 ]

-a将网络地址和广播地址转变成名字;

-d将匹配信息包的代码以人们能够理解的汇编格式给出;

-dd将匹配信息包的代码以c语言程序段的格式给出;

-ddd将匹配信息包的代码以十进制的形式给出;

-f将外部的Internet地址以数字的形式打印出来;

-t在输出的每一行不打印时间戳;

-v输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-c在收到指定的包的数目后,tcpdump就会停止;

-F从指定的文件中读取表达式,忽略其它的表达式;

-r从指定的文件中读取包(这些包一般通过-w选项产生);

-w直接将包写入文件中,并不分析和打印出来;

-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(远程过程调用)和snmp(简单网络管理协议;)

在使用该命令的时候,我主要使用的主要选项是:-i [接口名]-w [文件名]-v-vv-c-X-e

我在从eth0捕获100个数据包的时候,并将数据写入到capture.cap文件中,命令格式为:

tcpdump-i eth0-w capture.cap-v-vv-c 100-X-e

抓取一个一个ip段之间的数据包:

tcpdump–s 0–w socket host 10.1.3.9 and host 10.1.3.84

如果从eth0且通信协议端口为22,目标IP为192.168.1.100获取数据:

tcpdump-i eth0 port 22 and src host 192.168.1.100

此外还有其他的一些关键词:host,(主机), net(网关), port(端口), src(源IP), dst(目的IP),正则表达式:and, or。