介紹
資料包過濾可讓你專注于你感興趣的确定資料集。如你所見,wireshark 預設會抓取所有資料包。這可能會妨礙你尋找具體的資料。 wireshark 提供了兩個功能強大的過濾工具,讓你簡單而無痛地獲得精确的資料。
wireshark 可以通過兩種方式過濾資料包。它可以通過隻收集某些資料包來過濾,或者在抓取資料包後進行過濾。當然,這些可以彼此結合使用,并且它們各自的用處取決于收集的資料和資訊的多少。
布爾表達式和比較運算符
wireshark 有很多很棒的内置過濾器。當開始輸入任何一個過濾器字段時,你将看到它們會自動補完。這些過濾器大多數對應于使用者對資料包的常見分組方式,比如僅過濾 http 請求就是一個很好的例子。
對于其他的,wireshark 使用布爾表達式和/或比較運算符。如果你曾經做過任何程式設計,你應該熟悉布爾表達式。他們是使用 and、or、not 來驗證聲明或表達式的真假。比較運算符要簡單得多,它們隻是确定兩件或更多件事情是否彼此相等、大于或小于。
過濾抓包
在深入自定義抓包過濾器之前,請先檢視 wireshark 已經内置的内容。單擊頂部菜單上的 “capture” 頁籤,然後點選 “options”。可用接口下面是可以編寫抓包過濾器的行。直接移到左邊一個标有 “capture filter” 的按鈕上。點選它,你将看到一個新的對話框,其中包含内置的抓包過濾器清單。看看裡面有些什麼。
wireshark dialog for creating a capture filter
在對話框的底部,有一個用于建立并儲存抓包過濾器的表單。按左邊的 “new” 按鈕。它将建立一個填充有預設資料的新的抓包過濾器。要儲存新的過濾器,隻需将實際需要的名稱和表達式替換原來的預設值,然後單擊“ok”。過濾器将被儲存并應用。使用此工具,你可以編寫并儲存多個不同的過濾器,以便它們将來可以再次使用。
抓包有自己的過濾文法。對于比較,它不使用等于号,并使用 > 和 < 來用于大于或小于。對于布爾值來說,它使用 and、or 和 not。
例如,如果你隻想監聽 80 端口的流量,你可以使用這樣的表達式:port 80。如果你隻想從特定的 ip 監聽端口 80,你可以使用 port 80 and host 192.168.1.20。如你所見,抓包過濾器有特定的關鍵字。這些關鍵字用于告訴 wireshark 如何監控資料包以及哪一個資料是要找的。例如,host 用于檢視來自 ip 的所有流量。src 用于檢視源自該 ip 的流量。與之相反,dst 隻監聽目标到這個 ip 的流量。要檢視一組 ip 或網絡上的流量,請使用 net。
過濾結果
界面的底部菜單欄是專門用于過濾結果的菜單欄。此過濾器不會更改 wireshark 收集的資料,它隻允許你更輕松地對其進行排序。有一個文本字段用于輸入新的過濾器表達式,并帶有一個下拉箭頭以檢視以前輸入的過濾器。旁邊是一個标為 “expression” 的按鈕,另外還有一些用于清除和儲存目前表達式的按鈕。
點選 “expression” 按鈕。你将看到一個小視窗,其中包含多個選項。左邊一欄有大量的條目,每個都有附加的折疊子清單。你可以用這些來過濾所有不同的協定、字段和資訊。你不可能看完所有,是以最好是大概看下。你應該注意到了一些熟悉的選項,如 http、ssl 和 tcp。
wireshark dailog for creating a results filter
子清單包含可以過濾的不同部分和請求方法。你可以看到通過 get 和 post 請求過濾 http 請求。
你還可以在中間看到運算符清單。通過從每列中選擇條目,你可以使用此視窗建立過濾器,而不用記住 wireshark 可以過濾的每個條目。對于過濾結果,比較運算符使用一組特定的符号。 == 用于确定是否相等。> 用于确定一件東西是否大于另一個東西,< 找出是否小一些。 >= 和 <= 分别用于大于等于和小于等于。它們可用于确定資料包是否包含正确的值或按大小過濾。使用 == 僅過濾 http get 請求的示例如下:http.request.method == "get"。
布爾運算符基于多個條件将小的表達式串到一起。不像是抓包所使用的單詞,它使用三個基本的符号來做到這一點。&& 代表 “與”。當使用時,&& 兩邊的兩個語句都必須為真值才行,以便 wireshark 來過濾這些包。|| 表示 “或”。隻要兩個表達式任何一個為真值,它就會被過濾。如果你正在查找所有的 get 和 post 請求,你可以這樣使用 ||:(http.request.method == "get") || (http.request.method == "post")。! 是 “非” 運算符。它會尋找除了指定的東西之外的所有東西。例如,!http 将展示除了 http 請求之外的所有東西。
總結思考
過濾 wireshark 可以讓你有效監控網絡流量。熟悉可以使用的選項并習慣你可以建立過濾器的強大表達式需要一些時間。然而一旦你學會了,你将能夠快速收集和查找你要的網絡資料,而無需梳理長長的資料包或進行大量的工作。
作者:nick congleton
來源:51cto