wireshark抓包教程

2022-07-07 07:30:20 字數 4149 閱讀 5502

1、選擇要抓包的網路

2、設定捕獲過濾器

捕獲過濾器表示式作用在wireshark開始捕獲資料報之前,只捕獲符合條件的資料報,不記錄不符合條件的資料報。

捕獲過濾器表示式沒有像顯示過濾器表示式那樣明顯的規律,但寫法不多所以也不難;而且除非全部捕獲要占用的磁碟空間實現太大,且你非常明確過濾掉的資料報是你不需要的,不然一般都不用捕獲過濾器表示式而用顯示過濾器表示式。

在wireshark2.x版本,啟動後歡迎介面即有捕獲過濾器,在其中輸入過濾表示式開始捕獲資料報時即會生效。點選圖中「書籤」標誌,再點管理「捕獲篩選器」,即可看到常用捕獲過濾表達示的書寫形式。

3、顯示過濾器表示式及書寫規律

3.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欄位來同時代表這兩個),但思路總的算是不變的。而且在實際使用時我們輸入「協議」+「.」wireshark就會有支援的字段提示(特別是過濾表示式欄位的首字母和wireshark在上邊2視窗顯示的欄位名稱首字母通常是一樣的),看下名稱就大概知道要用哪個欄位了。wireshark支援的全部協議及協議欄位可檢視官方說明。

(2)過濾關係

過濾關係就是大於、小於、等於等幾種等式關係,我們可以直接看官方給出的表。注意其中有「english」和「c-like」兩個字段,這個意思是說「english」和「c-like」這兩種寫法在wireshark中是等價的、都是可用的。

(3)過濾值

過濾值就是設定的過濾項應該滿足過濾關係的標準,比如500、5000、50000等等。過濾值的寫法一般已經被過濾項和過濾關係設定好了,只是填下自己的期望值就可以了。

3.2、 復合過濾表達示

所謂復合過濾表達示,就是指由多條基本過濾表示式組合而成的表達示。基本過濾表示式的寫法還是不變的,復合過濾表達示多出來的東西就只是基本過濾表達示的「連線詞」。

我們依然直接參照官方給出的表,同樣「english」和「c-like」這兩個字段還是說明這兩種寫法在wireshark中是等價的、都是可用的。

3.3 常見用顯示過濾需求及其對應表示式

首先說幾個最常用的關鍵字,「eq」 和 「==」等同,可以使用 「and」 表示並且,「or」表示或者。「!" 和 "not」 都表示取反。

3.3.1、針對wireshark最常用的自然是針對ip位址的過濾

(1)對源位址為192.168.0.1的包的過濾,即抓取源位址滿足要求的包。

表示式為:ip.src == 192.168.0.1

(2)對目的位址為192.168.0.1的包的過濾,即抓取目的位址滿足要求的包。

表示式為:ip.dst == 192.168.0.1

(3)對源或者目的位址為192.168.0.1的包的過濾,即抓取滿足源或者目的位址的ip位址是192.168.0.1的包。

表示式為:ip.addr == 192.168.0.1,或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1

(4)要排除以上的資料報,我們只需要將其用括號囊括,然後使用 "!" 即可。

表示式為:!(表示式)

3.3.2、針對協議的過濾

(1)僅僅需要捕獲某種協議的資料報,表示式很簡單僅僅需要把協議的名字輸入即可。

表示式為:http

(2)需要捕獲多種協議的資料報,也只需對協議進行邏輯組合即可。

表示式為:http or telnet (多種協議加上邏輯符號的組合即可)

(3)排除某種協議的資料報

表示式為:not arp !tcp

3.3.3、針對埠的過濾(視協議而定)

(1)捕獲某一埠的資料報

表示式為:tcp.port == 80

(2)捕獲多埠的資料報,可以使用and來連線,下面是捕獲高階口的表示式

表示式為:udp.port >= 2048

3.3.4、針對長度和內容的過濾

(1)針對長度的過慮(這裡的長度指定的是資料段的長度)

表示式為:udp.length < 30 http.content_length <=20

(2)針對資料報內容的過濾

表示式為:http.request.uri matches "vipscu" (匹配http請求中含有vipscu欄位的請求資訊)

3.3.5、針對不同的網路層

(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"

Wireshark詳細抓包教程

wireshark是乙個免費開源的網路資料報分析軟體,功能十分強大。可以擷取各種網路資料報,顯示網路資料報的詳細資訊。1.開始頁面 2.wireshark是捕獲機器上的一塊網絡卡的網路包,當你有多塊網絡卡時,選擇其中的乙個。當你只有一塊網絡卡時,選擇網絡卡eth0。預設選擇網絡卡後自動抓包 wire...

Wireshark資料抓包教程之認識捕獲分析資料報

當我們對wireshark主視窗各部分作用了解了,學會捕獲資料了,接下來就該去認識這些捕獲的資料報了。wireshark將從網路中捕獲到的二進位制資料按照不同的協議包結構規範,顯示在packet details面板中。為了幫助使用者能夠清楚的分析資料,本節將介紹識別資料報的方法。在wireshark...

fiddler手機抓包教程

序言 記錄一下自己第一次使用fiddler抓取手機的資訊,做乙個備忘 實現步驟 一 首先設定一下fiddler,使其對https協議進行抓包 二 然後設定fidder使得fiddler支援遠端計算機連線 也及時安卓 ios 別人的電腦之類的 這樣fiddler就已經設定好了,對了如果要抓包成功就必須...