任务一介绍
Wireshark 是一款开源的跨平台网络数据包分析工具,能够嗅探和调查实时流量,并检查数据包捕获(PCAP)。它通常被用作最佳的数据包分析工具之一。在本房间,我们将了解Wireshark的基础知识,并用它进行基础的数据包分析。
学习目标
- 导航和配置Wireshark
- 检查数据包并发现TCP/IP不同层的信息
- 应用显示过滤器

任务二工具概述
使用场景
Wireshark 是目前最强大的流量分析工具之一。其用途有多重:
- 检测和排查网络问题,如网络负载故障点和拥塞。
- 检测安全异常,如流氓主机、异常端口使用和可疑流量。
- 调查和学习协议细节,如响应代码和有效载荷数据。
注意:Wireshark 不是入侵检测系统(IDS)。它只允许分析师深入发现和调查数据包。它也不会修改数据包;它读取了它们。因此,发现任何异常或网络问题高度依赖分析师的知识和调查技能。
图形界面与数据
Wireshark GUI以一个一体化页面开启,帮助用户以多种方式调查流量。乍一看,有五个部分尤为突出。
|--------------|-------------------------------------------------------------------------|
| 工具栏 | 主工具栏包含多个菜单和快捷方式,用于数据包的嗅探和处理,包括过滤、排序、摘要、导出和合并。 |
| 显示滤波器条 | 主要的查询和筛选部分。 |
| 近期档案 | 最近调查的档案列表。你可以通过双击调回列出的文件。 |
| 捕获滤波器与接口 | 捕获过滤器和可用的嗅探点(网络接口)。网络接口是计算机与网络之间的连接点。软件连接(例如 lo、eth0 和 ens33)使网络硬件得以实现。 |
| 状态栏 | 工具状态、配置文件和数字包信息。 |
下图显示了Wireshark的主窗口。表格中解释的章节被重点标示。
现在打开Wireshark,跟着攻略作。
加载PCAP文件
上图显示了Wireshark的空白界面。唯一可用的信息是最近处理过的文件。让我们加载那个文件,看看Wireshark详细的数据包演示。注意你也可以使用**"文件"** 菜单,拖拽文件,或双击文件加载pcap。http1.pcap

现在,我们可以看到处理完的文件名、详细的数据包数量和数据包详情。数据包详情显示在三个不同的面板中,允许我们以不同格式发现它们。
|---------|-----------------------------------------------------------------------------|
| 数据包列表面板 | 每个数据包的摘要(源地址和目的地址、协议以及数据包信息)。您可以点击列表中选择进一步调查的资料包。一旦你选择了一个数据包,详细信息会显示在其他面板中。 |
| 数据包详情面板 | 详细的协议分解,选定数据包。 |
| 数据包字节窗格 | 选定数据包的十六进制和解码ASCII表示。它会根据详情面板中点击的部分高亮数据包字段。 |
涂色包
除了快速的数据包信息外,Wireshark还会根据不同条件和捕获异常和协议的顺序给数据包涂色(这也解释了为什么截图中几乎所有内容都是绿色)。这种数据包信息的浏览可以帮助你在分析时准确定位。你可以自定义颜色规则,通过展示滤镜来发现感兴趣的事件,我们会在下一个房间介绍这些事件。现在让我们关注默认值,了解如何查看和使用所表示的数据细节。
Wireshark 有两种类型的数据包着色方法:一种是仅在程序会话中使用的临时规则,另一种是保存在偏好文件(配置文件)下,供下一个程序会话使用。您可以使用"右键菜单"或**"查看 --> 着色规则"** 菜单创建永久着色规则。"着色包列表" 菜单可激活或停用着色规则。临时分组着色通过"右键菜单"或**"查看 --> 对话过滤"**菜单完成,这些功能在 TASK-5 中已有涵盖。
默认的永久着色如下所示。
流量嗅探
你可以用蓝色**的"鲨鱼按钮"**开始网络嗅探(捕获流量),红色按钮会停止嗅探,绿色按钮会重新开始嗅探过程。状态栏还会显示所使用的嗅探界面和收集的数据包数量。

合并PCAP文件
Wireshark 可以将两个 pcap 文件合并为一个单一文件。你可以使用**"文件-->合并"** 菜单路径,将pcap与处理中的pcap合并。当你选择第二个文件时,Wireshark 会显示该文件中的数据包总数。点击"打开"后,它会将现有的pcap文件与选定的文件合并,并创建一个新的pcap文件。注意,在处理之前你需要保存"合并"的pcap文件。
详见GIF

查看文件详情
了解文件细节很有帮助。尤其是在处理多个pcap文件时,有时你需要了解并回忆文件细节(文件哈希、捕获时间、捕获文件注释、界面和统计数据),以识别文件、分类和优先排序。您可以通过点击"统计数据------>捕获文件属性" 或点击**"位于左下角的pcap图标"**查看详细信息。
详见GIF


任务三数据包剖分
数据包剖分
数据包拆解也称为协议拆解,它通过解码可用的协议和字段来调查数据包细节。Wireshark支持一长串的解剖协议,你也可以编写分析脚本。你可以在这里找到更多关于解剖的细节。
**注:**本节介绍了Wireshark如何使用OSI层拆分数据包,以及如何利用这些层进行分析。通常你已经对OSI模型及其工作原理有基础了解。
数据包详情
你可以点击包列表面板中的包来打开其详细信息(双击会在新窗口打开详细信息)。数据包由基于OSI模型的5到7层组成。我们将通过样本捕获的HTTP包来介绍所有这些内容。下图显示了第27号观看包。
每次点击某个细节时,它都会在数据包字节面板中高亮对应的部分。
让我们仔细看看细节面板。

我们可以看到包有七个不同的层:,,,,, , 和 。下面我们将更详细地介绍各层。frame/packet``source [MAC]``source [IP]``protocol``protocol errors``application protocol``application data
**框架(第一层):**这会显示你正在查看的帧/数据包,以及OSI模型物理层的具体细节。
见图片

**来源 [MAC](第2层):**这会显示源地址和目的地址;来自OSI模型的数据链路层。
见图片

**源 [IP](第3层):**这会显示源和目的 IPv4 地址;从OSI模型的网络层。
见图片

Protocol (Layer 4): This will show you details of the protocol used (UDP/TCP) and source and destination ports; from the Transport layer of the OSI model.
见图片

Protocol Errors: This continuation of the 4th layer shows specific segments from TCP that needed to be reassembled.
见图片

Application Protocol (Layer 5): This will show details specific to the protocol used, such as HTTP, FTP, and SMB. From the Application layer of the OSI model.
见图片

Application Data: This extension of the 5th layer can show the application-specific data.
见图片



任务四数据包导航
数据包编号
Wireshark 计算调查的数据包数量,并为每个数据包分配唯一编号。这有助于分析大捕获过程,并方便回溯事件的具体点。
前往数据包
数据包编号不仅有助于统计数据包总数,也有助于查找/调查特定数据包。此功能不仅能在数据包之间切换;它还提供帧内数据包跟踪,并查找会话特定部分的下一个数据包。你可以使用**"Go"**菜单和工具栏查看特定数据包。

查找数据包
除了数据包号外,Wireshark 还可以按数据包内容查找数据包。您可以使用**"编辑------>查找数据包"**菜单,在数据包内搜索某个感兴趣的事件。这有助于分析师和管理员发现具体的入侵模式或故障痕迹。
寻找数据包有两个关键点。第一个是知道输入类型。该功能支持四种输入类型(显示过滤器、十六进制、字符串和正则表达式)。字符串和正则表达式搜索是最常用的搜索类型。搜索不区分大小写,但你可以通过点击单选按钮设置大小写敏感度。
第二点是选择搜索字段。你可以在三个面板(包列表、包详情和包字节)中进行搜索,了解每个窗格中的可用信息对于找到感兴趣的事件非常重要。例如,如果你试图在数据包详情窗格中查找可用信息,并在包列表窗格中进行搜索,即使有这些信息,Wireshark也找不到。

标记数据包
标记数据包是分析师的另一个实用功能。你可以通过标记某个特定的资料包来查找或指向它以便进一步调查。它帮助分析师指向感兴趣的事件或从捕获中导出特定数据包。你可以使用**"编辑"** 或**"右键点击"**菜单来标记/取消标记数据包。
标记的数据包无论连接类型的原始颜色如何,都会以黑色显示。注意,标记的数据包信息会在每次文件会话中更新,因此关闭捕获文件后标记的数据包会丢失。

数据包注释
与数据包标记类似,评论也是分析师的另一个有用功能。你可以为特定数据包添加评论,帮助后续调查,或提醒并指出重要/可疑点,供其他层分析师参考。与数据包标记不同,评论可以保留在捕获文件中,直到操作员将其移除。

导出包
捕获文件在单个文件中可以包含数千个数据包。如前所述,Wireshark 不是 IDS,因此有时需要将特定包从文件中分离出来,深入挖掘以解决事件。此功能帮助分析师共享唯一可疑的包裹(确定范围)。因此,冗余信息不会被纳入分析过程。你可以用**"文件"**菜单导出数据包。

导出对象(文件)
Wireshark 可以提取通过 Wire 传输的文件。对于安全分析师来说,发现共享文件并保存以供进一步调查至关重要。导出对象仅适用于特定协议的流(DICOM、HTTP、IMF、SMB和TFTP)。

时间显示格式
Wireshark 会在数据包捕获时列出数据包,因此调查默认流并不总是最佳选择。默认情况下,Wireshark 以"捕获开始以秒数"显示时间,常用的是使用 UTC 时间显示格式以获得更好的视图。您可以使用**"查看------>时间显示格式"**菜单更改时间显示格式。


专家信息
Wireshark还能检测协议的特定状态,帮助分析师轻松发现可能的异常和问题。请注意,这些仅为建议,且总有可能出现误报或假阴性。专家信息可提供三种不同严重程度的类别组。详细信息见下表。
|----------|--------|-------------------|
| 严重程度 | 颜色 | 信息 |
| 聊天 | 蓝色 | 关于常规工作流程的信息。 |
| 注释 | 青色 | 重要事件,比如应用程序错误代码。 |
| 警告 | 黄色 | 比如异常错误代码或问题陈述等警告。 |
| 错误 | 红色 | 比如数据包格式错误。 |
常见的信息组列于下表。您可以参考Wireshark官方文档,了解更多关于专家信息条目的信息。
|---------|---------|---------|----------|
| 集团 | 信息 | 集团 | 信息 |
| 校验和 | 校验和错误 | 已弃用 | 已废弃协议的使用 |
| 评论 | 数据包评论检测 | 畸形 | 数据包检测异常 |
您可以使用状态栏中的**"左下角部分"** 或"**分析------>专家信息"**菜单,通过对话框查看所有可用信息条目。它会显示数据包号、摘要、组协议和总发生次数。


从第12个数据包的注释里可以看到,我们需要的图片在第39765个数据包中(选中第12个包,右键-

双击打开39765个数据包,找到图中位置

http://testphp.vulnweb.com/showimage.php?file=./pictures/2.jpg
会看到以上这个地址,打开(如用机器打不开,也可以用自己电脑),把图片下载到本地,查看md5值


911cd574a42865a956ccde2d04495ebf

搜索框搜.txt,得到提示,文件内容在4267个包里,

单击4367包,下方显示区划到最下面就是答案。

PACKETMASTER

打开Expert Info对话框
点击菜单栏:Analyze → Expert Info

任务5数据包过滤
数据包过滤
Wireshark 拥有强大的过滤引擎,帮助分析师缩小流量范围,聚焦于感兴趣的事件。Wireshark 有两种过滤方法:捕获和显示过滤。捕获过滤器用于**"捕获"** 仅适用于所用过滤器的数据包。显示过滤器用于**"查看"**适用于该过滤器的数据包。我们将在下一课讨论这些过滤器的区别及高级使用。现在让我们聚焦于显示过滤器的基本使用,这将首先帮助分析人员。
过滤器是为Wireshark官方协议参考中提供的协议设计的特定查询。虽然过滤器仅用于调查感兴趣事件,但有两种不同的方式可以过滤流量并去除捕获文件中的噪声。第一种使用查询,第二种使用右键菜单。Wireshark提供了一个强大的图形界面,对于++不想为基础任务编写查询的分析师有一条黄金法则:"++ 如果你能点击它,就可以过滤并复制它。"
应用为筛选
这是过滤流量最基本的方法。在调查捕获文件时,你可以点击你想过滤的字段,使用"右键菜单"或**"分析** **------>应用为过滤"**菜单来筛选特定值。请注意,总数据包和显示数据包的数量始终显示在状态栏上。

对话过滤器
当你使用"应用为过滤器"选项时,你只会过滤包中的一个实体。这个选项是调查数据包中特定值的好方法。然而,假设你想通过关注IP地址和端口号来调查某个特定的数据包号和所有关联的数据包。在这种情况下,"对话过滤"选项可以帮助你只查看相关数据包,并轻松隐藏其余数据包。您可以使用"右键菜单"或"分析------>对话筛选"菜单来筛选对话。

彩色对话
这个选项类似于"对话筛选",但有一个区别。它在不应用显示过滤器和减少查看包数量的情况下,高亮显示关联的数据包。该选项与"着色规则"选项配合使用,无需考虑之前应用的颜色规则即可更改数据包的颜色。您可以使用"右键菜单"或**"查看------>对话着色"** 菜单,一键为链接包着色。请注意,您可以使用**"查看------>着色对话------>重置上色"**菜单来撤销此作。

准备为过滤器
类似于"应用为过滤器",该选项帮助分析师通过"右键点击"菜单创建显示过滤器。然而,与之前的模型不同,这个模型在选择后不会应用过滤器。它会在面板中添加所需的查询,并等待执行命令(enter)或其他选择的过滤选项,通过使用**"..和/或者......"**从"右键菜单"中。

以列形式申请
默认情况下,包列表窗格会提供每个包的基本信息。您可以使用"右键菜单"或"分析------>应用为列"菜单,向数据包列表面板添加列。一旦你点击某个值并将其应用为列,它就会显示在数据包列表面板上。该功能帮助分析师检查捕获文件中可用数据包中特定值/字段的表现。你可以点击包列表窗格顶部来启用或禁用数据包列表窗格中显示的列。

关注直播
Wireshark 会用数据包分量显示所有内容。然而,可以重建这些流,并查看应用层面呈现的原始流量。按照协议,流帮助分析师重建应用级数据并理解感兴趣的事件。还可以查看未加密的协议数据,如用户名、密码及其他传输数据。
你可以使用"右键菜单"或**"分析** **------>跟踪TCP/UDP/HTTP流"**菜单来跟踪流量流。直播会在单独的对话框中显示;来自服务器的数据包以蓝色高亮显示,来自客户端的数据包以红色高亮。

一旦你跟踪了某个流,Wireshark 会自动创建并应用必要的筛选条件来查看该流。请记住,一旦应用了过滤器,可查看的数据包数量会发生变化。你需要使用位于显示滤波栏右上方的"X 按钮"来移除显示滤镜,查看捕获文件中所有可用的数据包。
简单的显示过滤查询
快速过滤大量数据包最简单的方法是使用下方图片中显示的"应用显示滤波器"条来应用显示滤波器。

有许多筛选查询,每个都可以经过大量调整以显示非常具体的结果。以下是一些简单的筛选工具,方便你开始。
按协议名称或端口
筛选 基于特定协议有两种基本过滤方式:按协议名称和按协议端口号。
要按协议名称 筛选,只需输入协议名称,然后点击回车键或点击显示过滤栏右侧的箭头按钮即可。下面的GIF展示了如何过滤HTTP流量的示例。你也可以用诸如、、、更多关键词来筛选其他协议。arp``dhcp``ftp``smtp``pop``imap

要按协议端口号 筛选,可以使用"tcp.port == <port number>" 或 "udp.port == <port number>"。例如,如果你只想看到 http 数据包,可以使用"tcp.port == 80"作为过滤器,然后按下回车键。下面的 GIF 展示了 http 端口过滤器的示例。

按IP
过滤分析数据包捕获时,通常需要针对特定IP进行过滤。要过滤特定IP,可以使用结构"ip.addr == <IP address>"。因此,如果你需要搜索IP 192.168.1.2,你的过滤器应为"ip.addr == 192.168.1.2"。下面的GIF展示了IP过滤器的示例。


