如果你要问哪款网络抓包产品最专业,最好用?那么小编一定强烈推荐你试试这款号称目前全世界最出色网络封包分析之一的软件——
wireshark官方版,其作为网络分析行业领域中的常树青,不仅拥有着领先的捕获并解码网络上的数据技术、以及超强显示过滤器语言、查看TCP会话重构流的能力等功能,通过使用WinPCAP作为接口可直接与网卡进行数据报文交换,从而让用户实现一键轻松撷取网络封包的操作。并且此版本还主要是兼容于32位的PC系统,不但安装简单,功能免费,拥有着流畅的操作,使大家安装后可通过它来实时检测网络通讯数据,检测其抓取的网络通讯数据快照文件。同时还可通过图形界面浏览这些数据,并查看网络通讯数据包中每一层的详细内容。通俗点来说就是将其像成 "电工技师使用电表来量测电流、电压、电阻" 的工作一样。只是将场景移植到网络上,并将电线替换成网络线,让大家可免费拥有或取得软件与其源代码,并针对其源代码修改及客制化的权利。相对而言会比较适用于网络管理和安全工程等行业领域的朋友,为大家提供有关故障排除,保护,分析和维护的高效网络基础架构、以及最佳实践的教育工具。感兴趣的朋友赶紧来下载试试吧!
软件特色
1、支持的操作系统
软件对主流的操作系统都提供了支持,其中包括Windows、MacOSX以及基于Linux的系统。
2、使用捕获过滤器
通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
3、选择捕获接口
一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
4、重组数据
Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。
5、免费
由于软件是开源的,它在价格上面是无以匹敌的,软件是遵循GPL协议发布的自由软件,任何人无论出于私人还是商业目的,都可以下载并且使用。
6、用户友好度
软件的界面是数据包嗅探工具中最容易理解的工具之一。基于GUI,并提供了清晰的菜单栏和简明的布局
软件功能
1、对数百个协议进行深度检查,并一直在添加更多协议
2、实时捕捉和离线分析
3、标准三窗格数据包浏览器
4、多平台:在 Windows、Linux、macOS、Solaris、FreeBSD、NetBSD 和许多其他平台上运行
5、可以通过 GUI 或通过 TTY 模式 TShark 实用程序浏览捕获的网络数据
6、业内最强大的显示过滤器
7、丰富的VoIP分析
8、读取/写入许多不同的捕获文件格式:tcpdump (libpcap)、Pcap NG、Catapult DCT2000、Cisco Secure IDS iplog、Microsoft Network Monitor、Network General Sniffer®(压缩和未压缩)、Sniffer® Pro 和 NetXray®、Network Instruments Observer , NetScreen snoop, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek 等
9、使用 gzip 压缩的捕获文件可以即时解压缩
10、可以从以太网、IEEE 802.11、PPP/HDLC、ATM、蓝牙、USB、令牌环、帧中继、FDDI 等(取决于您的平台)读取实时数据
11、对许多协议的解密支持,包括 IPsec、ISAKMP、Kerberos、SNMPv3、SSL/TLS、WEP 和 WPA/WPA2
12、可将着色规则应用于数据包列表,以进行快速、直观的分析
13、输出可以导出为 XML、PostScript®、CSV 或纯文本
wireshark使用教程入门
1、功能
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark.
2、选择网卡
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041430477810.jpg)
3、窗口介绍:
WireShark 主要分为这几个界面
3.1 Display Filter(显示过滤器), 用于过滤
3.2 Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表不同的类型
3.3 Packet Details Pane(封包详细信息), 显示封包中的字段
3.4 Dissector Pane(16进制数据)
3.5 Miscellanous(地址栏,杂项)
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041435451697.jpg)
如何捕获数据包
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041435428919.jpg)
4、过滤器
使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
4.1 过滤器有两种,一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录,一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。在Capture -> Capture Filters 中设置,保存过滤。
4.2 新建过滤器,在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 10",
4.3 过滤表达式的规则
4.3.1 协议过滤
比如TCP,只显示TCP协议。
4.3.2 IP 过滤
比如 ip.src =192.168.1.102 显示源地址为192.168.1.102,
ip.dst=192.168.1.102, 目标地址为192.168.1.102
4.3.3 端口过滤
tcp.port =80, 端口为80的
tcp.srcport = 80, 只显示TCP协议的愿端口为80的。
4.3.4 Http模式过滤
http.request.method==“GET”, 只显示HTTP GET方法的。
4.3.5 逻辑运算符为 AND/ OR
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041433167883.jpg)
5、捕获结果分析
5.1 着色规则
在菜单“视图-着色规则”下查看
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg20220104143100960.jpg)
5.2 数据包结构
第一行:数据包整体概述,
第二行:链路层详细信息,主要的是双方的mac地址。
第三行:网络层详细信息,主要的是双方的IP地址。
第四行:传输层的详细信息,主要的是双方的端口号。
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041432408917.jpg)
5.3 tcp数据包
标志位对应的功能:
URG:紧急指针( urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文段交给应用层。
RST:重建连接。
SYN:同步序号用来发起一个连接。
FIN:发端完成发送任务。
窗口大小:用于流量控制。
检验和:检验和覆盖了整个的 TCP报文段: TCP首部和TCP数据,与udp相似需要计算伪首部。
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041432189921.jpg)
tcp数据包结构及在wireshark中的位置
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041432064903.jpg)
6、Tcp三次握手分析
客户端->服务器:发送标识为SYN=1、随机产生的客户端序号seq(发送序号)
服务器->客户端:发送标识为SYN=1、ACK=1、第一步产生的客户端序号seq+1(确认序号)、随机产生的服务端序号seq
客户端->服务器:第一步产生的客户端序号seq+1(发送序号)、第二步产生的服务端序号seq+1(确认序号)、ACK=1
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041432022025.jpg)
三次数据包
其中[SYN]意为SYN位为1(如果没有,则表示为0)。同理如果[]中有ACK,表示ACK位为1
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041431376739.jpg)
6.1 第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041431294363.jpg)
6.2 第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041431235756.jpg)
6.3 第三次握手的数据包
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
![](https://dd.xueciyuan.com/102/xueciyuancom/soft/51/202407/wiresharkg202201041431206810.jpg)
就这样通过了TCP三次握手,建立了连接
过滤命令
1、过滤源ip、目的ip
在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1
2、端口过滤
如过滤80端口,在Filter中输入,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包
3、协议过滤
直接在Filter框中直接输入协议名即可,如过滤HTTP的协议
4、http模式过滤
如过滤get包,http.request.method=="GET",过滤post包,http.request.method=="POST"
5、连接符and的使用
过滤两种条件时,使用and连接,如过滤ip为192.168.101.8并且为http协议的,ip.src==192.168.101.8 and http