Wireshark - 网络抓包工具截取并分析各种网络数据包
Wireshark无疑是一款广受欢迎的网络封包分析软件,它能够截取并分析各种网络数据包,同时详细展示每个数据包的详细信息。这使得它成为开发测试过程中不可或缺的问题定位工具。作为全球使用最广泛的开源网络协议分析工具之一,Wireshark赋予了用户深入洞察网络流量的能力,可以实时捕获并解析网络数据包。对于网络管理员、安全工程师、开发人员以及网络技术爱好者而言,Wireshark是一个不可或缺的助手。
Wireshark的核心功能包括以下几点:
实时捕获网络数据包:能够随时获取当前网络中的传输数据。
详细的协议解码:提供对各种网络协议深入且细致的解码分析。
丰富的过滤功能:内置强大的过滤系统,可以快速筛选出用户关心的数据包。
支持多种捕获文件格式:兼容多种格式的捕获文件,增强了工具的通用性。
强大的统计分析工具:提供多样的统计功能,帮助用户全面理解网络活动。
深度协议分析:支持对数百种协议进行深入解析,将复杂的网络数据转换为易于理解的形式,如HTTP、TCP/IP、DNS、SSL/TLS等。
强大的过滤系统:具备显示过滤器和捕获过滤器,能够精准筛选出感兴趣的网络流量,极大地提高分析效率。
跨平台支持:可在Windows、macOS、Linux等多个操作系统上运行,为用户提供一致的使用体验。
图形化界面:拥有直观的图形用户界面,包含数据包列表、协议树和十六进制视图,多角度助力数据分析。
丰富的统计功能:提供包括会话统计、协议分层统计、IO图表在内的多种统计工具,帮助用户快速掌握网络流量的特性。
插件扩展:支持通过Lua脚本和插件扩展功能,用户可以根据自己的需求定制分析功能。
这些功能使得Wireshark成为一个多面手,能够满足不同用户在网络分析中的各种需求。
Wireshark官网:Wireshark - 网络抓包工具截取并分析各种网络数据包
安装 Wireshark
在这一步中,我们将在 Ubuntu 系统上安装 Wireshark。Wireshark 在默认的 Ubuntu 软件仓库中可用,这使得安装过程非常简单。
首先,打开终端。在桌面上找到并打开 Xfce 终端。
更新软件包列表,以确保我们拥有最新的可用软件信息。运行以下命令:
注意:免费用户无法连接到互联网,因此 Wireshark 已在实验室环境中预安装。你可以跳到列表中的第 5 项(检查 Wireshark 是否已安装)。升级为专业用户 以自行安装 Wireshark。
sudo apt update
现在我们的软件包列表已经是最新的了,接下来安装 Wireshark。输入以下命令:
sudo apt install wireshark -y
在安装过程中,系统会询问你是否允许非超级用户捕获数据包。使用方向键选择 "Yes" 并按 Enter 键。这将允许你在不需要以 root 权限运行的情况下使用 Wireshark,这样更安全。
安装完成后,通过检查 Wireshark 的版本来验证是否安装成功:
wireshark --version
你应该会看到显示 Wireshark 版本号的输出。
为了确保你拥有捕获数据包所需的权限,将你的用户添加到 wireshark 组中:
首先,检查 wireshark 组是否存在:
getent group wireshark
如果 wireshark 组不存在,使用以下命令创建该组:
sudo groupadd wireshark
默认情况下,Wireshark 以非 root 权限运行,这可能会限制其从某些接口或协议捕获数据包的能力。为了赋予 Wireshark 使用 Dumpcap(一个随 Wireshark 一起安装的工具)所需的权限,请使用以下命令:
sudo chgrp wireshark /usr/bin/dumpcap sudo chmod 4755 /usr/bin/dumpcap sudo gpasswd -a $USER wireshark
恭喜!你已经安装了网络分析师工具包中最强大的工具之一。
捕获网络流量
现在我们已经安装了 Wireshark,接下来让我们捕获一些网络流量。这就像设置一张网,捕捉流经我们网络接口的所有数据包。
在终端中输入 wireshark 并按 Enter 键打开 Wireshark。
当 Wireshark 打开时,你会看到一个网络接口列表。寻找标有 "eth0" 或 "eth1" 的接口——这些通常是主要的网络接口。
双击接口以开始捕获数据包。你会看到主窗口中开始出现数据包流。
让我们生成一些流量来捕获。打开一个新的终端窗口并输入以下命令:
curl http://example.com
该命令将获取 example.com 的网页,生成一些 HTTP 流量。
捕获几秒钟后,点击 Wireshark 窗口顶部的红色“停止”按钮以停止捕获。
你刚刚捕获了第一批网络流量!捕获中的每一行代表一个数据包——通过网络发送的小数据单元。
要将此捕获保存以供后续分析,请转到 文件 > 保存,并将文件保存为 myfirstcapture.pcapng,保存到你的主目录中(/home/labex)。
捕获网络流量的过程是网络分析的基础。在接下来的步骤中,我们将学习如何理解这些数据。
分析数据包
现在我们已经捕获了一些网络流量,接下来让我们深入数据,看看能学到什么。
在 Wireshark 中打开你保存的捕获文件,方法是转到 文件 > 打开,然后从主目录中选择 myfirstcapture.pcapng。或者,双击文件直接打开。
在顶部窗格中,你会看到所有捕获的数据包列表。每一行代表一个数据包,并包含诸如源 IP 地址、目标 IP 地址、使用的协议以及简要信息字段等内容。
点击一个数据包以选中它。在中间窗格中,你会看到数据包详细信息被分解为不同的协议层。这就像剥洋葱一样——每一层都揭示了数据包的更多信息。
让我们查找 HTTP 流量(网页浏览)。在窗口顶部的过滤器栏中输入 http 并按 Enter 键。这将仅显示 HTTP 数据包。
找到一个在信息字段中包含 "GET" 的数据包。这表示对网页的请求。点击它以查看详细信息。
在数据包详细信息窗格(中间)中,展开 "Hypertext Transfer Protocol" 部分。在这里,你可以看到有关 HTTP 请求的详细信息,包括请求的特定页面。
现在,让我们查找服务器的响应。找到一个在信息字段中包含 "HTTP/1.1 200 OK" 的数据包。这表示来自 Web 服务器的成功响应。
检查此数据包的详细信息。你可能会在 "Line-based text data" 部分看到网页的内容。
这种分析过程对于理解网络行为至关重要。这就像阅读对话日志——你可以看到谁在和谁交谈、他们在说什么以及他们是如何说的。
使用过滤器
Wireshark 的真正强大之处在于它能够快速过滤和分析大量网络数据。在这一步中,我们将学习如何使用过滤器来专注于特定类型的流量。
在 Wireshark 中打开你的捕获文件后,让我们从使用一些简单的显示过滤器开始:
要仅显示 TCP 流量,在过滤器栏中输入 tcp 并按 Enter 键。
要显示与特定 IP 地址相关的流量,输入 ip.addr == 93.184.215.14(这是 example.com 的 IP 地址,但你可以将其替换为你捕获中看到的任何 IP 地址)。
要显示所有 HTTP GET 请求,输入 http.request.method == "GET"。
让我们创建一个更复杂的过滤器。我们将查找所有对 example.com 的 HTTP GET 请求:
在过滤器栏中输入:http.request.method == "GET" && http.host contains "example.com"
此过滤器显示所有对包含 "example.com" 的域名的 GET 请求。
Wireshark 还允许你保存过滤器以供以后使用。让我们保存我们的 HTTP GET 过滤器:
点击过滤器栏旁边的加号("+")。
将过滤器命名为 "HTTP GETs" 并点击保存。
现在你可以通过从保存的过滤器列表中选择它来快速应用此过滤器。
最后,让我们导出一些发现。转到 统计 > HTTP > 请求,然后点击 "另存为" 将 HTTP 请求列表导出到文件。
选择 /home/labex 并将文件保存为 http_requests.txt。
通过这种方式使用过滤器,你可以快速筛选大量网络数据并专注于重要内容。这就像拥有一个超级放大镜,可以立即显示特定类型的网络流量。
-
LibChecker_超棒的查看系统内部架构的手机应用
LibChecker是一款卓越的手机应用,专为查看和修改系统内部架构而设计。它能够深入剖析app的基础架构数据,包括ABI架构的查看与统计(支... 902 0 25-06-11 -
八哥京东多帐号免费软件 京东商城抢购助手
八哥京东商城抢购助手是针对京东商城制作的一款商品抢购软件,软件可以帮助用户在到达活动开始时间后自动对指定的商品进行抢购,再也不用担... 1052 0 25-05-15 -
ThinkPhp_V5.0.5 程序源码
ThinkPHP V5.0是一个为API开发而设计的高性能框架——是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减... 1324 0 24-05-24 -
全屏切换查看图片
430 0 21-06-02 -
jquery点击展开收缩垂直菜单
400 0 21-06-01 -
Java案例开发
Java语言是一种非常强大的软件编程语言,Java平台则是一个完整的软件开发体系平台。Java 语言具备简单性、面向对象性、分布式、解释性、健... 1033 0 24-05-28 -
css动画图标按钮
384 0 21-05-17 -
css鼠标滑过图片各种滤镜效果
387 0 21-05-17
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~