關於wireshark的過濾器規則學習小結
【前言】
這兩天一直在熟悉wireshark的過濾器語法規則,以前也接觸過這個工具,但只是學校老師教的如何去選擇一個接口進行抓取,以及如何去分析一個包的數據。可惜當時對此也沒有過多深入。對於我當前,並未接觸太多的功能,現在只是對這兩天學到的一些簡單的過濾規則做一個總結。
1. 測試環境說明
2. 過濾器規則說明
目前網絡上對於wireshark的流程使用實在太多,在此也就不再贅述,現只針對過濾器的一些簡單使用規則進行一些舉例說明。
要注意的是wireshark中,分為兩種過濾器:捕獲過濾器和顯示過濾器。
【捕獲過濾器】是指wireshark一開始在抓包時,就確定要抓取哪些類型的包;對於不需要的,不進行抓取;
【顯示過濾器】是指wireshark對所有的包都進行抓取,當用戶分析數據包的信息,便於篩選出需要的數據包。
總結來說,捕獲過濾器是在用戶開始任務之前就要使用的規則;而顯示過濾器是任務開始之后(無論是否已完成)要使用的規則。
兩種過濾器語法規則不盡相同,下面做出一些示例:
a)捕獲過濾器
1)語法結構
Protocols
ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp and udp
注:若不指定,默認使用所有支持的協議
Direction
src,dst,src and dst,src or dst
注:若不指定,默認使用雙向(src or host)
Host
net,port,host,portrange
注:若不指定,默認所有(host)
Logical Operations
and,or,not
注:not優先級最高,or和not優先級相等,從左至右依次運算
Other expression
其他的過濾條件,當有多重表達條件時與Logica Operatios 一起連用
2)使用示例
【過濾地址】
host 192.168.1.1 //只抓取源/目的IP為192.168.1.1的數據包
src host 192.168.1.1 && dst host 192.168.1.2 //只抓取源IP為192.168.1.1,目的IP為192.168.1.2的數據包
net 192.168.1.0/24 net //用於表示一個網段
【過濾端口】
!port 80 //不抓取端口為80的數據包
tcp portrange 1-1024 //只抓取使用tcp協議的1-1024端口的數據包
dst port 80 //只抓取目標端口為80的所有數據包
src host 192.168.1.5 && port 443 //抓取所有源IP為192.168.1.5,並且與443端口有關的數據包
【過濾協議】
tcp,udp,icmp,arp //直接輸入某一個協議,則只抓取該協議的數據包
!brocast //使用邏輯非運算符,不抓取廣播包
b) 顯示過濾器
1)使用示例
【可使用連接符】
==(eq) //等於,equal
!=(ne) //不等於,no equal
<(lt) //小於,less than
>(gt) //大於,great than
>=(ge) //大於等於,great equal
<=(le) //小於等於,less equal
&& //邏輯“與”運算
|| //邏輯“或”運算
! //邏輯“非”運算
【過濾IP地址】
ip.addr==192.168.1.3 //只顯示源/目的IP為192.168.1.3的數據包
not ip.src==1.1.1.1 //不顯示源IP為1.1.1.1的數據包
ip.src==1.1.1.1 or ip.dst==1.1.1.2 //只顯示源IP為1.1.1.1或目的IP為1.1.1.2的數據包
【過濾端口】
tcp.port eq 80 //只顯示源/目的端口為80的數據包
tcp.dstport==80 //只顯示目的端口為80的數據包
tcp.srcport
tcp.port >=1 and tcp.port<=80 //只顯示源/目的端口大於等於1,小於等於80的數據包
【過濾MAC地址】
eth.dst==A0:00:00:04:C5:84 //只顯示目的MAC為A0:00:00:04:C5:84 的數據包
eth.addr eq A0:00:00:04:C5:84 //作用同上
【過濾協議類別】
tcp、ip、dhcp、oicq、ftp、ssl等等
udp || icmp || dns //只顯示udp、icmp、dns相關協議的數據包
not arp 等於 !arp //不顯示arp協議的數據包
【過濾協議參數】
tcp.flags.syn == 0x02 //顯示包含syn標志位的數據包
frame.len==119 //整個數據包長度,從eth開始到最后
http.request.method=="get" //顯示http請求中method值為get的包
tips:如圖所示,在顯示過濾器中輸入規則時,會出現提示信息,可據此了解更多的協議過濾規則
c) 注意事項
1)捕獲過濾器對於一個選項的參數之間使用空格進行連接
2)顯示過濾器對於一個選項的參數之間使用點”.”進行連接
3) 輸入過濾器規則時,如果語法正確,底色顯示為綠色;如果語法錯誤,顯示為紅色。
4) 使用捕獲過濾器時,要先選擇要捕獲的接口,再填寫過濾器規則