当前位置: 首页 > news >正文

网络流量分析——基础知识(二)(Tcpdump 基础知识)

文章目录

  • 分析过程
  • 分析依赖关系
  • 流量捕获依赖项
  • 实践分析
    • 描述性分析
    • 诊断分析
    • 预测分析
    • 规范分析
  • 有效分析的关键组成部分
    • 1. 了解您的环境
    • 2. 放置位置是关键
    • 3. 持久性
  • 分析方法
  • Tcpdump 基础知识
  • 找到 Tcpdump
  • 安装 Tcpdump
  • Tcpdump 版本验证
  • 使用 Tcpdump 捕获流量
    • 基本捕获选项
  • 手册页使用
  • Tcpdump 手册页
  • 列出可用接口
  • 选择要捕获的接口
  • 禁用名称解析
  • 显示以太网报头
  • 包括 ASCII 和十六进制输出
  • Tcpdump 开关组合
    • 为了让输出慢一点便于得到结果,给出改动的命令
  • Tcpdump 输出
    • Tcpdump Shell 分解
  • 使用 Tcpdump 进行文件输入/输出
  • 将我们的 PCAP 输出保存到文件中
  • 从文件读取输出

分析过程

网络流量分析是一个动态过程,它会根据我们现有的工具、组织授予的权限以及我们网络的可见性而变化。我们的目标是提供一个可重复的流程,以便在执行流量分析时使用。

流量分析是对事件或过程的详细检查,确定其来源和影响,并以此触发特定的预防措施和/或行动,以支持或预防未来再次发生类似事件。对于网络流量,这意味着将数据分解成易于理解的块,检查其中是否存在任何偏离常规网络流量的内容,例如潜在的恶意流量,例如通过 RDP、SSH 或 Telnet 从互联网进行的未经授权的远程通信,或网络问题发生前的特殊实例。在执行分析的同时,我们还会观察流量中的趋势,并确定其是否与典型运营流量的基线相符。

流量分析是我们防御工具箱中一个用途广泛且必不可少的工具。如果没有监控流量的能力,我们将在工作中缺失一大块拼图。网络使用情况分析、流量最高的主机和服务器以及内部通信分析都是至关重要的,它们为我们(管理员和防御者)提供了一种在问题发生之前或之后发现并纠正问题的方法。可见性可能是它提供的最有益之处。凭借这种可见性,我们可以捕获不同时间段的流量,从而为我们的环境设定基准。这条基准使我们更容易看到变化发生的时间。在更高级的NTA实施中,包括其他工具,例如IDS/IPS、防火墙、主机和网络日志,以及输入到Splunk或ELK Stack等工具中的其他信息,拥有监控流量的能力至关重要。这些工具可以帮助我们快速预警发生的恶意行为。许多防御工具都针对大多数常见攻击和工具包构建了签名。

拥有适当的防御能力对每个人来说都至关重要,但对于日常运营来说呢?NTA如何帮助我们?实时监控网络流量可以轻松排除连接问题,或确定我们的基础设施和相应的协议是否正常运行。如果我们能够看到流量的流向,就可以确定是否存在问题。 最后,这是一项动态技能,使用自动化工具来辅助我们完全没问题。但不要完全依赖它们。充分利用你现有的技能,并进行手动检查。这将有助于我们监控网络。由于工具可能会被攻破,我们需要在自身和工具之间建立制衡机制。恶意行为者一直在寻找绕过安全措施的方法。而人眼仍然是我们发现恶意行为的最佳资源。

分析依赖关系

流量捕获和分析可以通过两种不同的方式进行:主动或被动。每种方式都有其依赖关系。被动方式下,我们只是复制可见的数据,而无需直接与数据包交互。主动流量捕获和分析的需求略有不同。主动捕获需要我们采取更实际的操作方式。此过程也可以称为在线流量捕获。对于这两种方式,如何分析数据都由我们自己决定。我们可以在捕获和分析完成后进行,也可以在流量运行时进行实时分析。下表列出了每种方式的依赖关系。

流量捕获依赖项

在这里插入图片描述
最后一个依赖项与其说是要求,不如说是建议,但我们觉得有必要提一下。了解日常流量的流动方式对于成功至关重要。即使没有流量分析,也可以进行流量分析,但这会更加困难和耗时。基线将使我们能够在执行分析时快速过滤掉该网络的常见流量。这样做可以加快我们的流程,并帮助我们更快地发现异常值或问题。让我们先来看看这个场景:

您是一家大型公司的网络管理员,公司园区内有数千名员工。您注意到,公司网络的某个部分出现了连接问题。其中几台主机报告延迟极高,同时桌面上还出现了新文件。为了了解当前情况,您将一台计算机连接到该部分并开始捕获网络数据。几分钟后,您停止捕获并开始分析。

现在考虑一下。如果没有每日网络流量的基线,我们如何知道该网络的典型值呢?我们在捕获时间段内获取了大量信息,需要清除其中的一些。这个过程可能耗时很长,因为我们必须检查每一次对话以确保其正常,确定我们看到的主机是属于网络本身还是恶意资产等等。这个过程很快就变成了一项艰巨的任务,对吧?

在这种情况下,并且能够访问网络基线,我们可以快速剔除已知良好的通信。利用数据分析工具(例如 Wireshark 中的“最高流量者”模块,the top talkers’ module) 可以帮助识别可能正在发送大量数据的主机。我们可以将其与主机的正常基线进行对比,以确定其是否异常另一种方法是查看内部主机之间的连接,或者常用端口和非常用端口之间的连接。由于我们已经清除了视图,现在可以看到多个用户主机连接到端口 8080 和 445。端口本身并不奇怪,但奇怪的是两台用户电脑通过这些端口相互通信。Web 流量通常从主机流向托管的 Web 服务器或托管业务应用程序的内联网 Web 服务器。SMB 流量也是如此。看到两台主机通过此端口相互通信非常可疑。根据我们现在掌握的信息,我们可以快速提交故障单,寻求帮助处理潜在的入侵事件。

谈到网络入侵,我们越快获得可见性,网络受到的潜在损害就越小。务必清楚地了解网络中的流量流动方式以及协议的常见行为方式。

实践分析

上一节定义了网络流量分析、执行流量分析的依赖关系及其重要性。本节将分解执行流量分析的工作流程,并帮助我们熟悉其中的关键组件。

这并非一门精确的科学。它可能是一个非常动态的过程,并且并非一个直接的循环。它很大程度上受到我们所寻找的内容(网络错误还是恶意操作)以及您对网络的可见性的影响。然而,分析可以归结为几个基本原则。

描述性分析

描述性分析是任何数据分析中必不可少的一步。它用于根据个体特征描述数据集。它有助于检测数据收集中可能存在的错误和/或数据集中的异常值。

在这里插入图片描述

诊断分析

诊断分析旨在阐明各种情况的起因、影响和相互作用。在此过程中,它通过关联和解释提供洞见。诊断分析的特点是回顾性视角,类似于与之密切相关的描述性分析,但其微妙之处在于,它试图寻找事件和发展背后的原因。

在这里插入图片描述

预测分析

通过评估历史数据和当前数据,预测分析可以创建未来概率的预测模型。基于描述性分析和诊断性分析的结果,这种数据分析方法可以识别趋势,在早期阶段检测与预期值的偏差,并尽可能准确地预测未来事件的发生。

在这里插入图片描述

规范分析

规范分析旨在缩小需要采取的行动范围,以消除或预防未来问题,或触发特定的活动或流程利用工作流程的结果,我们可以做出合理的决策,确定解决问题并防止其再次发生所需的行动。制定解决方案是此工作流程的最终目标。一旦完成并解决问题,明智的做法是反思整个过程并总结经验教训。这些经验教训一旦被记录下来,将使我们能够完善流程——记录哪些措施做得正确,哪些措施没有起到作用,以及哪些方面有待改进。

此工作流程是一个示例,展示了如何对捕获的流量进行分析。上文我们将其分解成各个部分,以解释它们在分析过程中的位置以及所属的分析类型。我们再次将其作为一个整体包含在这里,以便将其用作模板。

在这里插入图片描述
这个过程通常不是一次性完成的。它通常是循环的,我们需要根据对原始捕获数据的分析重新运行步骤,以构建更全面的图景。这可能是一次比示例中规模更大的攻击。假设有必要进行全面的事件响应。在这种情况下,我们可能需要重新分析之前捕获的 PCAP 文件,以查看可执行文件传输后几分钟内涉及受影响主机的任何对话,以确保其没有通过其他路径传播。

有效分析的关键组成部分

1. 了解您的环境

要有效地进行流量分析,有几个关键要素。首先,了解环境。如果我们不确定某台主机是否属于网络,如何确定它是否是恶意主机?保存资产清单和网络图至关重要。这些将有助于分析过程。

2. 放置位置是关键

其次,用于捕获流量的主机的放置位置至关重要。最接近问题源头的位置是捕获工具的理想位置。如果有问题的流量来自互联网,监听入站链接是了解完整情况的好方法。这是我们管理员能够找到的最接近源头的位置。如果问题似乎只局限于我们内部网络中的一台主机,请尝试将捕获工具放置在与问题主机相同的网段中,并查看该网段内正在发生的流量。

3. 持久性

持久性对我们来说是下一个关键要素。问题并不总是容易发现的。它甚至可能不是网络上的常见事件。例如,攻击者的命令与控制服务器可能每隔几个小时才会访问受害者的计算机,甚至可能每天一次或更短。这意味着,如果我们第一次没有发现它,它可能需要一段时间才会出现在我们的日志中。不要失去寻找问题的动力。这可能意味着是阻止攻击者,还是造成像勒索软件攻击这样的全面入侵。

分析方法

我们花了一些时间讨论了分析过程以及如何在执行任务时启动基本工作流程。现在,让我们花点时间讨论一下在查看流量和查找问题时的一些简单方法。

首先从标准协议入手,然后逐步深入到仅针对组织的具体情况。大多数攻击来自互联网,因此必须以某种方式访问​​内部网络。这意味着会产生流量并记录相关日志HTTP/S、FTP、电子邮件以及基本的 TCP 和 UDP 流量是最常见的来自外部的流量。从这些流量开始,清除所有与调查无关的内容。之后,检查允许网络间通信的标准协议,例如 SSH、RDP 或 Telnet。在查找这些类型的异常时,请注意网络的安全策略。我们组织的安全计划和实施是否允许在企业外部发起 RDP 会话?Telnet 的使用情况如何?

寻找模式。是否有特定主机或主机组每天在同一时间在互联网上进行访问?这是一种典型的命令与控制配置文件设置,可以通过查看流量数据中的模式轻松发现

检查我们网络中所有主机之间的通信在标准设置中,用户的主机之间很少进行通信。因此,对任何出现此类情况的流量保持警惕。通常,主机会与基础设施通信,以获取 IP 地址租约、DNS 请求、企业服务并找到其路由。我们还会看到主机与本地 Web 服务器、文件共享以及其他关键基础设施通信,以使环境能够像域控制器和身份验证应用程序一样运行。

寻找独特事件。例如,一个主机通常每天访问某个特定网站十次,但每次只访问一次,这种情况就很可疑。看到与我们的应用程序不匹配的 User-Agent 字符串,或者主机与互联网上的服务器通信,也需要注意。主机上只绑定一两次的随机端口也值得注意。这可能是 C2 回调的契机,有人打开端口执行非标准操作,或者应用程序出现异常行为。在大型环境中,模式是可以预料的,因此任何突出的情况都值得关注。

不要害怕寻求帮助。这听起来可能有些夸张和显而易见,但长时间盯着数据包捕获后,事情可能会混杂在一起,我们可能无法看清全貌。让另一双眼睛来审视数据,对于发现可能被忽略的问题大有裨益。

总而言之,分析过程是一项非常动态的任务,我们的生活将永远焕然一新。不断学习,了解我们周围发生的事情,随着技能的增长,检测威胁的能力也会随之增长。这个过程不仅仅依赖于使用 tcpdump 和 Wireshark 之类的工具。还有许多有用的工具,例如 Snort、Security Onion、防火墙和 SIEM,可以帮助我们加深对环境的了解并提供更好的保护。不要害怕在调查中使用这些工具。

Tcpdump 基础知识

Tcpdump 是一个命令行数据包嗅探器,可以直接捕获和解析来自文件或网络接口的数据帧它专为任何类 Unix 操作系统构建,并有一个 Windows 版本 WinDump。它是一款功能强大且操作简单的工具,适用于大多数基于 Unix 的系统。它不需要图形用户界面 (GUI),可以通过任何终端或远程连接(例如 SSH)使用。然而,由于它提供了众多不同的功能和过滤器,这款工具乍一看可能让人眼花缭乱。然而,一旦我们掌握了基本功能,就会发现高效地使用这款工具要容易得多。为了从“离线”捕获网络流量,它使用了 pcap 和 libpcap 库,并搭配一个处于混杂模式的接口来监听数据。这使得该程序能够查看和捕获来自或发往局域网中任何设备的数据包,而不仅仅是发往我们的数据包

TCPDump 适用于大多数 Unix 系统及其衍生版本,例如 AIX、BSD、Linux、Solaris,并且许多制造商已将其集成到系统中。由于需要直接访问硬件,我们需要 root 或管理员权限才能运行此工具。这意味着我们必须使用 sudo 来执行 TCPDump,如下例所示。TCPDump 通常预装在大多数 Linux 操作系统上。

需要注意的是,Windows 上曾有一个名为 Windump 的 TCPDump 移植版本。Windump 的支持已终止。另一种方法是,在 Windows Subsystem for Linux 中运行 Parrot 或 Ubuntu 等 Linux 发行版,这样就可以轻松地在计算机上创建 Linux 虚拟主机,从而可以使用 TCPDump 和许多其他 Linux 内置工具。

找到 Tcpdump

要验证该包是否存在于我们的主机上,请使用以下命令:

Jackson310@htb[/htb]$ which tcpdump

在这里插入图片描述
通常可以在 中找到它/usr/sbin/tcpdump。但是,如果该包不存在,我们可以使用以下命令安装它:

安装 Tcpdump

Jackson310@htb[/htb]$ sudo apt install tcpdump 

在这里插入图片描述
我们可以使用开关运行 tcpdump 包–version来检查我们的安装和当前包版本以验证我们的安装。

Tcpdump 版本验证

Jackson310@htb[/htb]$ sudo tcpdump --version

在这里插入图片描述

使用 Tcpdump 捕获流量

由于该工具包含众多不同的函数和过滤器,我们首先应该熟悉其基本功能。我们将讨论一些基本的 TCPDump 选项,演示一些命令,并展示如何将流量保存到 PCAP 文件并从中读取数据。

基本捕获选项

下表列出了一些基本的 Tcpdump 开关,我们可以使用它们来修改捕获的运行方式。这些开关可以串联起来,用于控制工具输出在 STDOUT 中的显示方式以及保存到捕获文件中的内容。这不是一个详尽的清单,我们可以使用更多的,但这些是最常见和最有价值的。
在这里插入图片描述

手册页使用

要查看完整的开关列表,我们可以使用手册页:

Tcpdump 手册页

Jackson310@htb[/htb]$ man tcpdump

在这里插入图片描述
以下是一些基本 Tcpdump 开关用法的示例以及正在发生的事情的描述:

列出可用接口

Jackson310@htb[/htb]$ sudo tcpdump -D

在这里插入图片描述
上述命令使用 sudo 权限调用 tcpdump,并列出可用的网络接口。我们可以选择其中一个网络接口,并告诉 tcpdump 它应该监听哪些接口。

选择要捕获的接口

Jackson310@htb[/htb]$ sudo tcpdump -i ens3tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:58:33.719241 IP 172.16.146.2.55260 > 172.67.1.1.https: Flags [P.], seq 1953742992:1953743073, ack 2034210498, win 501, length 81
10:58:33.747853 IP 172.67.1.1.https > 172.16.146.2.55260: Flags [.], ack 81, win 158, length 0
10:58:33.750393 IP 172.16.146.2.52195 > 172.16.146.1.domain: 7579+ PTR? 1.1.67.172.in-addr.arpa. (41)

在这里插入图片描述
在这个终端中,我们调用 tcpdump 并选择接口 ens3 来捕获流量。一旦我们发出命令,tcpdump 将开始嗅探流量并查看通过该接口的前几个数据包。通过输入如下所示的 -nn 开关,我们告诉 TCPDump 不要将 IP 地址和端口号解析为它们的主机名和常用端口名。 在此表示中,最后一个八位字节是连接的起始/终止端口。

禁用名称解析

Jackson310@htb[/htb]$ sudo tcpdump -i ens3 -nntcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:02:35.580449 IP 172.16.146.2.48402 > 52.31.199.148.443: Flags [P.], seq 988167196:988167233, ack 1512376150, win 501, options [nop,nop,TS val 214282239 ecr 77421665], length 37
11:02:35.588695 IP 172.16.146.2.55272 > 172.67.1.1.443: Flags [P.], seq 940648841:940648916, ack 4248406693, win 501, length 75
11:02:35.654368 IP 172.67.1.1.443 > 172.16.146.2.55272: Flags [.], ack 75, win 70, length 0
11:02:35.728889 IP 52.31.199.148.443 > 172.16.146.2.48402: Flags [P.], seq 1:34, ack 37, win 118, options [nop,nop,TS val 77434740 ecr 214282239], length 33
11:02:35.728988 IP 172.16.146.2.48402 > 52.31.199.148.443: Flags [.], ack 34, win 501, options [nop,nop,TS val 214282388 ecr 77434740], length 0
11:02:35.729073 IP 52.31.199.148.443 > 172.16.146.2.48402: Flags [P.], seq 34:65, ack 37, win 118, options [nop,nop,TS val 77434740 ecr 214282239], length 31
11:02:35.729081 IP 172.16.146.2.48402 > 52.31.199.148.443: Flags [.], ack 65, win 501, options [nop,nop,TS val 214282388 ecr 77434740], length 0
11:02:35.729348 IP 52.31.199.148.443 > 172.16.146.2.48402: Flags [F.], seq 65, ack 37, win 118, options [nop,nop,TS val 77434740 ecr 214282239], length 0

在这里插入图片描述
使用 -e 开关时,我们让 tcpdump 将以太网报头与其常规内容一起包含在捕获的输出中。我们可以通过检查输出来验证这一点。通常,第一和第二个字段由时间戳和 IP 报头的开头组成。现在,它由时间戳和主机的源 MAC 地址组成。

显示以太网报头

Jackson310@htb[/htb]$ sudo tcpdump -i ens3 -etcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:05:45.982115 00:0c:29:97:52:65 (oui Unknown) > 8a:66:5a:11:8d:64 (oui Unknown), ethertype IPv4 (0x0800), length 103: 172.16.146.2.57142 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [P.], seq 922951468:922951505, ack 1842875143, win 501, options [nop,nop,TS val 1368272062 ecr 65637925], length 37
11:05:45.989652 00:0c:29:97:52:65 (oui Unknown) > 8a:66:5a:11:8d:64 (oui Unknown), ethertype IPv4 (0x0800), length 129: 172.16.146.2.55272 > 172.67.1.1.https: Flags [P.], seq 940656124:940656199, ack 4248413119, win 501, length 75
11:05:46.047731 00:0c:29:97:52:65 (oui Unknown) > 8a:66:5a:11:8d:64 (oui Unknown), ethertype IPv4 (0x0800), length 85: 172.16.146.2.54006 > 172.16.146.1.domain: 31772+ PTR? 207.22.80.99.in-addr.arpa. (43)
11:05:46.049134 8a:66:5a:11:8d:64 (oui Unknown) > 00:0c:29:97:52:65 (oui Unknown), ethertype IPv4 (0x0800), length 147: 172.16.146.1.domain > 172.16.146.2.54006: 31772 1/0/0 PTR ec2-99-80-22-207.eu-west-1.compute.amazonaws.com. (105)

在这里插入图片描述
使用 -X 开关后,我们现在可以更清晰地看到数据包了。右侧会显示 ASCII 输出,用于解释左侧十六进制输出对应的明文内容

包括 ASCII 和十六进制输出

Jackson310@htb[/htb]$ sudo tcpdump -i ens3 -Xtcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:10:34.972248 IP 172.16.146.2.57170 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [P.], seq 2612172989:2612173026, ack 3165195759, win 501, options [nop,nop,TS val 1368561052 ecr 65712142], length 370x0000:  4500 0059 4352 4000 4006 3f1b ac10 9202  E..YCR@.@.?.....0x0010:  6350 16cf df52 01bb 9bb2 98bd bca9 0def  cP...R..........0x0020:  8018 01f5 b87d 0000 0101 080a 5192 959c  .....}......Q...0x0030:  03ea b00e 1703 0300 2000 0000 0000 0000  ................0x0040:  0adb 84ac 34b4 910a 0fb4 2f49 9865 eb45  ....4...../I.e.E0x0050:  883c eafd 8266 3e23 88                   .<...f>#.
11:10:34.984582 IP 172.16.146.2.38732 > 172.16.146.1.domain: 22938+ A? app.hackthebox.eu. (35)0x0000:  4500 003f 2e6b 4000 4011 901e ac10 9202  E..?.k@.@.......0x0010:  ac10 9201 974c 0035 002b 7c61 599a 0100  .....L.5.+|aY...0x0020:  0001 0000 0000 0000 0361 7070 0a68 6163  .........app.hac0x0030:  6b74 6865 626f 7802 6575 0000 0100 01    kthebox.eu.....
11:10:35.055497 IP 172.16.146.2.43116 > 172.16.146.1.domain: 6524+ PTR? 207.22.80.99.in-addr.arpa. (43)0x0000:  4500 0047 2e72 4000 4011 900f ac10 9202  E..G.r@.@.......0x0010:  ac10 9201 a86c 0035 0033 7c69 197c 0100  .....l.5.3|i.|..0x0020:  0001 0000 0000 0000 0332 3037 0232 3202  .........207.22.0x0030:  3830 0239 3907 696e 2d61 6464 7204 6172  80.99.in-addr.ar0x0040:  7061 0000 0c00 01                        pa.....

在这里插入图片描述
在这里插入图片描述
注意上面输出的详细程度。我们会注意到,我们包含了 IP 报头选项的信息,例如生存时间、偏移量和其他标志,以及更多关于上层协议的详细信息。下面,我们将组合这些选项,以根据我们的喜好来制作输出。

Tcpdump 开关组合

Jackson310@htb[/htb]$ sudo tcpdump -i ens3 -nnvXXtcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
11:13:59.149599 IP (tos 0x0, ttl 64, id 24075, offset 0, flags [DF], proto TCP (6), length 89)172.16.146.2.42454 > 54.77.251.34.443: Flags [P.], cksum 0x6fce (incorrect -> 0xb042), seq 671020720:671020757, ack 3699222968, win 501, options [nop,nop,TS val 1154433101 ecr 1116647414], length 370x0000:  8a66 5a11 8d64 000c 2997 5265 0800 4500  .fZ..d..).Re..E.0x0010:  0059 5e0b 4000 4006 6d11 ac10 9202 364d  .Y^.@.@.m.....6M0x0020:  fb22 a5d6 01bb 27fe f6b0 dc7d a9b8 8018  ."....'....}....0x0030:  01f5 6fce 0000 0101 080a 44cf 404d 428e  ..o.......D.@MB.0x0040:  aff6 1703 0300 2000 0000 0000 0000 09bb  ................0x0050:  38d9 d89a 2d70 73d5 a01e 9df7 2c48 5b8a  8...-ps.....,H[.0x0060:  d64d 8e42 2ccc 43                        .M.B,.C
11:13:59.157113 IP (tos 0x0, ttl 64, id 31823, offset 0, flags [DF], proto UDP (17), length 63)172.16.146.2.55351 > 172.16.146.1.53: 26460+ A? app.hackthebox.eu. (35)0x0000:  8a66 5a11 8d64 000c 2997 5265 0800 4500  .fZ..d..).Re..E.0x0010:  003f 7c4f 4000 4011 423a ac10 9202 ac10  .?|O@.@.B:......0x0020:  9201 d837 0035 002b 7c61 675c 0100 0001  ...7.5.+|ag\....0x0030:  0000 0000 0000 0361 7070 0a68 6163 6b74  .......app.hackt0x0040:  6865 626f 7802 6575 0000 0100 01         hebox.eu.....
11:13:59.158029 IP (tos 0x0, ttl 64, id 20784, offset 0, flags [none], proto UDP (17), length 111)172.16.146.1.53 > 172.16.146.2.55351: 26460 3/0/0 app.hackthebox.eu. A 104.20.55.68, app.hackthebox.eu. A 172.67.1.1, app.hackthebox.eu. A 104.20.66.68 (83)0x0000:  000c 2997 5265 8a66 5a11 8d64 0800 4500  ..).Re.fZ..d..E.0x0010:  006f 5130 0000 4011 ad29 ac10 9201 ac10  .oQ0..@..)......0x0020:  9202 0035 d837 005b 9d2e 675c 8180 0001  ...5.7.[..g\....0x0030:  0003 0000 0000 0361 7070 0a68 6163 6b74  .......app.hackt0x0040:  6865 626f 7802 6575 0000 0100 01c0 0c00  hebox.eu........0x0050:  0100 0100 0000 ab00 0468 1437 44c0 0c00  .........h.7D...0x0060:  0100 0100 0000 ab00 04ac 4301 01c0 0c00  ..........C.....0x0070:  0100 0100 0000 ab00 0468 1442 44         .........h.BD
11:13:59.158335 IP (tos 0x0, ttl 64, id 20242, offset 0, flags [DF], proto TCP (6), length 60)172.16.146.2.55416 > 172.67.1.1.443: Flags [S], cksum 0xeb85 (incorrect -> 0x72f7), seq 3766489491, win 64240, options [mss 1460,sackOK,TS val 508232750 ecr 0,nop,wscale 7], length 00x0000:  8a66 5a11 8d64 000c 2997 5265 0800 4500  .fZ..d..).Re..E.0x0010:  003c 4f12 4000 4006 0053 ac10 9202 ac43  .<O.@.@..S.....C0x0020:  0101 d878 01bb e080 1193 0000 0000 a002  ...x............0x0030:  faf0 eb85 0000 0204 05b4 0402 080a 1e4b  ...............K0x0040:  042e 0000 0000 0103 0307                 ..........

在这里插入图片描述

在这里插入图片描述

为了让输出慢一点便于得到结果,给出改动的命令

sudo tcpdump -i ens3 -nnvXX | ForEach-Object { echo $_; Start-Sleep -Seconds 0.1 }

在这里插入图片描述
在这里插入图片描述

使用开关时,最佳做法是像上面的示例那样将它们链接在一起。

Tcpdump 输出

查看 TCPDump 的输出时,可能会有点不知所措。运行这些基本开关已经向我们展示了几种不同的视图。我们将花一点时间来剖析该输出并解释我们所看到的内容。下图和表格将定义每个字段。请记住,我们的过滤器越详细,每个标头显示的细节就越多。

Tcpdump Shell 分解

在这里插入图片描述
在这里插入图片描述
还有许多其他选项和信息可以显示。这些信息会根据启用的详细程度而有所不同。如需更详细地了解 IP 和其他协议报头,请参阅第二部分的网络入门或网络基础知识路径。

了解网络的运作方式以及如何使用 TCPDump 提供的过滤器将大有裨益。借助这些过滤器,我们可以查看网络流量,解析其中的问题,并快速识别可疑的网络交互。理论上,我们可以使用 tcpdump 创建一个 IDS/IPS 系统,方法是让 Bash 脚本根据特定模式分析拦截的数据包。然后,我们可以设置条件,例如,禁止在一定时间段内发送过多 ICMP 回显请求的特定 IP 地址。

使用 Tcpdump 进行文件输入/输出

使用 -w 选项会将捕获的数据写入文件。请记住,当我们捕获离线流量时,如果不小心,可能会很快耗尽可用的磁盘空间,并导致存储问题我们的网段越大,存储空间耗尽的速度就越快。 利用上面演示的开关可以帮助调整 PCAP 中存储的数据量。

将我们的 PCAP 输出保存到文件中

Jackson310@htb[/htb]$ sudo tcpdump -i ens3 -w ~/output.pcaptcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10 packets captured
131 packets received by filter
0 packets dropped by kernel

在这里插入图片描述
上面的捕获会将输出生成到名为 output.pcap 的文件中。以这种方式运行 tcpdump 时,输出不会像平常一样滚动到终端。tcpdump 的所有输出都会被重定向到我们指定的捕获文件。

从文件读取输出

Jackson310@htb[/htb]$ sudo tcpdump -r ~/output.pcapreading from file /home/trey/output.pcap, link-type EN10MB (Ethernet), snapshot length 262144
11:15:40.321509 IP 172.16.146.2.57236 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [P.], seq 2751910362:2751910399, ack 946558143, win 501, options [nop,nop,TS val 1368866401 ecr 65790024], length 37
11:15:40.337302 IP 172.16.146.2.55416 > 172.67.1.1.https: Flags [P.], seq 3766493458:3766493533, ack 4098207917, win 501, length 75
11:15:40.398103 IP 172.67.1.1.https > 172.16.146.2.55416: Flags [.], ack 75, win 73, length 0
11:15:40.457416 IP ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https > 172.16.146.2.57236: Flags [.], ack 37, win 118, options [nop,nop,TS val 65799068 ecr 1368866401], length 0
11:15:40.458582 IP ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https > 172.16.146.2.57236: Flags [P.], seq 34:65, ack 37, win 118, options [nop,nop,TS val 65799068 ecr 1368866401], length 31
11:15:40.458599 IP 172.16.146.2.57236 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [.], ack 1, win 501, options [nop,nop,TS val 1368866538 ecr 65799068,nop,nop,sack 1 {34:65}], length 0
11:15:40.458643 IP ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https > 172.16.146.2.57236: Flags [P.], seq 1:34, ack 37, win 118, options [nop,nop,TS val 65799068 ecr 1368866401], length 33
11:15:40.458655 IP 172.16.146.2.57236 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [.], ack 65, win 501, options [nop,nop,TS val 1368866538 ecr 65799068], length 0
11:15:40.458915 IP 172.16.146.2.57236 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [P.], seq 37:68, ack 65, win 501, options [nop,nop,TS val 1368866539 ecr 65799068], length 31
11:15:40.458964 IP 172.16.146.2.57236 > ec2-99-80-22-207.eu-west-1.compute.amazonaws.com.https: Flags [F.], seq 68, ack 65, win 501, options [nop,nop,TS val 1368866539 ecr 65799068], length 0

在这里插入图片描述
这将读取存储在 中的捕获数据output.pcap。注意,它已返回到基本视图。要从捕获文件中获取更详细的信息,请重新应用我们的开关。

在这里插入图片描述
在这里插入图片描述
在TCP中,抓包工具如tcpdump通常会使用相对序列号,这样可以简化分析,显示的序列号是相对于初始序列号(ISN)的偏移量。因此,抓包中显示的序列号,如seq 1、seq 1449、seq 135等,表示的是相对于初始序列号的偏移值。

如果使用的是绝对序列号,你会看到更大的数字,这些数字会对应于实际的TCP数据包序列号。但在这里,由于序列号较小,并且是基于初始序列号的偏移量,所以可以确认使用的是相对序列号。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

http://www.dtcms.com/a/342706.html

相关文章:

  • 21.web api 12
  • Mybatis执行SQL流程(六)之Executor执行器
  • ubuntu配置Zotero+翻译插件+坚果云同步
  • 30、ICS/OT 攻击溯源 (电力系统) 模拟组件 - /安全与维护组件/ics-attack-forensics
  • 学习 k 均值聚类算法的心得
  • 记录一次el-table+sortablejs的拖拽bug
  • UTF-8 编码
  • 基于IPO智能粒子优化的IIR滤波器参数识别算法matlab仿真
  • 250821-RHEL9.4上Docker及Docker-Compose的离线安装
  • 大数据仓库分层
  • windows 下控制台只能输入或输入输出的问题
  • Java -- 互斥锁--死锁--释放锁
  • 机器学习两大核心算法:集成学习与 K-Means 聚类详解
  • 机器学习经典算法总结:K-Means聚类与集成学习(Bagging, Boosting, Stacking)
  • 机器学习核心算法笔记:集成学习与聚类算法
  • QT6(QSpinBox和QDoubleSpinBox)
  • java项目数据脱敏工具类实现
  • 【离线安装】CentOS Linux 7 上离线部署Oracle 19c(已成功安装2次)
  • 【数据可视化-96】使用 Pyecharts 绘制主题河流图(ThemeRiver):步骤与数据组织形式
  • 如何使用 DeepSeek 助力工作​
  • C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述-下篇)
  • 阿里云的centos8 服务器安装MySQL 8.0
  • 【LeetCode 415】—字符串相加算法详解
  • Java学习历程14——制作一款五子棋游戏(4)
  • R 语言科研配色 --- 第 85 期 (附免费下载的配色绘图PPT)
  • 全屋WiFi强电款WiFi6 86面板一站式测试解决方案
  • leetcode 904 水果成篮
  • 从零开始理解 K 均值聚类:原理、实现与应用
  • Grafana侧重可视化,那多数据源告警呢?
  • Linux的奇妙冒险——进程间通信(管道、SystemV IPC)