Wireshark分析的GUI页面能解决大多数问题,但其一次性提供的信息太多或者在某些时候不得不依靠命令行来完成操作。在数据包分析领域常用的命令行工具有TShark 和 Tcpdump ,其中TShark可以在Windows和UNIX中使用,而TCPdump只能在UNIX中使用。且两者用法差不多,故我们只介绍TShark。
首先,你需要安装一个Wireshark,因为TShark是基于终端的Wireshark,可以用如下方法确定自己是否正确安装TShark。
用tshark -v来确定,如果正确,那它会打印出版本信息,否则收到错误消息。
可以使用tshark -h 来查看其内置的各种命令。
下面给出一些例子。
shark 从网卡开始抓取当前流量并实时显示。
tshark -D 显示当前所有网卡
tshark -i [num] 使用编号为num的网卡
tshark -i [num] -w packets.pcap 把从num号网卡捕获的流量保存到packets.pcap
tshark -r packets.pcap 将内容打印到屏幕上
tshark -r packets.pcap -c10 显示抓取的包里前十个包信息
tshark -i 1 -w packets.pcap -c10 抓取前十个包并保存
tshark -r packets.pcap -V -c10 显示抓取的包里前十个包的更多信息
tshark -xr packets.pcap 查看数据包的ASCII形式或十六进制字节形式并结合-r显示
tshark -ni 1 通过-n参数来禁用Tshark的名称解析
tshark -i 1 -Nt 参数-N用来启用或禁用一些名称解析的特定功能
m:MAC地址解析
n: 网络地址解析
t:传输层解析(端口服务名称)
N:使用外网解析服务
C:使用当前DNS解析
使用-f来应用捕获过滤器
tshark -ni 1 -w packets.pcap -f "tcp port 80" 仅抓取和储存目的端口号是80的TCP流量
使用-Y来应用显示过滤器
tshark -ni 1 -w packets.pcap -Y "tcp.dstport == 80"
使用-t 来自定义时间显示格式
a绝对时间 ad 带日期的绝对时间 d 自之前捕获的数据包以来的增量 dd 之前显示的数据包
e 亿元时间 r 和首个数据包的时间差 u 绝对时间(UTC) ud 带日期的绝对时间(UTC)
使用-z使用其他功能
例如:tshark -r packets.pcap -z io,phs
ip_hosts,tree:显示每个IP地址并统计每个IP地址所占流量的比率
io,phs:分层级统计在捕获文件中找到的所有协议
http,tree:显示关于HTTP请求和回应的统计
http_req,tree显示每个HTTP请求的统计
smb,srt显示关于Windows会话的SMB命令的统计
endpoints,wlan:显示无线端点
expert:从捕获中显示专家信息(对话,错误等)