「Wireshark」- 网络协议分析工具

  CREATED BY JENKINSBOT

安装 Wireshark 工具

How to set up wireshark to run without root on Debian? – Super User

在 Ubuntu 21.04 中,按照如下方法安装:

# apt-get install -y wireshark

# dpkg-reconfigure wireshark-common
...
Should non-superusers be able to capture packets?
                               <Yes>
...

# adduser <your username> wireshark

# reboot // 或者,退出重新登录当前帐号

编写表达式

6.4. Building Display Filter Expressions

应用场景

通过 tcpdump 抓包,然后通过 Wireshark 分析

https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/

我们能够使用 tcpdump 保存数据包信息,将数据包信息导入 wireshark 中分析:
1)不仅以更规整的格式,展示各个网络包的头部信息;
2)还用不同颜色展示 DNS 和 ICMP 这两种不同的协议;
3)选择某一个网络包后,在其下方的网络包详情中,可以看到这个包在协议栈各层的详细信息

我们将要访问的是 http://example.com/ 站点,并分析流量:

# tcpdump -i any -nn host example.com -w web.pcap

# curl http://example.com

// 按下 Ctrl+C 停止 tcpdump 命令

# wireshark

常见问题处理

远程主机抓包

How can I sniff the traffic of remote machine with wireshark? – Server Fault
[OpenWrt Wiki] How to capture, filter and inspect packets using tcpdump or wireshark tools

ssh root@<SERVER> tcpdump -U -s0 -i <INTERFACE> -w - "<EXPRESSION>" | wireshark -k -i -

# tcpdump
# -U:配合 -w 选项,将数据包立即写入文件,而不是当缓冲写满后再写入文件;
# -s0:使被捕获的数据包完全发送到标准输出,而非截断,以使 Wireshark 获取完整的数据包;

# wireshark
# -k:使用 -i 指定的接口立即开始捕获

协议无法被展示

Wireshark Q&A/Monitoring FTP on a different port number

问题描述:在 TCP 的 FTP 中,协议内容无法被展示,而是直接以 Data: xxx 形式显示。

原因分析:我们的 FTP 服务未使用默认的 21 端口,并且上层 TCP 也不包含内部协议类型,所以 Wireshark 无法识别。

解决方案
1)右键 ⇒ Decode As…
2)Value 设置为特殊的端口号;Current 设置为协议类型;
3)OK,然后便能显示协议数据内容;

增加显示信息(增加列)

Malware-Traffic-Analysis.net – Changing the column display in Wireshark

Edit ⇒ Preferences ⇒ User Interface ⇒ Columns

调整时间

Wireshark/Doc/7.6. Time Stamps

View ⇒ Time Display Format ⇒ XXXXXXX

参考文献

Wireshark – Wikipedia