如何在linux上使用wireshark过滤器

Wireshark是在Linux、Windows和macOS上提供的世界级数据包分析器。它的过滤器是灵活和复杂的,但有时,违反直觉。我们会解释你需要注意的“问题”。...

Wireshark是在Linux、Windows和macOS上提供的世界级数据包分析器。它的过滤器是灵活和复杂的,但有时,违反直觉。我们会解释你需要注意的“问题”。

实比特数据包分析

Wireshark是开源世界的瑰宝之一。它是一个世界级的软件工具,被专业人士和业余爱好者用来调查和诊断网络问题。软件开发人员使用它来精确定位和描述通信例程中的错误。安全研究人员使用它来捕获和取消抓取网络上的恶意活动。

典型的工作流是以捕获模式运行Wireshark,因此它通过计算机上的一个网络接口记录网络流量。网络数据包在被捕获时实时显示。然而,正是在捕获后的分析中,网络中发生的细微细节才得以揭示。

捕获的数据包称为跟踪。当捕获完成后,跟踪可以一个包一个包地逐步完成。您可以最详细地检查任何数据包,绘制设备之间的网络“对话”,并使用过滤器从分析中包括(或排除)数据包。

Wireshark的过滤功能首屈一指,具有极大的灵活性和分辨率。它们的语法有一些微妙之处,使得编写一个过滤器并得到一个不符合您期望的结果变得很容易。

如果你不了解Wireshark中的过滤器是如何工作的,你就永远不会脱离第一档,限制软件的功能。

安装wireshark

安装Wireshark时,系统会询问使用非根帐户的用户是否应该能够捕获网络跟踪。对这件事说不可能是个吸引人的主意。你可能不希望每个人都能看到网络上发生了什么。但是,安装Wireshark以便只有具有root权限的用户才能使用它意味着它的所有组件都将以提升的权限运行。

Wireshark包含超过200万行复杂的代码,它以最低级别与您的计算机交互。最佳安全实践建议,应该尽可能少的代码以提升的权限运行,特别是当代码以如此低的级别运行时。

使用常规用户帐户运行Wireshark要安全得多。我们仍然可以限制谁有能力运行Wireshark。这需要一些额外的设置步骤,但这是最安全的方法。Wireshark的数据捕获元素仍将以提升的权限运行,但Wireshark的其余部分将作为正常进程运行。

要在Ubuntu上开始安装,请键入:

sudo apt-get install wireshark

如何在linux上使用wireshark过滤器

在软呢帽上,键入:

sudo dnf install wireshark

如何在linux上使用wireshark过滤器

在Manjaro上,使用以下命令:

sudo pacman -Syu wireshark-qt

如何在linux上使用wireshark过滤器

在安装过程中,您将看到下面的屏幕,建议您不要以root用户身份运行Wireshark。按Tab键将红色突出显示移动到“<确定>”,然后按空格键。

如何在linux上使用wireshark过滤器

在下一个屏幕上,按Tab键将红色突出显示移动到“”,然后按空格键。

如何在linux上使用wireshark过滤器

要运行Wireshark,您必须是安装期间创建的“Wireshark”组的成员。这允许您控制谁可以运行Wireshark。任何不在“wireshark”组的人都不能运行wireshark。

要将自己添加到“Wireshark”组,请使用以下命令:

sudo usermod -a -G wireshark $USER

要使新的组成员身份生效,您可以注销并重新登录,或使用以下命令:

newgrp wireshark

要查看您是否在新组中,请使用groups命令:

groups

如何在linux上使用wireshark过滤器

您应该在组列表中看到“wireshark”。

启动wireshark

您可以使用下面的命令启动Wireshark。符号&启动Wireshark作为后台任务,这意味着您可以继续使用终端窗口。您甚至可以关闭终端窗口,Wireshark将继续运行。

键入以下内容:

Wireshark &

如何在linux上使用wireshark过滤器

相关:如何在Linux上运行和控制后台进程

出现Wireshark界面。列出了计算机中的网络接口设备,以及一些内置的伪设备。

如何在linux上使用wireshark过滤器

接口旁边的波浪线表示它是活动的,网络流量正在通过它。扁平线表示界面上没有活动。此列表中的顶部项目是“enp0s3”,这是此计算机的有线连接,如预期的那样,它显示活动。

要开始捕获数据包,我们右键单击“enp0s3”,然后在上下文菜单中选择“start Capture”。

如何在linux上使用wireshark过滤器

您可以设置过滤器以减少Wireshark捕获的流量。在进行分析时,我们更喜欢捕捉一切,过滤掉任何我们不想看到的东西。这样,我们就知道所发生的一切都在痕迹中。您不希望不经意间错过一个网络事件,该事件解释了由于捕获过滤器而导致的您正在调查的情况。

当然,对于高流量网络,跟踪可能很快变得非常大,因此在这种情况下,捕获时进行过滤是有意义的。或者,也许你只是喜欢这样。

请注意,捕获过滤器的语法与显示过滤器的语法略有不同。

如何在linux上使用wireshark过滤器

上图中突出显示的图标从左到右表示以下内容:

  • 鱼翅:如果这是蓝色的,点击它将开始一个数据包捕获。如果Wireshark正在捕获数据包,这个图标将是灰色的。
  • 方块:如果这是红色,单击它将停止正在运行的数据包捕获。如果Wireshark没有捕获数据包,此图标将为灰色。
  • 带圆形箭头的鱼翅:如果是绿色,单击它将停止当前运行的跟踪。这使您有机会保存或丢弃捕获的数据包,并重新启动跟踪。如果Wireshark没有捕获数据包,此图标将为灰色。

分析痕迹

单击红方块图标将停止数据捕获,以便您可以分析跟踪中捕获的数据包。数据包按时间顺序显示,并根据数据包的协议进行颜色编码。突出显示的数据包的详细信息显示在Wireshark界面的两个下方窗格中。

如何在linux上使用wireshark过滤器

让Wireshark为数据包的源和目标IP地址提供有意义的名称是使读取跟踪更容易的一种简单方法。为此,请单击“查看”>“名称解析”,然后选择“解析网络地址”

Wireshark将尝试解析发送和接收每个数据包的设备的名称。它不能识别每一个设备,但它能识别的设备将帮助你读取跟踪。

如何在linux上使用wireshark过滤器

向左滚动显示屏将在右侧显示更多列。info列显示Wireshark可以从数据包中检测到的任何信息。在下面的示例中,我们看到一些ping请求和响应。

如何在linux上使用wireshark过滤器

默认情况下,Wireshark会按追踪数据包的顺序显示所有数据包。许多设备同时来回发送数据包。这意味着两个设备之间的单个会话可能会有来自其他设备的数据包在它们之间交错。

要检查单个会话,可以通过协议将其隔离。每个数据包的协议显示在协议列中。您将看到的大多数协议都属于TCP/IP系列。您可以指定确切的协议或使用以太网作为catchall。

右键单击要检查的序列中的任何数据包,然后单击对话过滤器>以太网。在下面的示例中,我们选择了一个ping请求包。

如何在linux上使用wireshark过滤器

由于Wireshark自动生成了一个过滤器,因此显示的数据包序列之间没有其他数据包。它显示在过滤器栏中并以绿色突出显示,这表示过滤器的语法是正确的。

要清除过滤器,请单击过滤器栏上的“X”。

创建自己的过滤器

让我们在过滤器栏中放置一个简单的过滤器:

ip.addr == 192.168.4.20

这将选择IP地址为192.168.4.20的设备发送或接收的所有数据包。注意双等号(==)之间没有空格。

如何在linux上使用wireshark过滤器

要查看设备(源)发送的数据包,可以使用ip.src公司;要查看到达设备(目的地)的数据包,可以使用ip.dst公司,如下图:

ip.dst == 192.168.4.20 && ip.src == 192.168.4.28

如何在linux上使用wireshark过滤器

请注意,使用双符号和(&)表示逻辑“和”。此筛选器查找从192.168.4.28到达192.168.4.20的数据包。

刚接触Wireshark过滤器的人通常认为这样的过滤器可以捕获两个IP地址之间的所有数据包,但事实并非如此。

它实际做的是过滤所有进出IP地址192.168.4.20的数据包,而不管它们来自何处或发送到何处。它对来自IP地址192.168.4.28的所有数据包执行相同的操作。更简单地说,它过滤进出任一IP地址的所有流量。

你也可以在其他协议上寻找活动。例如,您可以键入此筛选器来查找HTTP请求:

http.request

如何在linux上使用wireshark过滤器

要排除来自或发送到设备的数据包,请使用感叹号(!)并将筛选器括在括号[()]中:

!(ip.addr == 192.168.4.14)

此筛选器排除发送到192.168.4.14或从192.168.4.14发送的所有数据包。

如何在linux上使用wireshark过滤器

这是违反直觉的,因为过滤器包含相等运算符(=)。您可能会希望键入以下筛选器:

ip.addr !=192.168.4.14

然而,这是行不通的。

您还可以按协议在数据包中搜索字符串。此筛选器搜索包含字符串“youtube”的传输控制协议(TCP)数据包:

tcp contains youtube

如何在linux上使用wireshark过滤器

寻找重传的过滤器是检查是否存在连接问题的有用方法。重传是由于在初始传输过程中损坏或丢失而重新发送的数据包。太多的重新传输表示连接速度慢或设备响应速度慢。

键入以下内容:

tcp.****ysis.retran**ission

生、生、死和加密

当一个设备与另一个设备接触并发送SYN(同步)数据包时,两个设备之间的网络连接就会启动。然后,接收设备发送ACK(确认)包。它通过发送SYN包来指示是否接受连接。

SYN和ACK实际上是同一个包中的两个标志。原始设备通过发送ACK来确认SYN,然后这些设备建立网络连接。

这称为三方握手:

A -> SYN -> B A <- SYN, ACK <- B A -> ACK -> B

在下面的截图中,有人在电脑上“nostromo.本地与计算机“ubuntu20-04.local”建立安全Shell(SSH)连接。三方握手是两台计算机之间通信的第一部分。注意,包含SYN包的两行是用深灰色编码的。

如何在linux上使用wireshark过滤器

滚动显示屏以显示右侧的列将显示SYN、SYN/ACK和ACK握手数据包。

如何在linux上使用wireshark过滤器

您将注意到两台计算机之间的数据包交换在TCP和SSH协议之间交替进行。数据包通过加密的SSH连接传递,但消息包(如ACK)通过TCP发送。我们将很快过滤掉TCP数据包。

当不再需要网络连接时,它将被丢弃。中断网络连接的数据包序列是一个四路握手。

一方发送FIN(finish)包。另一端发送一个ACK来确认FIN,然后还发送一个FIN来表示它同意应该断开连接。第一方发送一个它刚刚接收到的FIN的ACK,然后拆除网络连接。

下面是四方握手的样子:

A -> FIN -> B A <- FIN, ACK <- B A -> ACK -> B

有时,原始的FIN在一个无论如何都要发送的ACK包上,如下所示:

A -> FIN, ACK -> B A <- FIN, ACK <- B A -> ACK -> B

这个例子就是这样。

如何在linux上使用wireshark过滤器

如果我们只想看到这个会话的SSH通信量,我们可以使用指定该协议的过滤器。我们键入以下内容以查看使用SSH协议进出远程计算机的所有通信量:

ip.addr == 192.168.4.25 && ssh

这会过滤掉192.168.4.25之间除了SSH通信以外的所有内容。

如何在linux上使用wireshark过滤器

其他有用的过滤器模板

在筛选栏中键入筛选时,它将保持红色,直到筛选语**确为止。当过滤器正确且完整时,它将变为绿色。

如果键入协议(如tcp、ip、udp或shh),后跟句点(.),则会出现一个菜单。它将列出包含该协议的最新筛选器,以及该协议名称的筛选器中可以使用的所有字段。

例如,对于ip,您可以使用ip地址, ip.校验和, ip.src公司, ip.dst公司, ip.id号, ip主机,还有几十个。

使用以下筛选器模板作为筛选器的基础:

  • 仅显示HTTP协议包:HTTP
  • 仅显示DNS协议包:DNS
  • 要仅显示源端口或目标端口为4000的TCP数据包,请执行以下操作:tcp.port==4000
  • 要显示所有TCP重置数据包:http.request请求
  • 要过滤掉ARP、ICMP和DNS数据包:!(arp或icmp或dns)
  • 要显示跟踪中的所有重新传输,请执行以下操作:tcp.****ysis.retran**ission重传
  • 要筛选标志(如SYN或FIN):必须为这些设置一个比较值:1表示标志已设置,0表示未设置。例如:tcp.flags.syn== 1.

我们已经在这里介绍了显示过滤器的一些指导原则和基本用途,当然,还有很多。

要了解Wireshark过滤器的全部范围和功能,请务必查看其在线参考资料。

  • 发表于 2021-04-02 00:47
  • 阅读 ( 160 )
  • 分类:互联网

你可能感兴趣的文章

你没有使用的7个优秀的开源安全应用程序

... Wireshark是一个网络协议分析器。它非常流行,已经成为成千上万机构的标准协议分析器,包括**机构、学校和商业企业。 ...

  • 发布于 2021-03-11 14:26
  • 阅读 ( 234 )

解决网络问题的7个最佳工具

... Wireshark是最常用的网络分析工具之一。它的力量来自于向你展示你网络上的每一点流量——如果你不把它过滤下来只看到你需要的东西,它会让你不知所措。 ...

  • 发布于 2021-03-13 04:03
  • 阅读 ( 268 )

robot先生让linux进入公众视野的6种方式

...包括300多个渗透测试程序。从约翰开膛手(密码破解)到Wireshark(数据包分析器)。它在这个系列中出现过无数次,包括第一季第五集,尤其是第二季第十集,当艾略特真的下载并安装到他的机器上时。 ...

  • 发布于 2021-03-17 06:51
  • 阅读 ( 457 )

如何在任何平台上免费旋转视频

...频文件格式。 在“视频输出”下,单击“过滤器”。 选择“变换”。 在“可用过滤器”中,双击“旋转”。 单击“角度”中的下拉菜单,然后选择90度(顺时针旋转)...

  • 发布于 2021-03-26 12:27
  • 阅读 ( 227 )

在linux上使用brim转换wireshark工作流

Wireshark是分析网络流量的事实标准。不幸的是,随着数据包捕获的增长,它确实变得越来越滞后。Brim很好地解决了这个问题,它将改变Wireshark的工作流程。 wireshark很棒,但是。 Wireshark是一个很棒的开源软件。它被世界各地的...

  • 发布于 2021-04-01 14:53
  • 阅读 ( 152 )

如何使用linux上的nmap查看网络上的所有设备

...把矛头指向了我的googlehome迷你智能扬声器。 您可以使用Wireshark**商查找页面在线执行相同类型的OUI查找。 令人鼓舞的是,这符合我的结果。 确定设备id的一种方法是执行扫描,关闭设备,然后再次扫描。第二组结果中现在丢失...

  • 发布于 2021-04-03 09:47
  • 阅读 ( 285 )

如何使用wireshark捕获、过滤和检查数据包

Wireshark是一种以前称为Ethereal的网络分析工具,它实时捕获数据包并以人类可读的格式显示它们。Wireshark包含过滤器、颜色编码和其他功能,可以让您深入挖掘网络流量并检查单个数据包。 本教程将帮助您快速掌握捕获数据包...

  • 发布于 2021-04-07 16:40
  • 阅读 ( 135 )

tcp和udp有什么区别?

...快游戏连接和减少延迟。 那又怎么样? 相关:如何使用Wireshark捕获、过滤和检查数据包 应用程序是使用TCP还是UDP取决于其开发人员,选择取决于应用程序需要什么。大多数应用程序需要TCP的纠错和健壮性,但有些应用程序需...

  • 发布于 2021-04-07 17:46
  • 阅读 ( 170 )

使用无线诊断工具对mac的wi-fi进行故障排除和分析

...-或只是与信号强度差的地方。 嗅探器 相关:如何使用Wireshark捕获、过滤和检查数据包 嗅探器实用程序允许您“嗅探”空气中的Wi-Fi信号,捕获附近的数据包并记录它们。只要您想监视数据包,它就会捕获这些数据包,并将捕...

  • 发布于 2021-04-10 23:29
  • 阅读 ( 159 )

为什么不应该在wi-fi路由器上使用mac地址过滤

...是在夸张。具有类似Kali Linux的工具集的攻击者可以使用Wireshark窃听数据包,运行快速命令更改其MAC地址,使用aireplay ng将解除关联的数据包发送到该客户端,然后在其位置进行连接。整个过程可能不到30秒。这只是手动的方法,...

  • 发布于 2021-04-11 03:03
  • 阅读 ( 143 )
凌霜雷EX
凌霜雷EX

0 篇文章

相关推荐