Wireshark—捕获数据包

一、学习导图

二、使用捕获文件

1、保存和导出捕获文件

  (1)保存,选择【File—>Save As】。文件格式,.pcap。另外,还有一个功能,可以指定需要保存的数据包范围,可以选择只保存一定序号范围内数据包、标记了数据包、或者经过过滤筛选后显示出来的数据包等。

  (2)导出,选择【File—>Export】。可导出的格式为,文本文件、PostScript、逗号分隔值(CSV)、XML。

2、合并捕获文件

  首先打开一个想要合并的文件,然后选择【File—>Merge】,再选择希望合并到当前文件的另一个文件,再选择希望进行合并的方式。

三、分析数据包

1、查找

  找到符合特定条件的数据包,按Ctrl+F打开Find Packet对话框

  用来查找数据包的搜索类型:

  (1)Display filter:not ip/ip.addr==192.168.1.1/arp

  (2)Hex value:00:ff/fff:ff/00:AB:B1:f0

  (3)String:Workstation1/UserB/domain

 注意:单击Find,就会找到满足关键词的第一个数据包,Ctrl+N找到下一个满足关键词的数据包,Ctrl+B找到前一个满足关键词的数据包。

2、标记

  鼠标右击Packet List面板,在弹出菜单中选择Mark Packet,或者在Packet List面板中选中一个数据包,然后按Ctrl+M。再一次按Ctrl+M则就取消标记。

  如果想在标记的数据包中间前后切换,分别按shift+ctrl+N和shift+ctrl+B。

3、打印

  打印,选择【File—>Print】。有格式的选择,也可以按一定的范围打印数据包,或者作为过滤器筛选结果显示出来的数据包。

四、设定时间显示格式和相对参考

1、时间显示格式

  与时间相关的选项在主菜单中的View菜单中找到。

2、数据包的相对时间参考

  以一个数据包作为基准,之后的数据包都以此计算相对时间戳。当一系列的顺序事件不是在捕获开始时被触发,而是在中间某个地方被触发,这个功能非常好用。

  某一个数据包设定为时间参考:在Packet List面板中选择作为相对参考的数据包,然后在主菜单中选择【Edit—>Set Time Reference】。被设定的数据包的Time列会显示*REF*。

  注意:只有当捕获的时间显示格式设定为相对于捕获开始的时间,设定数据包时间参考才有用处。使用其他设定都不会生成有用的结果,并且其产生的一堆时间会使人困惑。

五、设定捕获项

六、使用过滤器

  过滤器可以找到所希望进行分析的数据包。也就是,一个过滤器就是定义了一个条件,用来包含或者排除数据包的表达式。

  Wireshark,主要提供两种过滤器,捕获过滤器显示过滤器

1、捕获过滤器

  (1)定义:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。

  (2)捕获过滤器的BPF语法:由于大部分的数据包嗅探软件都依赖于使用BPF的libpcap/WinPcap库,Berkeley Packet Filter(BPF)语法广泛应用于多种数据包嗅探软件。使用BPF语法创建的过滤器被称为表达式,并且每个表达式包含一个或多个原语,每个原语包含一个或多个限定词,然后跟着ID名字或者数字。BPF限定词如下:

限定词 说明 例子
Type 指出名字或数字所代表的意义 host/net/port
Dir 指明传输方向是前往还是来自名字或数字 src/dst
Proto 限定所要匹配的协议 ether/ip/tcp/udp/http/ftp

  例:dst  host  192.168.1.2  &&  tcp  port  80

  (3)主机名和地址过滤器

    a.基于IPV4.IPV6地址的host限定词过滤:host  172.16.16.111  或  host  2001:db8:85a3:8a2e:370:7334

    b.基于一台设备的主机名host限定词过滤:host  testserver1

    c.MAC地址进行过滤:ether  host  00-1a-a0-52-e2-a0

    d.对源/目的主机流量:src/dst  host   172.16.16.111

  (4)端口和协议的过滤器

    a.port  8080  

    b.!port  8080

    c.dst  port  8080

  (5)协议过滤器

  (6)协议域过滤器

    a.icmp[0]==3的含义:类型域位于icmp包的最开头,即就是偏移量为0的位置,将返回一个1字节的整数值进行比较,类型3代表目标不可达

    b.icmp[0:2]==0x0301的含义:创建一个检查数据包头部偏移量为0处2个字节数据的过滤器,并与16进制值0301(类型3,代码1)进行比较

    c.tcp[13]&4==4的含义:指定希望在这个tcp[13]这个字节中检查的第4个比特位置

  (7)捕获过滤器表达式样例

过滤器 说明
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地址的流量
!ether host 00:00:00:00:00:00 不流入或流出你的MAC地址的流量
broadcast 仅广播流量
icmp ICMP流量
icmp[0:2]==0x0301 ICMP目标不可达、主机不可达
ip 仅IPV4流量
ip6 仅IPV6流量
udp 仅UDP流量

2、显示过滤器

  显示过滤器应用于捕获文件,只显示那些符合过滤条件的数据包。

  (1)过滤器表达式对话框,Capture Option对话框中单击Capture Filter按钮,再单击Expression按钮

  (2)过滤器表达式语法结构

    a. ip.addr==192.168.1.1——只显示192.168.1.1这个ip地址相关数据包的过滤器

    b. frame.len<128——查看长度小于128字节的数据包

  (3)显示过滤器表达式样例

过滤器 说明
!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 文本管理流量
smtp||pop||imap 文本email流量

3、保存过滤器

版权声明:本文为15310520420-Mystart原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/15310520420-Mystart/articles/13046925.html