在Wireshark中過濾數據包
介紹
數據***濾可讓你專注于你感興趣的確定數據集。如你所見,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 可以讓你有效監控網絡流量。熟悉可以使用的選項并習慣你可以創建過濾器的強大表達式需要一些時間。然而一旦你學會了,你將能夠快速收集和查找你要的網絡數據,而無需梳理長長的數據包或進行大量的工作。