Wireshark / tshark 流量分析速查

Wireshark / tshark 流量分析速查

本文字数:1210  阅读时长:3分钟

访客数:加载中... | 阅读量:加载中...

Wireshark 是抓包与分析流量的利器,tshark 则是它的命令行版本。本文是一份面向取证与 CTF 场景的速查,覆盖常见协议的分析要点、显示过滤器语法以及 tshark 的常用参数。

常见协议分析要点

拿到一个流量包,先看它包含哪些协议、流量整体在做什么,基本就能定位到寻找答案的位置。

HTTP

  • 分析主要集中在流量中的文件或总体分析上:搞明白流量在做什么之后,基本可以定位到寻找答案的位置。
  • 重点查看请求方法、URI、Host 头、Cookie、表单提交内容等字段,CTF 中常直接在明文 HTTP 流量中携带 flag 或敏感信息。

HTTPS

  • HTTPS = HTTP + SSL/TLS,服务端和客户端的信息传输都会通过 TLS 加密,因此传输的数据都是加密后的数据。
  • 若打开流量包发现是 SSL 加密过的数据,导入题目提供的私钥即可解密。Wireshark 操作路径:编辑 > 首选项 > Protocols > TLS > Edit RSA keys list。

TCP

  • TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。
  • TCP 连接需要三次握手才能建立,建立连接之后才开始发送数据,且可以保证数据的完整性,利用重传机制防止数据传输过程中的丢失;断开连接则需要四次挥手。

UDP

UDP 报文头字段:

  • 源端口:通常包含发送数据报的应用程序所使用的 UDP 端口。
  • 目的端口:接收端计算机上 UDP 软件使用的端口。
  • 长度:UDP 数据报长度,包含 UDP 报文头和 UDP 数据长度。因为 UDP 报文头长度是 8 个字节,所以这个值最小为 8。
  • 校验值:可以校验数据在传输过程中是否被损坏。

UDP 是面向无连接、不可靠的传输协议,适用于语音、视频等实时性要求较高的场景。

DNS

  • DNS 通常使用 UDP 协议。
  • DNS 定义了两种报文:一种为查询报文;另一种是对查询报文的响应,称为响应报文。

FTP

  • Wireshark 把带有 FTP 控制信息的包解析为 FTP 协议。
  • 对于只传输了文件内容或者命令执行结果的 FTP 数据包,解析为 FTP-DATA。

显示过滤器(Display Filter)

在 Wireshark 顶部的过滤栏输入,常用语法:

text
ip.src == 192.168.1.100      筛选源地址为 192.168.1.100 的数据包
ip.dst == 192.168.1.100      筛选目标地址为 192.168.1.100 的数据包
ip.addr == 192.168.1.100     筛选源 IP 或目标 IP 为 192.168.1.100 的数据包
tcp.port == 80               筛选源或目的端口为 80 的数据包
tcp.srcport == 80            筛选 TCP 源端口为 80 的数据包
tcp.dstport == 80            筛选 TCP 目的端口为 80 的数据包

tshark 命令行速查

tshark 是 Wireshark 的命令行版本网络分析工具,完全开源、跨平台,继承了 Wireshark 强大的协议解析能力,同时具备命令行工具的自动化、无依赖特性,非常适合在无 GUI 环境(如服务器)、批量处理数据包、编写取证脚本等场景下使用。

基本用法:

text
tshark [选项] [过滤规则]

主要参数:

参数说明
-T设置解码结果输出格式:pdml / ps / text / fields / psml,默认为 text
-e与 -T fields 配合,指定输出哪些字段
-R读取过滤器(read filter),过滤语法同显示过滤器;新版本中已由 -Y 取代
-r设置读取本地文件 <infile>
-Y显示过滤器(display filter),单次分析中可代替 -R

示例:从 pcapng 中按条件提取字段并保存到文本文件。

text
tshark -r modbus.pcapng -e modbus.regval_uint16 -Y "frame.len == 66 && tcp.srcport == 502" -T fields > mm.txt

参数说明:

  • -r:读取的文件名 modbus.pcapng
  • -e:提取的字段名称
  • -Y:过滤的条件
  • -T:提取的格式
  • > mm.txt:将提取的数据保存到 mm.txt 文件

各选项之间的顺序不影响结果。