一、背景
本人一直都是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等等都可以),笔记本直接就可以启动,台式机需要用无线网卡咯(淘宝整一个呗,几十块钱),创建完,手机连上去就完事儿了~(这些主要是给完全没基础的人分享的,知道的人忽略就好了)
3、网卡选择
wireshark启动后默认是混杂模式,也就是会抓取所有流量,因为一台电脑会有多个网卡等情况,我们需要找到特定网卡,甚至特定ip的流量所以需要做一下筛选,第一步也就是确定我们app连接的wifi对应的是哪张网卡(如果你连免费wifi对应的网卡是哪张也找不到~那你留言吧~就不展开说了),如图:
打开wireshark,点击捕获-->选项(Capture -> Option),勾选对应的网卡,搞定!(一部分~)
4、拦截数据
启动拦截,数据如下:
发现没有,数据基本都是从192.168.191.2·····,因为我手机ip是这个啊~~嘿嘿~~
再说一下,这么数据如何筛选
可以在过滤器输入命令进行筛选,常用的命令如下:
过滤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这个东西我也没怎么用过,也是因为业务场景需要才用到,所以首先要知道这玩意儿有啥用处,才能到需要的时候,马上掏出来,不然连解决问题的方向都找不到~~