1. Tshark 1.1 Tshark简介 1.2 man Page 1.3 Tshark时间显示 1.4 统计 statistics 2. Tcpdump 2.1 tcpdump -h 2.2 包格式 3. tshark VS tcpdump 3.1 命令行捕获 3.2 vs小结 3.3 书籍介绍
1. Tshark
1.1 Tshark简介
TShark是基于终端的Wireshark,它是能够提供大量和Wireshark功能相同的数据包分析应用,但仅限于没有GUI的命令行界面。
如果你安装了Wireshark,那么你应该也安装了TShark,除非你在Wireshark安装过程中明确反选了安装TShark。
你可以输入以下命令确认TShark是否安装。
PS D:\Program Files\Wireshark> .\tshark.exe -v
TShark (Wireshark) 4.4.7 (v4.4.7-0-g7980339b1630).
如果没安装TShark但你现在又想使用它,那么你可以直接回到 Wireshark的安装向导重新安装,并确保默认的TShark安装选项被勾 选。
1.2 man Page
查看帮助命令
D:\Program Files\Wireshark> .\tshark.exe -h
查看手册页
以下是本机D盘安装目录下的路径
- file:///D:/Program%20Files/Wireshark/tshark.html
- file:///D:/Program%20Files/Wireshark/Wireshark%20User's%20Guide/AppToolstshark.html
1.3 Tshark时间显示
时间戳使用-t选项切换:
tshark –r packets.pcap –t ad
注: Tcpdump不提供这样多层面时间戳格式的控制
Tshark中可用的时间显示格式
| 值 | 时间戳 >tshark –r packets.pcap –t ad | 示例 |
| a | 包被捕获的绝对时间(在您的时区) | 15:47:58.004669 |
| ad | 包被捕获的绝对时间(在您的时区)带日期 | 2015-10-09 15:47:58.004669 |
| d | 自之前捕获的数据包以来的增量(时差) | 0.000140 |
| dd | 之前显示的数据包 | 0.000140 |
| e | 亿元时间(1970年1月1日以来的秒数) | 1444420078.004669 |
| r | 第一个数据包和当前数据包之间的运行时间 | 0.000140 |
| u | 捕获数据包的绝对时间(UTC) | 19:47:58.004669 |
| ud | 捕获数据包的绝对时间(UTC)带日期 | 2015-10-09 19:47:58.004669 |
1.4 统计 statistics
TShark的另一个有用的功能(也是比Tcpdump先进的功能), 是它可以从捕获的文件中生成统计的一个子集。
统计示例
- tshark -r packets.pcap –z conv,ip //有关IP会话的信息的统计图
- tshark -r packets.pcap –z http,tree //以表的形式来分解HTTP的请求和返回数据包
- tshark -r http_google.pcap -z follow,tcp,ascii,0 //以ASCII形式将http_google.pcap的0号TCP流打印到 屏幕上
- tshark –r packets.pcap –z follow,udp,ascii,192.168.1.5:23429,4.2.2.1:53 //指明端点和端口的UDP流
查看所有可用的统计: tshark –z help
| 类 | .\tshark.exe -z help |
| afp,srt | |
| ancp,tree | |
| ansi_a,bsmap | |
| ansi_a,dtap | |
| ansi_map | |
| asap,stat | |
| bacapp_instanceid,tree | |
| bacapp_ip,tree | |
| bacapp_objectid,tree | |
| bacapp_service,tree | |
| calcappprotocol,stat | |
| camel,counter | |
| camel,srt | |
| collectd,tree | |
| componentstatusprotocol,stat | |
| 会 话 |
conv,bluetooth |
| conv,bpv7 | |
| conv,dccp | |
| conv,eth | |
| conv,fc | |
| conv,fddi | |
| conv,ip //有关IP会话的信息 | |
| conv,ipv6 | |
| conv,ipx | |
| conv,jxta | |
| conv,ltp | |
| conv,mptcp | |
| conv,ncp | |
| conv,opensafety | |
| conv,rsvp | |
| conv,sctp | |
| conv,sll | |
| conv,tcp | |
| conv,tr | |
| conv,udp | |
| conv,usb | |
| conv,wlan | |
| conv,wpan | |
| conv,zbee_nwk | |
| credentials | |
| dcerpc,srt | |
| dests,tree | |
| dhcp,stat | |
| diameter,avp | |
| diameter,srt | |
| dns,tree | |
| dns_qr,tree | |
| e2ap,tree | |
| 端 点 |
endpoints,bluetooth |
| endpoints,bpv7 | |
| endpoints,dccp | |
| endpoints,eth | |
| endpoints,fc | |
| endpoints,fddi | |
| endpoints,ip | |
| endpoints,ipv6 | |
| endpoints,ipx | |
| endpoints,jxta | |
| endpoints,ltp | |
| endpoints,mptcp | |
| endpoints,ncp | |
| endpoints,opensafety | |
| endpoints,rsvp | |
| endpoints,sctp | |
| endpoints,sll | |
| endpoints,tcp | |
| endpoints,tr | |
| endpoints,udp | |
| endpoints,usb | |
| endpoints,wlan //显示无线端点。 | |
| endpoints,wpan | |
| endpoints,zbee_nwk | |
| enrp,stat | |
| expert //从捕获中显示专家信息(对话, 错误等)。 | |
| f1ap,tree | |
| f5_tmm_dist,tree | |
| f5_virt_dist,tree | |
| fc,srt | |
| 流 量 图 |
flow,any |
| flow,icmp | |
| flow,icmpv6 | |
| flow,lbm_uim | |
| flow,tcp | |
| 跟 随 流 |
follow,dccp |
| follow,http | |
| follow,http2 | |
| follow,quic | |
| follow,sip | |
| follow,tcp | |
| follow,tls | |
| follow,udp | |
| follow,usbcom | |
| follow,websocket | |
| fractalgeneratorprotocol,stat | |
| gsm_a | |
| gsm_a,bssmap | |
| gsm_a,dtap_cc | |
| gsm_a,dtap_gmm | |
| gsm_a,dtap_mm | |
| gsm_a,dtap_rr | |
| gsm_a,dtap_sacch | |
| gsm_a,dtap_sm | |
| gsm_a,dtap_sms | |
| gsm_a,dtap_ss | |
| gsm_a,dtap_tp | |
| gsm_map,operation | |
| gtp,srt | |
| gtpv2,srt | |
| h225,counter | |
| h225_ras,rtd | |
| hart_ip,tree | |
| hosts | |
| hpfeeds,tree | |
| http,stat | |
| http,tree //显示关于HTTP请求和回应的统计。 | |
| http2,tree | |
| http_req,tree //显示每个HTTP请求的统计。 | |
| http_seq,tree | |
| http_srv,tree | |
| icmp,srt | |
| icmpv6,srt | |
| io,phs //分层级统计在捕获文件中找到的所有协议。 | |
| io,stat | |
| ip_hosts,tree //显示并统计每个IP地址在所占流量的比率。 | |
| ip_srcdst,tree | |
| ip_ttl,tree | |
| ipv6_dests,tree | |
| ipv6_hop,tree | |
| ipv6_hosts,tree | |
| ipv6_ptype,tree | |
| ipv6_srcdst,tree | |
| isup_msg,tree | |
| kerberos,srt | |
| lbmr_queue_ads_queue,tree | |
| lbmr_queue_ads_source,tree | |
| lbmr_queue_queries_queue,tree | |
| lbmr_queue_queries_receiver,tree | |
| lbmr_topic_ads_source,tree | |
| lbmr_topic_ads_topic,tree | |
| lbmr_topic_ads_transport,tree | |
| lbmr_topic_queries_pattern,tree | |
| lbmr_topic_queries_pattern_receiver,tree | |
| lbmr_topic_queries_receiver,tree | |
| lbmr_topic_queries_topic,tree | |
| ldap,srt | |
| ltp,tree | |
| mac-3gpp,stat | |
| megaco,rtd | |
| mgcp,rtd | |
| mtp3,msus | |
| ncp,srt | |
| nfsv4,srt | |
| ngap,tree | |
| npm,stat | |
| osmux,tree | |
| pfcp,srt | |
| pingpongprotocol,stat | |
| plen,tree | |
| proto,colinfo | |
| ptype,tree | |
| radius,rtd | |
| rlc-3gpp,stat | |
| rpc,programs | |
| rpc,srt | |
| rtp,streams | |
| rtsp,stat | |
| rtsp,tree | |
| sametime,tree | |
| scsi,srt | |
| sctp,stat | |
| sip,stat | |
| smb,sids | |
| smb,srt //显示关于Windows会话的SMB命令的统计。 | |
| smb2,srt | |
| smpp_commands,tree | |
| snmp,srt | |
| someip_messages,tree | |
| someipsd_entries,tree | |
| ssprotocol,stat | |
| sv | |
| ucp_messages,tree | |
| wsp,stat |
2. Tcpdump
- 如果说Wireshark是世界上最流行的图形化数据包分析应用,
- 那么Tcpdump就是世界上最流行的命令行数据包分析应用。
Tcpdump基于Linux系统的工具, 支持Linux和macOS.
如果想在Windows上使用Tcpdump,那么可以下载安装WinDump。
在WinDump中一些Tcpdump的功能可能会缺失甚至可能会有安全漏洞。
2.1 tcpdump -h
~$ man tcpdump
~$ tcpdump -h
2.2 包格式
Tcpdump中每行也代表一个数据包,根据不同的协议来规范每行的输出格式。
因为Tcpdump不依赖于Wireshark的协议解析器,所以第7层的协议信息无法被解码。
这也是Tcpdump的最大限制之一。
取而代之的是,Tcpdump单行数据包只会根据传输层协议(TCP或UDP)进行解码。
- TCP包使用以下格式:
[Timestamp] [Layer 3 Protocol] [Source IP].[Source Port] > [Destination IP]. [Destination Port]: [TCP Flags], [TCP Sequence Number], [TCP Acknowledgement Number], [TCP Windows Size], [Data Length]
- UDP包使用以下格式:
[Timestamp] [Layer 3 Protocol] [Source IP].[Source Port] > [Destination IP]. [Destination Port]: [Layer 4 Protocol], [Data Length]
3. tshark VS tcpdump
3.1 命令行捕获
| 操作 | tshark (Windows) | tcpdump (Linux, MacOS) |
| 抓包 | tshark | sudo tcpdump |
| 列出网卡 | tshark -D | ifconfig |
| 指定网卡 | tshark -i 1 | sudo tcpdump -i eth0 |
| 保存 | tshark –i 1 –w packets.pcap | tcpdump –i eth0 –w packets.pcap |
| 回读数据包 | tshark –r packets.pcap | tcpdump –r packets.pcap |
| 限制显示数量 | tshark –r packets.pcap –c10 | tcpdump –r packets.pcap –c10 |
| 增加冗馀 | tshark –r packets.pcap –V | tcpdump –r packets.pcap –vvv |
| 正常显示 | tshark -r packets.pcap -c1 | tcpdump -r packets.pcap -c1 |
| 冗余显示 | tshark -r packets.pcap -V -c1 | tcpdump -r packets.pcap -c1 -v tcpdump -r packets.pcap -c1 -vv tcpdump -r packets.pcap -c1 -vvv |
| ASCII, hex | tshark –xr packets.pcap | tcpdump –Xr packets.pcap tcpdump –xr packets.pcap //hex tcpdump –Xr packets.pcap //ascII |
| 禁用名称解析 | tshark –ni 1 | tcpdump –nni eth1 |
| 仅启用传输层 端口的解析 |
tshark –i 1 –Nt | tcpdump –ni eth1 -n会禁用IP解析,-nn禁用IP和端口解析 |
| 启用传输层 和MAC层 |
tshark –i 1 -Ntm | |
| 捕获过滤器 | tshark –ni 1 –w packets.pcap –f tcp port 80 | tcpdump –nni eth0 –w packets.pcap 'tcp dst port 80' |
| 显示捕获器 | tshark –ni 1 –w packets.pcap –Y tcp.dstport == 80 | |
| tshark –r packets.pcap –Y tcp.dstport == 80 | tcpdump –r packets.pcap 'tcp dst port 80' | |
| 另存为 | 读取→过滤→写入 | tcpdump –r packets.pcap 'tcp dst port 80' –w http_packets.pcap |
| 指派BPF 过滤器文件 |
tcpdump –nni eth0 –F dns_servers.bpf | |
| 显示绝对时间 | tshark –r packets.pcap –t ad | Tcpdump不提供多层面时间戳格式的控制 |
3.2 vs小结
这些工具的使用方式都是类似的, 学会其中一个就能很快上手另一个
| 差别 | tshark | tcpdump | WinDump |
| 操作系统 | Windows, Linux, macOS | Linux, macOS | WinDump: 是Tcpdump在Windows平台的发行版. 在WinDump中一些Tcpdump的功能可能会缺失甚至可能会有安全漏洞 |
| 时间格式 | 提供多层面时间戳格式的控制 | 标准时间戳 | |
| 协议支持 | 提供丰富的第7层协议支持 | 对第7层的协议支持不足 | |
| 分析功能 | 类似Wireshark的强大统计分析功能 | 不提供 | |
| 补充 | Windows系統下Wireshark的命令行版 | 虽然Tcpdump缺少图形特性, 但它处理海量数据时非常靠谱。 可用管道将输出重定向到其他命令, 比如Linux的sed 和awk。 |
3.3 书籍介绍
书名:Wireshark数据包分析实战(第3版)
ISBN:978-7-115-49431-3
著 [美] 克里斯•桑德斯(Chris Sanders)
译 诸葛建伟 陆宇翔 曾皓辰
本书在上一版的基础上针对Wireshark 2.0.5和IPv6进行了更新
本书从2015年底开始编写,在2017年早期完成,总计历时一年半。
而在本书出版之日,距离本书第2版发布的时间已经有6年,距离第1版则长达10年之久。
额外内容, 书籍附带的演示数据包
下载本书的捕获文件(.zip)
(MD5校验和:C532A797958649D821BC2EDBC3A2DDD9)
ppa3ecaptures.zip的哈希值
MD5:C532A797958649D821BC2EDBC3A2DDD9
SHA1:7887C73BDB0F9BA1AF7FADBE01F1F0AAF2F2D5C6
SHA256:6EC7B9B0D1E88AE957D9B40FE9FD992316DD0619191FBA11582FC567D556C87E
没有评论:
发表评论