Wireshark filter過濾分析封包練習

使用Wireshark錄下網路封包後, 面對眾多的封包記錄, 內容既多又零散, 如果不知道怎麼去篩選過濾, 肯定是花時間又沒效率, 可能最終還是看不出個所以然。而Wireshark強大的功能之一當然就包含過濾(filter)語法, 參考官網上的wireshark-filter說明, 就可以獲得精要的解說, 如果安裝時有選擇把文件一起裝了, 那本機上也會有一份文件。

其實Wireshark在filter輸入上有很多的提醒功能, 讓在輸入的過程中很容易上手, 也很容易找到你要的資料。首先, 下面這個是尚未輸入時的樣子,

當你輸入了有效而完整的filter關鍵字時, 一方面它會顯示智慧提醒或是你曾使用過的記錄, 讓你快速選取, 或依樣輸入你想要的內容; 另一方面, 輸入框底色也會變為綠色的, 提醒你這是正確的內容。這時按ENTER鍵或是按下右邊藍底白箭頭的按鈕, 就可以套用這組filter。

當繼續輸入時你還會發現它的智慧提醒也會依輸入內容篩選更精確符合的選項給你; 另一方面, 一旦有不符合語法的內容, 輸入框底色也會隨時變更為紅色的, 提醒你目前是不正確的, 也無法正確查詢。

錄好的封包內容包含了詳細的資訊, 通常你可能會先從大方向篩選, 例如先用 IP、通訊協定(protocol)等等, 再來看了幾個封包後, 或許發現什麼細節, 這時想針對Packet Details其中某一點的資訊來分析或篩選, 可以先點到這一項資料上, 接著就可以在下方Status Bar上找, 這一組括號內顯示的就是可以用來篩選這項資料的關鍵字。

例如可以如下輸入, 這裡可能會顯示更進一步的選項, 它的命名雖是縮寫, 但基本上和上面Packet Details中顯示的很容易看出其關聯性, 真的不確定時, 一樣再點一下你要的觀注點, 看下面Status Bar上的括號內容就知道要輸入什麼了。這裡例如 ack 就是指Acknowledgment。

再來就是查詢指令運算符號的用法, 這就可以參考官網文件來用, 大略說明幾個重點。首先是比較運算, 按一些常見程式語言的用法, Wireshark有2種可以用, 可以用英文縮寫式的, 也可用符號式的, 如下:

  • 等於: eq, ==
  • 不等於: ne, !=
  • 大於: gt, >
  • 小於等於: le, <=

邏輯符號一樣有2種可用,

  • AND: and, &&
  • OR: or, ||
  • NOT: not, !

搜尋字串可用contains及matches, 大抵上是針對字串類的查, 其他如數值、日期時間、布林等就不能用這方式查。另外, contains預設是區分大小寫, 而matches則不分大小寫。

如果要查詢的資料型態不是contains及matches可以查的, 在Status Bar就會顯示提示,

查詢還可如substr的方式, Wireshark 稱為 slice。這裡特別以查網卡MAC或IP為例, 中括號([ ])內以冒號(:)區隔, 左代表起始索引位置, 由0開始; 右為取得長度, 以bytes計, 而針對MAC和IP則要用Packet Bytes中的Hex 16進位值來輸入, 輸入間隔符號為冒號(:)

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料