介绍
在网络安全领域,理解并识别可疑的网络活动对于维护安全且有弹性的网络基础设施至关重要。本教程将指导你使用 Wireshark,一个强大的网络协议分析器,来检测和分析网络环境中潜在的威胁。
在网络安全领域,理解并识别可疑的网络活动对于维护安全且有弹性的网络基础设施至关重要。本教程将指导你使用 Wireshark,一个强大的网络协议分析器,来检测和分析网络环境中潜在的威胁。
Wireshark 是一个强大的开源网络协议分析器,它允许你实时捕获和检查网络上往返的数据。安全专业人员使用它来:
让我们从在你的 Ubuntu 系统上安装 Wireshark 开始。打开一个终端并执行以下命令:
sudo apt update
sudo apt install -y wireshark
在安装过程中,你将被问到非超级用户是否应该能够捕获数据包。在这个实验环境中,为了方便起见,选择“Yes”。
安装可能需要几分钟。完成后,你应该看到输出,表明 Wireshark 已成功安装。
为了在不以 root 身份运行 Wireshark 的情况下捕获数据包,我们需要将你的用户添加到 wireshark 组:
sudo usermod -a -G wireshark $USER
为了使更改生效,我们需要注销并重新登录,但对于这个实验,我们可以使用以下命令立即应用更改:
newgrp wireshark
让我们验证 Wireshark 是否已正确安装:
wireshark --version
你应该看到类似如下的输出:
Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)
Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.15.3, with libpcap, with POSIX capabilities
(Linux), with libnl 3, with Lua 5.2.4, with GLib 2.72.1, with zlib 1.2.11,
with Snappy, with libpcap 1.10.1, with GNUTLS 3.7.3, with Gcrypt 1.9.4.
现在让我们使用图形界面启动 Wireshark:
wireshark &
Wireshark 应用程序将在一个新窗口中打开。你将看到主界面,其中列出了可用于数据包捕获的网络接口。
花点时间熟悉一下 Wireshark 用户界面:
在下一步中,我们将学习如何使用 Wireshark 捕获网络流量。
在捕获网络流量之前,我们需要了解要监视哪个网络接口。在一个典型的系统中,你可能拥有几个接口:
eth0 或 ens33:以太网(有线)连接wlan0:Wi-Fi 连接lo:环回接口(本地流量)让我们检查系统上可用的网络接口:
ip a
此命令将显示所有网络接口。查找类似 eth0、ens33 或其他网络接口的接口(确切的名称取决于你的系统配置)。
为了确保我们有一些网络流量可以分析,让我们通过发出一些 Web 请求来生成一些基本的 HTTP 流量:
## 创建一个目录来保存我们的捕获
mkdir -p ~/wireshark_lab
## 生成一些 HTTP 流量
curl -s http://example.com > /dev/null
curl -s http://google.com > /dev/null
现在,让我们使用 Wireshark 捕获一些网络流量:
wireshark &
在 Wireshark 主窗口中,找到你的主要网络接口(可能是 eth0 或 ens33 - 使用你之前使用 ip a 命令标识的接口)。
双击网络接口开始捕获数据包。
你将看到数据包开始出现在主窗口中,因为它们被捕获:
让我们在 Wireshark 捕获时生成更多网络流量:
## 打开一个新的终端窗口并执行:
ping -c 5 google.com
返回 Wireshark,你应该看到 ICMP ping 数据包出现在捕获中。
要停止捕获,请单击工具栏中的红色正方形按钮,或转到 Capture > Stop。
现在我们已经捕获了一些网络流量,让我们保存它以供进一步分析:
在 Wireshark 中,转到 File > Save 或按 Ctrl+S。
导航到我们之前创建的 ~/wireshark_lab 目录。
将你的文件命名为 basic_capture.pcapng 并单击 Save。
## 验证捕获文件是否已保存
ls -la ~/wireshark_lab/
你应该在输出中看到你的 basic_capture.pcapng 文件。
让我们练习打开我们保存的捕获文件:
在 Wireshark 中,转到 File > Open 或按 Ctrl+O。
导航到 ~/wireshark_lab/basic_capture.pcapng 并打开它。
捕获的数据包现在应该显示在 Wireshark 中,准备好进行分析。
在下一步中,我们将学习如何过滤和分析此捕获的流量,以识别特定类型的网络活动。
Wireshark 显示过滤器允许你仅查看符合特定条件的数据包。这在分析大型数据包捕获以查找相关信息时至关重要。
Wireshark 显示过滤器的基本语法是:
protocol.field == value
例如:
ip.addr == 192.168.1.1 - 显示具有此 IP 地址的数据包tcp.port == 80 - 显示具有 TCP 端口 80 的数据包http - 显示所有 HTTP 数据包让我们练习将一些基本过滤器应用于我们捕获的流量:
wireshark ~/wireshark_lab/basic_capture.pcapng &
找到数据包列表顶部的过滤器栏(当为空时,它显示“Apply a display filter...”)。
让我们过滤 DNS 流量。在过滤器栏中键入以下内容:
dns
现在你应该只在显示中看到 DNS 数据包。这些是域名解析请求和响应。
http
应用过滤器并观察 HTTP 数据包。
ip.addr == [replace_with_an_ip_from_your_capture]
例如:ip.addr == 93.184.216.34(如果你看到到 example.com 的流量)
你可以使用逻辑运算符组合过滤器:
&& 或 and 用于 AND 运算|| 或 or 用于 OR 运算! 或 not 用于 NOT 运算让我们尝试一个组合过滤器:
http && ip.addr == [replace_with_an_ip_from_your_capture]
这将仅显示到/来自指定 IP 地址的 HTTP 流量。
让我们为 TCP 流量创建并保存一个过滤器:
tcp
应用过滤器。你应该只看到 TCP 数据包。
让我们保存此过滤器以供将来使用。单击过滤器栏右侧的“+”按钮。
在出现的对话框中,输入:
TCP Traffictcp单击“Save”以保存此过滤器。
Wireshark 提供了捕获中协议的有用可视化:
转到 Statistics > Protocol Hierarchy。
这显示了按百分比和数据包计数分解的协议。
审查完毕后关闭此窗口。
让我们保存我们捕获的过滤视图:
应用你选择的过滤器(例如,http 或 dns)。
转到 File > Export Specified Packets。
确保在“Packet Range”部分中选择了“Displayed”。
导航到 ~/wireshark_lab/ 并另存为 filtered_capture.pcapng。
验证文件是否已保存:
ls -la ~/wireshark_lab/
你应该同时看到你的原始捕获文件和过滤后的捕获文件。
在下一步中,我们将使用这些过滤技术来识别可疑的网络活动。
在出于安全目的分析网络流量时,某些模式和行为可能表明存在可疑或恶意活动:
为了学习的目的,让我们模拟一些可以使用 Wireshark 检测到的可疑网络活动:
## 创建一个目录用于我们的安全分析
mkdir -p ~/wireshark_lab/security_analysis
## 模拟端口扫描(仅限于几个端口以进行演示)
nmap -p 80,443,22,21,25 scanme.nmap.org > ~/wireshark_lab/security_analysis/scan_results.txt 2>&1
注意:上面的 nmap 命令对 scanme.nmap.org 服务器的常见端口执行扫描,该服务器专门用于测试 nmap。
wireshark &
在 Wireshark 中,双击你的主网络接口以开始捕获。
在单独的终端中,运行模拟命令:
## 在捕获时模拟另一个端口扫描
nmap -p 80,443,22,21,25 scanme.nmap.org > /dev/null 2>&1
命令完成后,通过单击红色正方形按钮停止 Wireshark 捕获。
将此捕获保存为 suspicious_traffic.pcapng,位于 ~/wireshark_lab/security_analysis/ 目录中。
端口扫描是攻击者用来发现系统上运行的服务的一种常见侦察技术。让我们在我们的捕获中识别端口扫描活动:
tcp.flags.syn == 1 && tcp.flags.ack == 0
此过滤器显示 TCP SYN 数据包,这些数据包用于启动连接。大量这些数据包到同一主机上的不同端口表明存在端口扫描。
tcp.flags.syn == 1 && tcp.flags.ack == 0 && ip.addr contains scanme.nmap.org
让我们在简单的安全分析报告中记录我们的发现:
## 创建一个报告文件
nano ~/wireshark_lab/security_analysis/security_report.txt
将以下内容添加到文件中:
安全分析报告
=======================
日期:[当前日期]
发现:
1. 检测到端口扫描活动
- 来源:[你的 IP 地址]
- 目标:scanme.nmap.org
- 目标端口:80,443,22,21,25
- 证据:TCP SYN 数据包到多个端口
2. 分析方法:
- 使用 Wireshark 捕获网络流量
- 应用过滤器:tcp.flags.syn == 1 && tcp.flags.ack == 0
- 识别系统连接尝试的模式
3. 建议措施:
- 监视未经授权的扫描活动
- 实施防火墙规则以限制出站扫描
- 考虑实施网络入侵检测系统
按 Ctrl+O,然后按 Enter 保存文件,并使用 Ctrl+X 退出 nano。
让我们创建一个自定义过滤器来检测潜在的安全问题:
(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (dns.qry.type == 1 && dns.qry.name contains "suspicious") || (http.request && ip.addr == 192.168.0.1)
此复杂过滤器查找:
保存此过滤器:
Security Monitoring导出此过滤器配置以供将来使用:
## 首先,打开你的 Wireshark 配置文件目录以找到已保存的过滤器
ls -la ~/.config/wireshark/
让我们验证我们的安全分析工件:
## 列出我们创建的所有文件
ls -la ~/wireshark_lab/security_analysis/
你应该看到:
scan_results.txt - 我们的 nmap 扫描的输出suspicious_traffic.pcapng - Wireshark 捕获的可疑活动security_report.txt - 我们的分析报告这些文件代表一个基本的网络安全分析工作流程:
在真实的安全环境中,你将继续完善你的检测技术,创建更复杂的过滤器,并将 Wireshark 分析与其他安全工具集成,以进行全面的威胁检测和响应。
在这个实验中,你获得了使用 Wireshark 的实践经验,Wireshark 是一款在网络安全领域广泛使用的强大网络协议分析器。你已经学会了如何:
这些技能构成了用于网络安全目的的网络流量分析的基础。通过了解如何有效地使用 Wireshark,你可以监视网络流量,检测异常情况,并在潜在的安全威胁造成重大损害之前识别它们。
在你继续你的网络安全之旅时,你可以通过学习更高级的过滤技术,开发自定义检测规则,并将 Wireshark 与其他安全工具集成,来构建这些基础知识,从而创建全面的网络监控解决方案。