从零开始搭建 Wireshark

您好。
我不小心发送了 `echo "" > /etc/passwd` 命令。我是系统解决方案部门的 Kawa。
这次网络工具的我想写写Wireshark,我之前在一篇关于
顺便一提,我最喜欢的鲨鱼电影《深海狂鲨》。
Wireshark是什么?
这是一个众所周知的工具,几乎是网络工程师的必备工具。
它兼容 Windows 和 macOS 系统,能够捕获已安装电脑上的数据包,并以极其简便的方式进行可视化呈现。
在故障排除过程中,它常用于网络调查。
下载和安装
官方网站(https://www.wireshark.org/的“下载”部分,点击与您的操作系统对应的文件名,即可下载软件

下载完成后,打开可执行文件,并按照安装程序的指示操作,每次都点击“下一步”。

(对于上述项目,默认设置通常即可。)
安装完成后,打开 Wireshark,如果看到类似下图的屏幕,就说明安装完成了。

双击带有波浪线的网络适配器,即可查看所连接主接口的捕获结果。
如何查看 Windows 捕获数据
选择接口后,捕获的入站/出站数据包会立即开始流入(IP 信息和其他细节已被模糊处理)⬇。

这一切是不是有点令人困惑?
让我们尝试从命令提示符向我们的网站(beyondjapan.com)发送一个 ping 请求。
> ping beyondjapan.com
在顶部的搜索框中输入“icmp”,然后按回车键。ping

结果将会排序,您将能够看到发往我们网站的 ICMP 数据包。
右键单击底部文本,选择“全部展开”以查看数据包内容。

橙色部分:源/目标地址、路由器型号和 MAC 地址等。
绿色部分:IP 版本(本例中为 v4)和报头长度。
粉色部分:标志、TTL 和协议。
红色部分:ICMP 类型和校验和。
在这种情况下,由于是 ICMP,可用的信息并不丰富,但只要数据包没有加密,就可以看到有效载荷等详细数据(严禁滥用)。
顺便一提,如果你查看著名人物阿部宽的HTTP网站,就能很清楚地看到你的访问来源。

橙色部分:请求方法和HTTP版本;
绿色部分:主机信息、浏览器用户代理信息、语言、来源网址等;
粉色部分:访问的URL、与该次访问相关的帧编号。
使用HTTP网站时,您需要格外小心在表单中输入的信息。
如果您通过未加密的表单发送密码或其他敏感信息,则可以通过数据包捕获检测到密码字符串。
(这就是为什么不建议连接公共Wi-Fi网络的原因。)
过滤器
我们将使用 Wireshark 语法进行搜索。
这次,我将介绍一些常用的语法符号。由于可以使用多种编写风格,包括正则表达式,因此这似乎对与 API 交互时的故障排除也很有用。
- 按 IP 地址筛选
ip.addr == xx.xx.xx.xx !(ip.addr==xx.xx.xx.xx) #排除特定IP
我们来尝试向“1.1.1.1”发送一个 ping 请求,并查看结果。

您可以看到 ping 请求和回复之间的交互过程。
按端口号筛选
tcp.port == xx udp.port == xx tcp.port == xx || udp.port == xx # 多次搜索,使用 or !(tcp.port == xx) # 排除特定端口 !(tcp.port==xx) && ip.addr==xx.xx.xx.xx # 与条件
我们来检查一下 TCP/443 通信。

通过查找 IP 地址,我们可以看到 Google 搜索的流程。
查看“信息”部分中的说明和标志,我们可以看到 TCP 握手过程(ACK、FIN 等)。
在 Linux 机器上进行数据包捕获
如果你的电脑上安装了 Wireshark,就可以查看在 Linux 机器上捕获的数据包文件。
这次之前介绍过的 tcpdump我们将使用
(请事先使用 yum 或 apt 安装 tcpdump。)
本文使用 Ubuntu 系统创建自定义文件并输出捕获的数据。
数据将写入名为“test.pcap”的文件(pcap 是数据包捕获文件的文件扩展名)。
*使用 ifconfig 或类似命令来识别并指定未连接到互联网的接口名称。
> tcpdump -i ens33 -w test.pcap
捕获过程会持续进行,直到您取消为止,因此请利用这段时间生成您想要检查的通信(例如浏览器访问)。
使用“Ctrl+C”终止 tcpdump 进程,并将输出文件传输到您的 Windows/macOS 计算机。
使用 Wireshark 打开提取的 pcap 文件即可查看捕获的数据。

↑图中显示了一个漂亮的圣诞扫描数据包(小朋友们请勿在家尝试)。
Wireshark 的优势在于,只要知道如何读取数据包,任何人都可以轻松捕获数据包流。
除了可以从你的电脑捕获数据包之外,你还可以通过交换机创建镜像端口来捕获流经本地网络的所有数据包,这使得它成为实际应用中常用的软件。它也是学习
TCP/IP 协议的绝佳途径,所以我强烈推荐安装它。
10
