本文转载自微信公众号「Java极客技术」,作者鸭血粉丝。转载本文请联系Java极客技术公众号。
前段时间,因为同事需要分析数据,所以使用了WireShark,但是呢,小伙子不太知道怎么抓取数据,于是就来询问了一下阿粉,阿粉就手把手的教给他,如何使用WireShark进行抓包分析,在这里也分享给大家。
1.什么是WireShark
WireShark实际上是有前身的,他的前身叫做Ethereal,它就是用于一个网络封包分析软件,也就是我们日常生活中俗称的抓包工具,而它最大的特点就是,能够尽可能多的显示出详细的网络封包资料,WireShark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
2.WireShark下载安装
先把网址给大家放上‘https://www.wireshark.org/’,下载网址在这里,
在这里给大家推荐,最好使用你们系统的对应版本,毕竟64位,就是64位,32位就是32位,不同的版本对应不同系统,不要想着兼容,你要知道,一个诡异问题的出现很可能导致你之前做的准备工作都浪费掉了。
大家如果感觉自己下载的慢的,可以在后台回复,抓包,WireShark,获取百度云的下载地址,
下载完成之后,安装,一路Next即可,但是注意,如果你想要切换安装的路径,那么路径最好都是英文的,哪怕你自己不嫌麻烦整个abc,那也比“抓包”两个字好,因为中文路径也是容易出现问题,而不同意被检测出来的。
等待安装完成,桌面出现logo即可,那么我们就点开来看看怎么使用的吧。
3.WireShark的使用
大家从图中就能看出,阿粉用的是笔记本,因为在图中的折线图中出现了波动,剩下都是虚拟网卡里面的内容,就像刚才阿粉说的,WireShark使用的WinPCAP作为接口,直接与网卡进行数据报文的交换,而大家看折线图上的名称,就有阿粉用来玩虚拟机的几个网卡。
找个WLAN试试看?
在WLAN的连接中,接口中的数据就会被WireShark成功捕获到,我们来分析一下这个里面都是有什么东西。
- Display Filter(显示过滤器), 用于过滤
- Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。颜色不同,代表
- Packet Details Pane(封包详细信息), 显示封包中的字段
- Dissector Pane(16进制数据)
- Miscellanous(地址栏,杂项)
我们在抓包的时候,肯定不能从这一大堆的封包数据中去寻找内容,肯定要进行过滤,大家可以从过滤器上搜索类型。
- arp 显示所有 ARP 数据包
- dns 显示所有 DNS 数据包
- ftp 显示所有 FTP 数据包
- http 显示所有 HTTP 数据包
- ip 显示所有 IPv4 数据包
- ipv6 显示所有 IPv6 数据包
- tcp 显示所有基于 TCP 的数据包
我们按照HTTP来进行抓包,就像下面这个样子。
我们看一下封包详细信息里面都有哪些内容。
- Frame 物理层的数据帧
- Ethernet II 数据链路层以太网帧头部信息
- Internet Protocol Version 4 网际层 IP 包头部信息
- Transmission Control Protocol 传输层的数据段头部信息
- Hypertext Transfer Protocol 应用层的信息,此处是 HTTP 协议
欧呦,Src很有意思呀,shenzhen_3a,还有目标的Mac地址,不错呦。
WireShark最需要学会的内容
也就是我们过滤器的规则,因为如果你要是对这个规则设置不好,你抓包的时候就不能精准的找到位置,进行分析。
我们总不能输入个HTTP,然后从里面去找吧,要学会效率工作。
比如我们知道IP地址,那么我们就能:
- ip.src == 192.168.1.8
我们知道端口号是 8080,那么我们就可以:
- tcp.port == 8080
再比如说我们处理HTTP里面的"Get"请求:
http.request.method=="GET" ,POST方法同样。
我们学习到这里,就已经算是能够进行WireShark的抓包行动了,大家有兴趣的可以用WireShark进行抓包分析,来分析之前阿粉所说的TCP的三次握手和四次挥手来进行校验,
地址送上:三次握手和四次挥手到底是个什么鬼东西?
文献参考
《WireShark官网DOC》