目录
感染流量指标
指标由从与感染相关的网络流量中派生的信息组成。这些指标通常被称为入侵指标(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哦