首页 > 代码库 > Wireshark数据包分析(一)——使用入门

Wireshark数据包分析(一)——使用入门

Wireshark简介:

Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一。在SecTools安全社区里颇受欢迎,曾一度超越Metasploit、Nessus、Aircrack-ng等强悍工具。该软件在网络安全与取证分析中起到了很大作用,作为一款网络数据嗅探与协议分析器,已经成为网络运行管理、网络故障诊断、网络应用开发与调试的必用工具。

 查找数据包:

按ctrl+N打开查找对话框

 

可以看到有三种查询条件:

  • Display filter 通过表达式进行筛选,其功能强大,后面有具体介绍,如ip.addr==192.168.1.23
  • Hex value 通过十六进制对数据包进行筛选,如00:ff
  • String 通过字符串进行查找,如passwd

按ctrl+N向下查找,按ctrl+B向前查找。其实wireshark的使用说明已经做的非常非常的人性化的,它的所有设置窗口都有在线的帮助说明,上面是左下角的“Help”就是。而且是英文的,那么问题来了,你是到底啥不懂呢?

标记数据包:

在Packet List中选中一个数据包,右键选择Mark Packet就可以将该数据包标记,标记后该数据包会高亮显示。快捷键是选中一个数据包,按ctrl+M,取消标记同样是ctrl+M,

在多个被标记的数据之间切换可用shift+ctrl+N、shift+ctrl+B。

捕获设置:

启动Wireshark后,在左边的网络接口里的Capture Optiion可以用来设置各种数据包抓取规则。

  • 在‘1’处设置网络接口,可以选择一个接口双击,弹出该接口的具体设置信息(如下图)。这里可以设置是否开启混杂模式,是否以pcap-ng格式捕获数据包,以及按字节数限制每个捕获数据包的大小。

  • 在‘3’捕获文件的设置:这里提供了过滤规则,各种触发器(基于文件大小或时间),其中的Ring Buffer With选项可以设置环形缓冲创建文件,采用FIFO原则,只保留所设定的文件数目,从而只会捕获指定的数据包数,不会因为大量数据包占用大量空间。
  • 在‘4’停止捕获:同样的,可以以文件大小、时间或者数据包数目为触发条件,停止数据包捕获。
  • 在‘5’显示设置的相关设置。注意实时显示会增加CPU负荷,可以取消该项。
  • 在‘6’名字解析.MAC地址解析,尝试将数据链路层的MAC地址解析成网络层的IP,如果解析失败,则会按MAC地址前三个字节转换成设定制造商的名称,如Netgear_01:02:03;网络名字解析:尝试使用DNS协议,将IP地址解析成主机名,注意这会产生格外的DNS流量;传输名字解析:尝试将端口号解析成与其相关的名字,如80端口转换成http显示。

过滤器:

过滤器算是高级的设置了,它可以按照设置的要求来捕获数据包,功能十分强大好用。Wireshark提供了两种数据包的过滤规则:

  • 捕获过滤:在数据包捕获时,按指定要求捕获相关数据包。
  • 显示捕获:Wireshark会捕获所有是数据包流量,可以按照设置条件来显示相关的数据包。

(1)捕获过滤

当处理的数据包较大或者需要捕获指定的数据包时,可以采用这种设置。其设置在上图是Capture Filter里可以设置。

捕获所使用的BPF(Berkeley Packet Filter)语法表达式:

host、net、port名字或是数字
src、dst传输方向
ether、ip、tcp、udp、http、ftp匹配的协议

 

 

 

三种逻辑运算符:

  • 与 (&&) 连接运算符
  • 或 ( || ) 选择运算符
  • 非 (!) 否定运算符

通过BPF限定词与逻辑运算符可以组合出很多高级实用的过滤规则。例如:

  • host 192.168.1.23  //捕获所有与192.168.1.23主机的IPV4流量
  • host fe80::2ad0:5aff:fe6f:92b0   //捕获所有与fe80::2ad0:5aff:fe6f:92b0主机的IPV6流量
  • host server1  //捕获所有与server1主机流量
  • ether host 00-8a-23-e3-d2-df  //基于MAC地址过滤
  • src host 192.168.1.20  && port 80  //捕获来自192.168.1.2的80端口流量
  • dst 192.168.1.20 //捕获发送到192.168.1.20的流量
  • !port 8080  //捕获非8080端口的流量
  • icmp  //只捕获ICMP流量
  • !ip  //只捕获ipv流量,ip6只捕获ipv6流量

(2)显示捕获

显示过滤可以在主菜单下面的过滤框里设置,在右边的“Expression”里列举了所有的协议及其可用的过滤规则,其设置功能十分强大灵。设置成功后会自动给出过滤表达式,对于熟悉的使用者,可以直接使用过滤表达式来筛选。

相关比较操作符:

==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

 

 

 

 

 

逻辑操作符:

and两个条件同时满足
or其中一个条件满足
xor有且仅有一个条件满足
not没有条件满足

 

 

 

相关表达式实例:

  • ip.addr==192.168.1.10 or ip.addr==192.168.1.11
  • !tcp.port==3389
  • tcp.flags.syn==1
  • !dns
  • https
  • tcp.port==23 || tcp.port==22
  • smtp || pop || imap

当然,对于常用的过滤表达式,可以保存起来一便再次使用,在主菜单的Capture->Capture Filters里有相关设置。

 

Wireshark数据包分析(一)——使用入门