tshark服务器抓包入门

tshark服务器抓包入门

背景

作为wireshark出品,在服务器抓包的一款利器, 我们现在简要记录其使用过程

安装

1
yum  install wireshark -y

命令行直接运行

会抓出所有网卡的所有包, 并且会输出到控制台

1
 tshark

大部分场景,因为网络包特别多, 我们需要筛选抓取我们想要的包, 比如我只想要数据库连接的包

1. 找需要抓包的网卡

先列出服务器上有哪些网卡

1
tshark -D

选择其中一个网卡进行抓包

1
tshark -i eth0

2. 过滤指定协议,源ip,目的IP,端口等信息

指定过滤 是 -f参数, 但是一般情况下省略即可, 如果不省略, 后面的语句尽量需加上 ""

1
[not] primitive [and|or [not] primitive ...]

这里支持简单的not/and/or逻辑运算符, 去组合使用premitive原语。

[]中括号代表可选

|分隔符代表可选项

这里原语包括

1
[src|dst] host <host>

比如我想要抓包 目标IP是 192.168.50.1的包, 则可以 使用

1
2
3
dst host 192.168.50.1

也可以是 dst 192.168.50.1
1
[tcp|udp] [src|dst] port <port>

这里主要是抓包tcp/udp 并且源端口,目标端口是多少

比如抓取 udp53端口

1
udp dst port 53

3. 抓包结束中止条件

一般情况下, 我们Ctrl+c中止继续抓包, 有些粗暴, tshark为我们提供了几个维度的中止条件

抓到指定个数的包后,即停止

1
2
3
  -c <packet count>
// 抓到10个包后,停止
tshark dst host 192.168.50.1 -c 10

抓包持久xx秒后,即停止

1
2
3
4
-a duration:NUM

// 抓包持续2秒后, 停止
tshark dst host 192.168.50.1 -c -a duration:2

抓包的总大小达到一定的大小(kb)后, 即停止

1
2
3
4
-a filesize:NUM

// 抓包持续2kb秒后, 停止
tshark dst host 192.168.50.1 -c -a filesize:2

4. 抓包内容输出到指定文件

分析抓包文件更常用是在wireshark上做分析, 因此我们看下怎么将抓包内容输出到文件,然后在wireshark做分析

1
2
3
-w <outfile|->
// 将抓包内容输出到tshark.out.pcap 文件中,
tshark port 33605 -w tshark.out.pcap

5. 查看wireshark帮助

1
2
// 会打印出我们常用的命令
tshark -h 

6. 高级命令-抓完包后,再做应用层过滤

display filter(-Y参数)

这里命令等同于wiresharkgui端的 输入框语句

1
2
// 只过滤udp包内容
tshark   -Y  "udp"

读取指定文件的pcap

1
tshark -r out.pcap  -Y  "udp"

过滤指定字段

1
2
3
4
5
6
7
8
-T fields -e frame.time -e ip.src -e dns.qry.name

> tshark -n -T fields -e frame.time -e ip.src -e dns.qry.name -f 'dst port 53' -Y "dns.flags.response eq 0"

Sep  3, 2018 15:49:46.354055274 CEST    10.0.0.1    google.co.uk
Sep  3, 2018 15:49:52.034315960 CEST    10.0.0.1    google.jp
Sep  3, 2018 15:49:54.561493702 CEST    10.0.0.1    google.cn

如果想要在服务器上做分析, 可以使用-Y命令进行操作

和tcpdump区别

一般服务器都装有tcpdump, 可以用tcpdump抓包,然后用wireshark进行分析。

并且tcpdump过滤条件和 tshark基本一致

参考文章

  1. tcpdump解析: https://linuxwiki.github.io/NetTools/tcpdump.html
  2. tcpdump命令: https://www.myfreax.com/tcpdump-command-in-linux/
  3. 中文tshark命令行参数注释: https://www.cnblogs.com/liun1994/p/6142505.html
  4. tshark过滤语法: https://www.wireshark.org/docs/wsug_html_chunked/ChCapCaptureFilterSection.html
  5. tshark抓包文章: https://kaimingwan.com/post/ji-chu-zhi-shi/wang-luo/shi-yong-tsharkzai-ming-ling-xing-jin-xing-wang-luo-zhua-bao