安装 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
参考文献