网络流量分析——使用捕获和显示过滤器查询网络流量
文章目录
- 任务#1
- 任务#2
- 任务#3
- 任务#4
- 任务 #5
- 任务 #6
- 任务 #7
- 总结
- 分析技巧
本实验旨在让大家有机会学习查询网络流量,并让大家有机会实践实施数据包过滤器。我们将使用主机、端口、协议等过滤器,在分析 .PCAP 文件时改变视角。
既然我们已经证明自己有能力为公司捕获网络流量,管理层委托我们对团队在勘测网络时捕获的流量进行快速分析。目标是确定哪些服务器正在响应本地网络中的 DNS 和 HTTP/S 请求。
利用可选资源中的 TCPDump-lab-2.zip,尽力完成实验。一次性找到所有信息并非目标,我们主要关注的是理解相关概念。随着反复练习,实验会变得越来越容易。
任务#1
Read a capture from a file without filters implemented.
首先,让我们检查一下未应用过滤器的这个 pcap。
Jackson310@htb[/htb]$ tcpdump -r (file.pcap)
任务#2
Identify the type of traffic seen.
记录可以看到哪些类型的流量。(使用的端口、协议以及任何其他您认为相关的信息。)我们可以使用哪些过滤器来简化这项任务?
我们看到什么类型的流量?
常见协议:我们应该注意到大量的DNS, HTTP, and HTTPS流量。
使用的端口:53 80 443
任务#3
Identify conversations.
我们已经了解了这些流量的基本情况,现在来看看你是否注意到了流量中的任何模式。
你注意到服务器和主机之间有什么共同的连接吗?如果有,是谁?
172.16.146.2 以及大多数其他主机。
第一次完整的 TCP 三次握手中使用的客户端和服务器端口号是什么?
客户端:43806 服务器:80
这些对话中的服务器是谁?
13.35.106.128、72.21.91.29、207.244.88.140、95.216.26.30、172.217.164.74、64.233.177.100 等等。
接收主机是谁?——172.16.146.2
为了使这一点更加直接,打开绝对序列号(-S)将对确定对话非常有帮助。
我们还可以检查所涉及的不同主机。服务器通常通过分配给协议的知名端口号进行通信(80 for HTTP, 443 for HTTPS, for example)。对话中的主机或接收者通常会使用随机的高端口号。
任务#4
Interpret the capture in depth.
现在我们对 pcap 文件有所了解,接下来进行一些分析。使用任何必要的语法来回答以下问题。
pcap文件中第一次建立的对话的时间戳是什么?
2021年5月11日 11:34:01.237834000 EDT
从DNS服务器响应中可以得出apache.org的IP地址是什么?
- 95.216.26.30, 207.244.88.140
第一次对话中使用的是什么协议?(名称/编号)- HTTP
要确定正确的时间戳:使用 (-r) 读取文件,然后检查对话。找到第一个已建立的对话(完整 TCP 握手“Syn / SYN-ACK / ACK”),并查看输出中的第一个字段以查找时间戳。要查找主机的 IP 地址 ( ),我们可以过滤流量,仅查看来自该 IP 地址的对话( src ‘name-of-host’ ),然后使用 (-n) 禁用名称解析。要确定第一个对话中使用的协议,请在禁用主机名和端口名解析 (-nn) 或不使用 (-nn) 的情况下查找已知端口号,它会在输出中显示协议名称。
任务 #5
Filter out traffic.
现在是时候清除一些数据了。重新加载 pcap 文件并过滤掉所有非 DNS 流量。你看到了什么?
此网段的 DNS 服务器是谁?
172.16.146.1。
pcap 文件中请求了哪些域名?
apache.org 以及其他一些域名。
您看到了哪些类型的 DNS 记录?
A 记录、AAAA 记录和 CNAME 记录。
谁请求了 apache.org 的 A 记录?(主机名或 IP)
172.16.146.2
A 记录提供什么信息?
——它提供从 URL 到主机名/IP 的转换。
PCAP 中响应的 DNS 服务器是谁?(主机名或 IP)
——172.16.146.1
要清除所有非 DNS 的内容,我们可以使用:
ubuntu@VM-12-15-ubuntu:~/labNetwork_Traffic_Analysis$ tcpdump -r TCPDump-lab-2.pcap udp and port 53
请记住,DNS是一种利用UDP和TCP实现不同功能的协议。这意味着我们可能需要同时过滤这两种协议,以确保不会遗漏任何信息。
任务 #6
Filter for TCP traffic.
现在我们对 DNS 服务器有了清晰的了解,接下来我们来查找所有存在的 Web 服务器。过滤视图,以便我们只看到与 HTTP 或 HTTPS 相关的流量。请求了哪些网页?
tcpdump -r TCPDump-lab-2.pcap -nn -A 'tcp port 80'
此 PCAP 最常见的 HTTP 请求方法是什么?
- POST
此 PCAP 最常见的 HTTP 响应是什么?
200 OK。
任务 #7
What can you determine about the server in the first conversation.
让我们仔细看看。在第一次对话中,我们可以确定关于 Web 服务器的哪些信息?有什么特别之处吗?为了更清晰起见,请确保我们的视图包含 pcap 的十六进制和 ASCII 输出。
您能确定哪个应用程序正在运行 Web 服务器吗?
- 从 tcpdump 来看很难,您必须查看具体的响应。它是一个 Apache 服务器。
总结
通过本次实验,我们拓展了视野,并利用 TCPDump 分析了 PCAP 流量。我们学习了如何有效地捕获和显示过滤器,剖析了流量以确定环境中正在运行的协议,甚至收集了一些关于企业网段、DNS 和 Web 服务器的关键信息。继续你自己的实验,看看这个兔子洞有多深。你能捕获家庭网络中的流量并回答同样的问题吗?
分析技巧
以下是我们在分析过程中可以问自己的问题列表,以便保持正轨。
您看到什么类型的流量?(协议、端口等)
是否有多个对话?(有多少个?)
有多少个唯一主机?
pcap(tcp 流量)中第一个对话的时间戳是什么
我可以过滤掉哪些流量来清理我的视图?
PCAP 中的服务器是谁?(在知名端口 53、80 等上回答)
请求了哪些记录或使用了哪些方法?(GET、POST、DNS A 记录等)
domain 表示使用的 DNS 端口(UDP 53)
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!