一、背景

本人一直都是Fiddler,Charles此类软件的使用用户,但是因为公司的一些业务原因(其实特么的就是安全隐私说什么在用户授权之前,三方SDK盗取了用户隐私MAC地址什么的,巴拉巴拉~),然后我们就需要用到wireshark来捕获一下网络数据了~

二、Wireshark和fiddler的区别

Wireshark和Fiddler工具都是可以用来抓取数据包,存在的区别更多是在协议上,具体如下:

(1)Fiddler:专门用来捕获HTTP、HTTPS数据包。(如果大佬改造过,忽略,本人菜鸟)

(2)Wireshark:也可以用来捕获HTTP和HTTPS数据。但是,如果设计到HTTPS加解密,就比较难搞~

因此建议:

1、如果主要分析TCP和UDP协议,则建议使用Wireshark。

2、如果是分析HTTP和HTTPS,建议使用Fiddler,Charles了。

三、使用wireshark抓取APP数据包

PS:本人也是头一次用,所以又不全的地方,各位补充哈~

1、wireshark安装

这个好像没什么好讲的,百度下载,一直默认下一步安装就好了~

2、安装共享wifi

在你安装wireshark的机器上,装一个wifi精灵(猎豹免费wifi等等都可以),笔记本直接就可以启动,台式机需要用无线网卡咯(淘宝整一个呗,几十块钱),创建完,手机连上去就完事儿了~(这些主要是给完全没基础的人分享的,知道的人忽略就好了)


wireshark能抓握手包吗 wireshark可以抓https吗_wireshark https


3、网卡选择

wireshark启动后默认是混杂模式,也就是会抓取所有流量,因为一台电脑会有多个网卡等情况,我们需要找到特定网卡,甚至特定ip的流量所以需要做一下筛选,第一步也就是确定我们app连接的wifi对应的是哪张网卡(如果你连免费wifi对应的网卡是哪张也找不到~那你留言吧~就不展开说了),如图:


wireshark能抓握手包吗 wireshark可以抓https吗_wireshark抓取https_02


打开wireshark,点击捕获-->选项(Capture -> Option),勾选对应的网卡,搞定!(一部分~)


wireshark能抓握手包吗 wireshark可以抓https吗_wireshark找不到接口_03


4、拦截数据

启动拦截,数据如下:

发现没有,数据基本都是从192.168.191.2·····,因为我手机ip是这个啊~~嘿嘿~~


wireshark能抓握手包吗 wireshark可以抓https吗_wireshark https_04


再说一下,这么数据如何筛选

可以在过滤器输入命令进行筛选,常用的命令如下:

过滤IP:

来源IP或者目标IP等于某个IP

ip.src == 192.168.191.2 and ip.dst == 203.119.244.222

ip.src ==xxxx 过滤请求发起源

ip.dst ==xxx 过滤目标ip,比如请求的目的服务器ip是203.119.244.222,直接指向就可以了

过滤端口:

tcp.port >= 1 and tcp.port <= 80 //过滤端口范围

tcp.dstport == 80 // 只显tcp协议的目标端口80

tcp.srcport == 80 // 只显tcp协议的来源端口80

tcp.port ==80 // 不管端口是来源的还是目标的都显示

还有很多其他的~~不过我就用到上述的部分,其他的各位可以百度,欢迎补充哈~~

5、数据包详细信息解读

简单解读一下~~复杂的我也不懂,一般用处,这些应该就够了哈~~

(1)Frame: 物理层的数据帧概况

(2)Ethernet II: 数据链路层以太网帧头部信息(包含数据包的mac地址等等)

(3)Internet Protocol Version 4: 互联网层IP包头部信息(IPV4信息)

(4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP

如图:

wireshark能抓握手包吗 wireshark可以抓https吗_wireshark抓取https_05


四、结语

wireshark这个东西我也没怎么用过,也是因为业务场景需要才用到,所以首先要知道这玩意儿有啥用处,才能到需要的时候,马上掏出来,不然连解决问题的方向都找不到~~