Wireshark介绍 与 过滤器表达式语法
目錄:
一、WireShark界面說明:
1、開始捕捉界面:
2、捕捉結果界面:
3、著色規則:
二、捕捉過濾器:
1、捕捉過濾器表達式:
2、捕捉過濾器語法:
三、顯示過濾器:
1、基本過濾表達式:
2、復合過濾表達示:
3、常見用顯示過濾需求及其對應表達式:
WireShark安裝,安裝非常簡單,處理安裝路徑自定義之外,其他都直接點下一步。
一、WireShark界面說明:
1、開始捕捉界面:
點擊菜單的“捕獲-選項”,設置需要捕獲的網絡適配器,點擊“開始”。也可以在菜單“捕獲-開始”、“捕獲-結束”來控制開始結束。在“捕獲-捕獲過濾器”編輯捕獲表達式:
在上述“捕獲”菜單中進行的操作,也可以在工具欄進行,如下圖:
2、捕捉結果界面:
1號窗口展示的是wireshark捕獲到的所有數據包的列表。注意最后一列Info列是wireshark組織的說明列,并不一定是該數據包中的原始內容。
2號窗口是1號窗口中選定的數據包的分協議層展示。底色為紅色的是因為wireshark開啟校驗和驗證而該層協議校驗和又不正確所致。
3號窗口是1號窗口中選定的數據包的源數據,其中左側是十六進制表示,右側是ASCII碼表示。另外在2號窗口中選中某層或某字段,3號窗口對應位置也會被高亮。
(1)點擊每一行時,wireshark很智能的在記錄前用標線表明了本次會話的記錄范圍[從三次握手到四次揮手]
(2)http請求是“請求->響應”式的,需要查看對應請求的響應時,可以在包上右鍵,選擇“追蹤流(Follow TCP Stream)”
(3)被認為最難的其實還是2號窗口展開后的內容不懂怎么看,以IP層為例:每一行就對應該層協議的一個字段;中括號行是前一字段的說明。冒號前的英文是協議字段的名稱;冒號后是該數據包中該協議字段的值。
數據包的大致結構:
- 第一行:數據包整體概述,
- 第二行:鏈路層詳細信息,主要的是雙方的mac地址
- 第三行:網絡層詳細信息,主要的是雙方的IP地址
- 第四行:傳輸層的詳細信息,主要的是雙方的端口號。
(4)tcp數據包結構及在wireshark中的位置:
3、著色規則:
在菜單“視圖-著色規則”下查看:
?
?
WireShark有兩種過濾器:捕捉過濾器(用于決定將什么樣的信息記錄在捕捉結果中)和 顯示過濾器(用于在捕捉結果中進行詳細查找);兩者的區別:捕捉過濾器在抓包前進行設置,決定抓取怎樣的數據;顯示過濾器用于過濾抓包數據,方便stream的追蹤和排查。捕捉過濾器僅支持協議過濾,顯示過濾器既支持協議過濾也支持內容過濾。兩種過濾器它們支持的過濾語法并不一樣。
二、捕捉過濾器:
1、捕捉過濾器表達式:
捕捉過濾器表達式作用是在wireshark開始捕獲數據包之前,只捕獲符合條件的數據包,不記錄不符合條件的數據包。
也可以通過下面的步驟進入捕捉過濾器進行添加或者刪減相應的過濾器:
2、捕捉過濾器語法:
(1)協議過濾語法:
| 語法: | Protocol | Direction | Host(s) | Value | Logical Operations | Other expression |
| 例子: | tcp | dst | 10.1.1.1 | 80 | and | tcp dst 10.2.2.2 3128 |
示例:
| (host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8 |
捕捉IP為10.4.1.12或者源IP位于網絡10.6.0.0/16,目的IP的TCP端口號在200至10000之間,并且目的IP位于網絡 10.0.0.0/8內的所有封包。
(2)字段詳解:
Protocol(協議):
可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果沒指明協議類型,則默認為捕捉所有支持的協議。
注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其支持的協議。
Direction(方向):
可能值: src, dst, src and dst, src or dst
如果沒指明方向,則默認使用 “src or dst” 作為關鍵字。
”host 10.2.2.2″與”src or dst host 10.2.2.2″等價。
Host(s):
可能值: net, port, host, portrange.
默認使用”host”關鍵字,”src 10.1.1.1″與”src host 10.1.1.1″等價。
Logical Operations(邏輯運算):
可能值:not, and, or.
否(“not”)具有最高的優先級。或(“or”)和與(“and”)具有相同的優先級,運算時從左至右進行。
“not tcp port 3128 and tcp port 23″與”(not tcp port 3128) and tcp port 23″等價。
“not tcp port 3128 and tcp port 23″與”not (tcp port 3128 and tcp port 23)”不等價。
?
三、顯示過濾器:
顯示過濾器作用在wireshark捕獲數據包之后,依據顯示過濾器表達式,對捕捉到的數據包依據協議或包的內容進行過濾,從已捕獲的所有數據包中顯示出符合條件的數據包,隱藏不符合條件的數據包。
顯示過濾表達示在工具欄下方的“顯示過濾器”輸入框輸入即可生效
1、基本過濾表達式:
一條基本的表達式由過濾項、過濾關系、過濾值三項組成。
比如ip.addr == 192.168.1.1,這條表達式中ip.addr是過濾項、==是過濾關系,192.168.1.1是過濾值(整條表達示的意思是找出所有ip協議中源或目標ip、等于、192.168.1.1的數據包)
(1)過濾項:
wireshark的過濾項是“協議“+”.“+”協議字段”的模式。以端口為例,端口出現于tcp協議中所以有端口這個過濾項且其寫法就是tcp.port。推廣到其他協議,如eth、ip、udp、http、telnet、ftp、icmp、snmp等等其他協議都是這么個書寫思路。
當然wireshark出于縮減長度的原因,有些字段沒有使用協議規定的名稱而是使用簡寫(比如Destination Port在wireshark中寫為dstport),又出于簡便使用增加了一些協議中沒有的字段(比如TCP協議只有源端口和目標端口字段,為了簡便使用,wireshark增加了tcp.port字段來同時代表這兩個)。
(2)過濾關系:
過濾關系就是大于、小于、等于等幾種等式關系。注意其中有“English”和“C-like”兩個字段,這個意思是說“English”和“C-like”這兩種寫法在wireshark中是等價的、都是可用的。
(3)過濾值:
過濾值就是設定的過濾項應該滿足過濾關系的標準,比如500、5000、50000等等。過濾值的寫法一般已經被過濾項和過濾關系設定好了,只是填下自己的期望值就可以了。
2、復合過濾表達示:
所謂復合過濾表達示,就是指由多條基本過濾表達式組合而成的表達示。基本過濾表達式的寫法還是不變的,復合過濾表達示多出來的東西就只是基本過濾表達示的“連接詞”:
3、常見用顯示過濾需求及其對應表達式:
(1)數據鏈路層:
篩選mac地址為04:f9:38:ad:13:26的數據包----eth.src == 04:f9:38:ad:13:26
篩選源mac地址為04:f9:38:ad:13:26的數據包----eth.src == 04:f9:38:ad:13:26
(2)網絡層:
篩選ip地址為192.168.1.1的數據包----ip.addr == 192.168.1.1
篩選192.168.1.0網段的數據---- ip contains "192.168.1"
篩選192.168.1.1和192.168.1.2之間的數據包----ip.addr == 192.168.1.1 && ip.addr == 192.168.1.2
篩選從192.168.1.1到192.168.1.2的數據包----ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
(3)傳輸層:
篩選tcp協議的數據包----tcp
篩選除tcp協議以外的數據包----!tcp
篩選端口為80的數據包----tcp.port == 80
篩選12345端口和80端口之間的數據包----tcp.port == 12345 && tcp.port == 80
篩選從12345端口到80端口的數據包----tcp.srcport == 12345 && tcp.dstport == 80
(4)應用層:
特別說明----http中http.request表示請求頭中的第一行(如GET index.jsp HTTP/1.1),http.response表示響應頭中的第一行(如HTTP/1.1 200 OK),其他頭部都用http.header_name形式。
篩選url中包含.php的http數據包----http.request.uri contains ".php"
篩選內容包含username的http數據包----http contains "username"
顯示post請求方式的http封包---http.request.method== "POST"
顯示請求的域名為tracker.1ting.com的http封包---http.host == "tracker.1ting.com"
?
?
參考博客:
https://blog.csdn.net/cumirror/article/details/7054496
https://www.cnblogs.com/lsdb/p/9254544.html
https://blog.csdn.net/qq_30682027/article/details/83021901
總結
以上是生活随笔為你收集整理的Wireshark介绍 与 过滤器表达式语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HttpDNS介绍
- 下一篇: JUC多线程:线程池的创建及工作原理 和