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
其他指令請參照在線幫助