Wireshark是网络抓包工具,该软件的界面还是蛮简洁的,它可以随时检测网络数据,帮助网络工程师对网络进行分析,是款非常不错的网络辅助软件,有需求的用户们千万不要错过哦!
软件介绍
Wireshark款电脑抓包软件,它可以实现网络封包功能,通过各项数据帮助工程师对网络进行分析,有效抓取网络通讯数据快照,帮助网络工程师来检测出信息安全的相关问题。同时这款软件不会对网络数据内容进行修改,这样就能防止被修改后找不到问题的情况。
该版本适用于32位和64位的, 初学者可以通过学习相关的网络协议知识,它能够通过捕获数据来进行过滤,不会受到其他数据的干扰,帮助用户来节省时间。当传输文件比较大的时候,还能够进行多个数据包的传输,提高整体的效率!
软件特色
Wireshark拥有许多强大的特性:
包含有强显示过滤器语言(rich display filter language)和查看TCP会话重构流的能力;
它更支持上百种协议和媒体类型:
拥有一个类似tcpdump(一个Linux下的网络协议分析工具)的名为tethereal的的命令行版本。
在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。
Ethereal的出现改变了这一切。
在GNU GPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其程式码,并拥有针对其原始码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。
怎么抓包
开始界面
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。
点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包
Wireshark 窗口介绍
WireShark 主要分为这几个界面
1. Display Filter(显示过滤器), 用于过滤
2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表
3. Packet Details Pane(封包详细信息), 显示封包中的字段
4. Dissector Pane(16进制数据)
5. Miscellanous(地址栏,杂项)
使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。
过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
过滤器有两种,
一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录
一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置
保存过滤
在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102",
Filter栏上就多了个"Filter 102" 的按钮。
过滤表达式的规则
表达式规则
1. 协议过滤
比如TCP,只显示TCP协议。
2. IP 过滤
比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102,
ip.dst==192.168.1.102, 目标地址为192.168.1.102
3. 端口过滤
tcp.port ==80, 端口为80的
tcp.srcport == 80, 只显示TCP协议的愿端口为80的。
4. Http模式过滤
http.request.method=="GET", 只显示HTTP GET方法的。
5. 逻辑运算符为 AND/ OR
常用的过滤表达式
封包列表(Packet List Pane)
封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。
你也可以修改这些显示颜色的规则, View ->Coloring Rules.
封包详细信息 (Packet Details Pane)
这个面板是我们最重要的,用来查看协议中的每一个字段。
各行信息分别为
Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version 4: 互联网层IP包头部信息
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
TCP包的具体内容
从下图可以看到wireshark捕获到的TCP包中的每个字段。
看到这, 基本上对wireshak有了初步了解, 现在我们看一个TCP三次握手的实例
三次握手过程为
这图我都看过很多遍了, 这次我们用wireshark实际分析下三次握手的过程。
打开wireshark, 打开浏览器输入 h t t p : / / w w w . c r 1 7 3 .c o m
在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",
这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。
第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
就这样通过了TCP三次握手,建立了连接
过滤规则
1、打开wireshark,先抓取一定数量的包,其中就包含你需要的数据包,要过滤出来,进行分析寻找问题
2、打开wireshark的帮助文档,如下图所示,是全英文的,不会的话就要去查和翻译了
3、在弹出的帮助文档页面上,如下图所示,找到wireshark的内容过滤的规则语法,所有的协议过滤都是如此,提供了基本的中括号运算符 “[]”进行内容的提取和判断
4、如果基本的英文不了解,可以打开百度翻译,一个一个单词查询翻译了,其实也不需要全部弄明白,看到那些基本的语法,基本的意思也可以猜出来
5、下面来个简单的实例,进行udp包的内容过滤规则,如下图所示,我要过滤
ip地址为xx.xx.xx.xx 并且 是udp包的 并且 udp的数据前面4个字节等于0x02:0x37:0x2d:0x01 的数据包
ip.addr==xx.xx.xx.xx && udp && udp[8:4] == 02:37:2d:01
6、然后所有与之符合的数据包都被过滤出来了,像这种过滤规则也可以用于tcp,ftp,http等其它协议
7、本经验文章主要是教会朋友如何查看文档,使用帮助文档解决wireshark遇到的问题,像上面的内容过滤其实还有很多有趣的功能,大家可以继续深入了解一下
使用教程
下面来说一下Wireshark在抓包后常用的过滤方法,给网络初学者一个参考。
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。
基本设置
常用捕获过滤器:
tcp[13]&32==32 (设置了URG位的TCP数据包)
tcp[13]&16==16 (设置了ACK位的TCP数据包)
tcp[13]&8==8 (设置了PSH位的TCP数据包)
tcp[13]&4==4 (设置了RST位的TCP数据包)
tcp[13]&2==2 (设置了SYN位的TCP数据包)
tcp[13]&1==1 (设置了FIN位的TCP数据包)
tcp[13]==18 (TCP SYN-ACK 数据包)
ether host 00:00:00:00:00:00 (流入或流出MAC地址的流量,替换为你的mac)
!ether host 00:00:00:00:00:00 (不流入或流出MAC地址的流量,替换为你的mac)
broadcast (仅广播流量)
icmp (ICMP流量)
icmp[0:2]==0x0301 (ICMP目标不可达、主机不可达)
ip (仅IPv4流量)
ip6 (仅IPv6流量)
udp (仅UDP流量)
常用显示过滤器:
!tcp.port==3389 (排除RDP流量)
tcp.flags.syn==1 (具有SYN标志位的TCP数据包)
tcp.flags.rst==1 (具有RST标志位的TCP数据包)
!arp (排除ARP流量)
http (所有HTTP流量)
tcp.port==23||tcp.port ==21 (FTP或telnet)
smtp||pop||imap (smtp、pop或imap)
常见问题
1.Wireshark可以使用哪些设备来捕获数据包?
答:Wireshark可以读取以太网,令牌环,FDDI,串行(PPP和SLIP)的实时数据(如果它运行的操作系统允许Wireshark这样做),802.11无线局域网(如果它运行的操作系统允许Wireshark)要做到这一点),ATM连接(如果它运行的操作系统允许Wireshark这样做),以及最近版本的libpcap在Linux上支持的“任何”设备。
2.我安装了Wireshark RPM(或其他软件包); 为什么安装TShark而不是Wireshark?
答: 许多发行版都有单独的Wireshark软件包,一个用于非GUI组件,如TShark,editcap,dumpcap等,另一个用于GUI。如果您的系统出现这种情况,可能会有一个名为的单独软件包wireshark-qt。找到并安装它。
3.当我尝试运行Wireshark时,为什么抱怨 sprint_realloc_objid未定义?
答: Wireshark只能与版本4.2.2或更高版本的UCD SNMP链接。你的Wireshark版本与这种版本的UCD SNMP动态链接; 但是,您安装了较旧版本的UCD SNMP,这意味着当运行Wireshark时,它会尝试链接到旧版本,并失败。您必须使用4.2.2版或更高版本替换该版本的UCD SNMP。
其他版本
Wireshark有适用于32位和64位的版本,用户们可以根据自己的需求来进行下载,我们也提供了其他的版本号,用户们可以根据自己的配置来进行选择。
更多版本号 | |||
Wireshark 1.12版 | WiresharkV2.6.5(绿色版) | Wireshark v2.6.4 | Wireshark64位 V2.6.5 |
相关版本
装机必备软件
网友评论