Wireshark教程:显示过滤器表达式

发布于:2022-12-10 ⋅ 阅读:(767) ⋅ 点赞:(0)

目录

感染流量指标

Wireshark显示过滤器

基于Web的感染流量过滤器

其他类型感染流量的过滤器

​保存过滤器


感染流量指标

指标由从与感染相关的网络流量中派生的信息组成。这些指标通常被称为入侵指标(IOC)。安全专业人员经常记录与 Windows 感染流量相关的指标,如 URL、域名、IP 地址、协议和端口。正确使用Wireshark显示过滤器可以帮助人们快速找到这些指标。

Wireshark显示过滤器

如果您在显示过滤器中键入任何内容,Wireshark会根据您键入的文本提供建议列表。当显示过滤器栏保持红色时,表达式尚未被接受。如果显示过滤器栏变为绿色,则表达式已被接受,应正常工作。如果显示过滤器栏变为黄色,则表达式已被接受,但它可能无法按预期工作。

 Wireshark 的显示过滤器使用布尔表达式,因此您可以指定值并将它们链接在一起。通常使用以下表达式:

  • Equals: == or eq(等于:== 或等式)
  • And: && or and(和:或or和)
  • Or: || (double pipe) or or(或者:|| or 或)

这些过滤器表达式的示例如下:

  • ip.addr eq 10.12.3.101 and ip.addr == 10.12.3.1
  • http.request && ip.addr == 10.12.3.101
  • http.request || http.response
  • dns.qry.name contains microsoft or dns.qry.name contains windows

指定值排除时,不要在过滤器表达式中使用!=。例如,如果要指定不包含IP地址10.12.3.101的所有流量,请使用!(ip.addr eq 10.12.3.1)而不是ip.addr != 10.12.3.1,因为第二个表达式无法在过滤器上面正常工作。

基于Web的感染流量过滤器

我们上一篇文章已经介绍到了可以添加新标题来显示http流量中的host和tls流量中的server name。我们可以根据http.request or tls.handshake.type == 1 过滤出此数据包中的web流量事件。

然而这些流量包括正常活动期间 UDP 端口1900上的 HTTP 请求。这个通过 UDP 端口1900的 HTTP 传输是简单服务发现协议(SSDP)。SSDP 是一个用于发现即插即用设备的协议,它与正常的网络流量无关。因此,我们可以使用以下表达式将其过滤掉:

(http.request or tls.handshake.type == 1) and !(udp.port eq 1900)

你也可以使用下面的过滤表达式,得到相同的结果:

(http.request or tls.handshake.type == 1) and !(ssdp)

我们看到了一些感染流量的指标,但并非每个感染指标都显示出来。在某些情况下,受感染的主机可能试图连接已经脱机或拒绝 TCP 连接的服务器。通过在筛选器中添加 TCP.Flag eq 0x0002,可以通过包含 TCP SYN 段来显示这些尝试的连接。在相同的流量上尝试下面的过滤器:

 (http.request or tls.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)

在我们的搜索中包含 TCP SYN 段显示受感染的主机也试图连接到 IP 地址217.165.2.133通过 TCP 端口8443传输。

其他类型感染流量的过滤器

在某些情况下,感染后的流量不会基于 Web,受感染的主机将联系命令和控制 (C2) 服务器。这些服务器可以直接托管在 IP 地址上,也可以托管在使用域名的服务器上。如由 Nanocore 远程访问工具(RAT)引起的 C2流量,不是 HTTP 或 HTTPS/SSL/TLS 流量。不是 HTTP 或 HTTPS/SSL/TLS 流量。

因此,我们经常在查看pcap时添加DNS活动,以查看这些域中是否有任何域在流量中处于活动状态。这将使用以下过滤器表达式:

(http.request or tls.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)

我们使用上面的过滤器表达式查看一个pcap,该pcap显示了从www.mercedes-club-bg[.]com下载的Nanocore RAT可执行文件mko.exe,以感染易受攻击的Windows主机。初始下载之后,尝试TCP连接到franex.sytes[.]net(185.163.45[.]48)和franexserve.duckdns[.]org(95.213.251[.]165)。

一些感染流量使用常见的协议,可以很容易地被Wireshark解码。我们查看了FTP中的恶意可执行文件引起的感染后流量。使用标准的网络流量搜索,同时检查DNS流量和TCP SYN标志,我们在对ftp.totalyanonymous[.]com进行DNS查询后,找到TCP端口21和其他TCP端口上的流量。

意识到这是FTP流量,我们可以在显示过滤器透视FTP,当为此流量筛选FTP时,我们发现受感染的Windows主机登录到一个FTP帐户,检索到名为fc32.exe和o32.exe的文件。向下滚动到稍后的FTP流量,将发现大约每分钟发送一个名为6R7MELYD6的文件到FTP服务器。进一步调查将发现6R7MELYD6包含从受感染的Windows主机窃取的密码数据。

除了FTP,恶意软件还可以使用其他常见协议进行通信。Spambot恶意软件可以将受感染的主机变成垃圾邮件机器人,每分钟发送几十到数百封电子邮件。其特征是向各种邮件服务器发送多个DNS请求,然后在TCP端口25、465、587或其他与电子邮件通信相关的TCP端口上发送SMTP通信。

 让我们再次尝试此筛选器表达式:

 (http.request or tls.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)

查看垃圾邮件流量时,您会发现针对邮件服务器的DNS查询和针对SMTP相关端口的TCP流量查询。

如果使用smtp作为过滤器表达式,则会找到多个结果。如果您发现 STARTTLS,这可能是加密的 SMTP 通信,您将无法看到电子邮件数据。

近年来,垃圾邮件的电子邮件流量很可能是加密的SMTP。但是,通过搜索常见电子邮件标题行中的字符串,您可能会发现未加密的SMTP流量,如:

  •  smtp contains "From: "(smtp包含“发件人“)
  •  smtp contains "Message-ID: "(smtp包含“消息ID“)
  •  smtp contains "Subject: "(smtp包含“主题:”)

过滤出SMTP通信流量后,您可以跟踪显示的任何帧的TCP流,可以选择一个会话然后右击选择追踪流-tcp流,您将发现从垃圾邮件发送的一封电子邮件。

保存过滤器

许多过滤器表达式每次输入都非常繁琐,但我们可以将它们保存为筛选按钮。Wireshark过滤器栏右侧是一个加号,用于添加过滤器按钮。

单击加号将表达式保存为过滤器按钮。您有以下字段:

  • Label(标签)
  • Filter(过滤器)
  • Comment(注释)

 注释是可选的,并且过滤器会默认为当前在 Wireshark 过滤器栏中输入的内容。输入标签后,单击 OK 按钮即可,你可以添加你熟悉的任何过滤按钮哦。

 注:转发记得私聊me哦

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到