A. 在linux上tshark怎么过滤
抓Mysql包命令如下:
tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query
tshark -s 512 -i em1 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query
过滤HTTP请求:
# tshark 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -R 'http.request.method == "GET" || http.request.method == "HEAD"'
输出:
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
0.000000 123.126.68.27 -> 173.255.196.50 HTTP GET /grep.html HTTP/1.1
12.066470 123.126.68.27 -> 173.255.196.50 HTTP GET /pro_lang.html HTTP/1.1
-s 512 :只抓取前512个字节数据
-i eth0 :捕获eth0网卡
-n :禁止网络对象名称解析
-f 'tcp dst port 3306' :只捕捉协议为tcp,目的端口为3306的数据包
-R 'mysql.query' :过滤出mysql.query
-T fields -e mysql.query :打印mysql查询语句
tshark使用-f来指定捕捉包过滤规则,规则与tcpmp一样,可以通过命令man pcap-filter来查得。
tshark使用-R来过滤已捕捉到的包,与界面板wireshark的左上角Filter一致。
B. 请教tshark源码整合
tshark是wireshark的指令形式,有些情况下抓取网络包但是不想调用图形界面时,可以用tshark
1、下载libpcap源代码
http://www.tcpmp.org/
libpcap-x.x.x.tar.gz libpcap安装源文件
2. 解压缩libpcap
tar zxvf libpcap-x.x.x.tar.gz
进入到解压缩后的文件夹中 cd libpcap- x.x.x
3. 安装flex
apt-get install flex
4. 安装bison
apt-get install biso
5. 安装libpcap
./configure
make
make install
6. 安装tshark
apt-get install tshark
7、指令应用
tshark是wireshark命令行形式
1)指定要监听的接口
-i <接口名称>
比如-i eth2.如果不用-i指定监听的接口,则默认为接口列表中第一个非回环接口(-D打印接口列表)
2)可监听的接口列表
-D 打印接口列表
3)设置cap过滤条件
-f <过滤参数设置>
A. 设置监听的协议类型:-f udp/tcp/http 注:协议类型必须为小写
B. 设置源ip: -f“src host x.x.x.x”
C. 设置源端口: -f“src port xx”
D. 设置源ip和源端口: -f “srchost x.x.x.x and src port xx”
E. 设置目的ip: -f“dst host x.x.x.x”
F. 设置目的端口: -f“dst port xx”
G. 设置目的ip和端口: -f “dsthost x.x.x.x and port xx”
注:设置ip或端口时,必须用双引号
4)设置抓包数
-c <包数量> ,比如-c 15 表示抓15个包就停止
5) 设置cap包容量
-a filesize:NUM
其中NUM为filesize的包容量,用此命令需要用-w命令指定保存的文件包。NUM单位为KB
6)保存文件
-w <文件名称>
-w后面是要保存到的文件名字,也可以指定路径
7) 在屏幕中显示抓包的内容
-S
8)指定数据包的最大长度
-s <数据包长度>,单位为bytes
其他指令请参照在线帮助