GNU开发工具——WireShark网络分析工具(网络协议分析工具Wireshark的使用)

网友投稿 499 2022-09-13


GNU开发工具——WireShark网络分析工具(网络协议分析工具Wireshark的使用)

GNU开发工具——WireShark网络分析工具

一、WireShark网络分析工具简介

1、WireShark简介

Wireshark是目前全球使用最广泛的开源网络封包分析软件(前身为Ethereal),由Gerald Combs编写并于1998年以GPL开源许可证发布。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

2、WireShark架构

3、libpcap简介

WireShark使用libpcap/WinPCAP作为接口,直接与网卡进行数据报文交换。libpcap(Packet Capture Library),即数据包捕获函数库,是Unix/Linux平台下的网络数据包捕获函数库,是一个独立于系统的用户层包捕获的API接口,为底层网络监测提供了一个可移植的框架。WinPcap是一个专为Windows系统设计的、基于libpcap的库。地址:file的读写的代码被提取出来成为libpcap,由tcpdump项目的开发者维护。libpcap主要由两部份组成:网络分接头(Network Tap)和数据过滤器(Packet Filter)。网络分接头从网络设备驱动程序中收集数据拷贝,过滤器决定是否接收该数据包。Libpcap利用BSD Packet Filter(BPF)算法对网卡接收到的链路层数据包进行过滤。BPF算法的基本思想是在有BPF监听的网络中,网卡驱动将接收到的数据包复制一份交给 BPF过滤器,过滤器根据用户定义的规则决定是否接收此数据包以及需要拷贝该数据包的哪些内容,然后将过滤后的数据给与过滤器相关联的上层应用程序。libpcap的包捕获机制就是在数据链路层加一个旁路处理。当一个数据包到达网络接口时,libpcap首先利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF过滤器。BPF过滤器根据用户已经定义好的过滤规则对数据包进行逐一匹配,匹配成功则放入内核缓冲区,并传递给用户缓冲区,匹配失败则直接丢弃。如果没有设置过滤规则,所有数据包都将放入内核缓冲区,并传递给用户层缓冲区。

二、WireShark快速抓包

1、WireShark主窗口

2、网卡接口选择

3、快速抓包

4、停止抓包

三、WireShark显示设置

1、显示设置

2、列设置

3、时间设置

4、名字解析

四、WireShark数据包操作

1、标记数据包

2、注释数据包

3、合并数据包

4、导出数据包

五、WireShark参数设置

1、首选项设置

2、抓包选项设置

六、WireShark过滤器

1、抓包过滤器

通过BPF(Berkeley Packet Filter)语法选择性抓取某些特定条件的数据包。类型:host、net、port方向:src、dst协议:ether、ip、tcp、udp、http、ftp逻辑运算符:与(&&)、或(||)、非(!)A、ethernet过滤器第二层过滤器,根据mac地址来进行过滤

ether host XX:抓取源和目的为指定的mac的以太网帧   ether dst XX:抓取目的为指定mac的以太网帧   ether src XX:抓取源为指定mac的以太网帧   ether broadcast:抓取所有以太网广播流量   ether multicast:抓取多播流量   ether proto :抓取指定协议的以太网流量,比如以太网类型为0x0800,ether proto 0800。以太网类型指的是以太网帧帧头的ether-type字段,表示上层的协议类型。0x0800为ipv4、0x86dd为ipv6、0x0806为arp。

ether host 00:88:ca:86:f8:0d ether src host 00:88:ca:86:f8:0d ether dst host 00:88:ca:86:f8:0d

B、主机和网络过滤器,第三层过滤器  ip或ipv6:抓取ipv4或ipv6流量

host :抓取源或目的为指定主机名(网址)或ip的流量   dst host :抓取目的为指定主机名(网址)或ip的流量   src host :抓取源为指定主机名(网址)或ip的流量   gateway :抓取穿越网关的流量,host必须是主机名。   net :抓取源或目的为指定网络号的流量,如:net 192.168.1或net 192.168.1.0   dst net :抓取目的为指定网络号的流量   src net :抓取源为指定网络号的流量   net  mask :抓取源或目的由net和mask共同指明的ipv4网络号的流量,ipv6流量无效。如:net 192.168.1.0 mask 255.255.255.0   dst net  mask :抓取目的由net和mask共同指明的ipv4网络号的流量,ipv6流量无效。   src net  mask :抓取源由net和mask共同指明的ipv4网络号的流量,ipv6流量无效。   net /:抓取源或目的为指定网络和长度的流量,如:net 192.168.1.0/24   dst net /:抓取目的为指定网络和长度的流量   src net /:抓取源为指定网络和长度的流量   broadcast:抓取ip广播包,通常如:ip broadcast   multicast: 抓取ip多播包   ip proto :抓取ip包头协议类型字段值等于特定值的数据包。如:tcp为6,udp为17,icmp为1   ip6 proto : 抓取ipv6包头中下一个包头字段值等于特定值的ipv6数据包。无法用该原词根据ipv6扩展包头链中的相关字段值执行过滤。   icmp [icmptype]==:抓取特定类型[icmptype]的icmp数据包,表示的是icmp头部中的类型字段值,如,0(icmp echo reply数据包)或8(icmp echo request数据包)等。如:icmp[icmptype]==icmp-echo 或 icmp[icmptype]==8   ip[2:2]==:抓取指定长度的ip数据包(number表示ip包头中的ip包总长度字段值)   ip[8]==:抓取具有指定ttl的ip数据包(number表示ip包头中的ttl字段值)   ip[9]==:抓取指定协议类型的ip数据包(number表示ip包头中的协议类型字段值)   ip[12:4]==ip[16:4]:表示数据包源和目的ip相同   注:中括号内的数字表示相关协议头部的内容,第一个数字指从协议头部的第几个字节开始关注,第二个数字表示所要关注的字节数。 host 192.168.1.1 src host 192.168.1.1 dst host 192.168.1.1

C、tcp和udp及端口过滤,第四层 过滤器

port :匹配port指明的端口号,如:port 80或port http   dst port :目的端口号为指定的端口号   src port :源端口号为指定的端口号   tcp portrange -或udp portrange -:用来抓取端口范围介于p1和p2之间的tcp或udp数据包  。 tcp src portrange -或udp dst portrange -  。 tcp [tcpflags] & (tcp-syn|tcp-fin)!=0:抓取tcp连接中用来发起连接(syn标记位置1)或终止连接(FIN标记位置1)的数据包 。 tcp [tcpflags] &(tcp-rst)!=0:抓取所有RST标记位置1的TCP数据包,RST标记位用来立刻拆除连接,PSH用来表示将数据提交给末端进程处理。   less :抓取不长于指定长度的数据包,写法等价于:len <=    greater :抓取不短于标识符指定的长度的数据包,写法等价于:len >=    tcp portrange 2000-2500:抓取端口在这个范围内的tcp数据包 。 tcp[13] & 0x00=0:抓取所有标记位都未置1的tcp流量(在怀疑遭遇空扫描攻击时使用) 。 tcp[13] & 0x01=1:抓取FIN位置1,但ACK位置0的TCP流量   tcp[13] & 0x03=3:抓取SYN和FIN位同时置1的TCP流量   tcp[13] & 0x05=5:抓取RST和FIN位同时置1的TCP流量   tcp[13] & 0x06=6:抓取SYN和RST位同时置1的TCP流量   tcp[13] & 0x08=8:抓取PSH位置1,但ACK位置0的TCP流量   13指代TCP头部中的标记字段,‘=’号后面数字表示tcp标记位的置位情况。0表示标记位都没置1,1表示FIN位置1,但ACK位置0,1+2表示SYN和FIN位同时置1,1+4表示RST和FIN同时置1,2+4表示SYN和RST同时置1,8表示PSH位置1,但ACK置0.   port 80 ! port 80 dst port 80 src port 80

2、显示过滤器

将抓取的数据包通过显示过滤器过滤出某些特定的数据包。逻辑操作符:and、or、xor、not比较操作符:==、!=、>、<、>=、<=IP地址:ip.addr、ip.src、ip.dst端口:tcp.port、tcp.srcport、tcp.dstport、tcp.flag.syn、tcp.flag.ack协议:arp、ip、icmp、tcp、udp、dns过滤IP地址:

ip.addr == 192.168.1.1 ip.src == 192.168.1.1 ip.dst == 192.168.1.1 ip.src == 192.168.1.100 and ip.dst == 58.250.135.156

过滤端口:

tcp.port == 80 tcp.srcport == 80 tcp.dstport == 80 tcp.flag.syn == 1

过滤协议:

arp tcp udp not == 192.168.1.100 and tcp.dstport == 80 ip.addr == 192.168.1.106 and udp.port == 4000

七、WireShark高级功能

1、数据流追踪

2、专家信息

3、统计摘要信息

4、协议分层统计

5、网络节点统计

6、网络会话统计

7、数据包长度统计

8、图表分析


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HTTP协议详解
下一篇:Wireshark抓包找不到接口(wireshark抓不到包怎么办)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~