網路世界錯綜複雜,林子大了,什麼鳥都有,怎麼在萬千世界中找到心儀的她,需要我們借助一定的過濾要求來找到所需要的一些報文,在網路世界中,主要根據的是報文中的標誌位和一些屬性進行區分,如何區分報文的種類以及如何過濾所需要的包,來一起了解吧!在上篇文章我們講述了如何在windows 的 wireshark 中抓取 http 報文 和 tcp 報文,如果你還沒接觸過 wireshark,可以先回頭看看這篇文章,位址我放在這裡:傳送門, 看完再來看這篇,會更加利於理解。
下面是三個簡單的問題,希望你看完後可以嘗試捕捉一下對應報文,文末會給出對應的答案
問題1.:捕獲 syn-ack 報文 (捕獲過濾器)
問題2:捕獲指定埠範圍和指定網域名稱 報文 (捕獲過濾器)
問題3:從獲取到報文中篩選指定ip位址的報文(顯示過濾器)
首先我們先明白一些概念性的東西
1.過濾器有哪幾種
wireshark的過濾器分為兩個部分,捕獲過濾器和顯示過濾器
1.1 捕獲過濾器
作用:用於減少抓取的報文體積,使用 bpf 語法,功能相對有限
1.expression 表示式
表示式主要由兩部分構成,乙個是原語限定詞,另乙個是原語運算子,類似我們數學中的條件以及與或非,根據這兩個的神奇搭配,我們就可以配出各種我們所想要的條件。
1.1 primitives 原語:由名稱或數字,以及描述它的多個限定詞組成
1.11 主要的限定詞
type: 設定數字或者名稱所指示型別
net:
portrange:
dir: 設定網路出入方向
proto:指定協議的型別
1.12 其他限定詞
限定詞是一些關鍵的屬性,說明你要過濾的指標是什麼,是 ip位址,還是埠,是網域名稱 還是協議
1.2 原語運算子
例如:src or dst portrange 6000-8000 && tcp or ip6
上述表示要捕獲的是 tcp報文或者 ipv6的報文,且源埠或者目標埠在 6000-8000的範圍內,
原語運算子的主要作用就是限定搭配來獲取豐富多彩的各類條件
1.3 一些常用的示例
1.4 捕獲 tcp 協議各種型別的報文 !!!
我們知道 tcp 的三次握手和四次揮手 都有著不同的報文,例如 ack 報文,rst 報文, fin 報文 等,在學習 tcp 協議的時候,如何捕獲這些指定的報文呢?接下來我們根據原理進行學習,首先我們剖析一下 tcp 的報文結構:
先解釋一下上面的相關名詞:
tcp的標誌欄位在tcp頭的第14位元組儲存, 對應的 8 個位元對應著 ns,cwr,ece,urg,ack,psh,rst,syn,fin ,位元對應的值如果是1,說明該標識生效,常見的有如下幾種:
**1:urg:(置一有效)緊急指標,表明傳送端向另一端使用緊急方式傳送資料。
2:ack:(置一有效)表示確認序號。
3:psh:(置一有效)表示接收方應該盡快將這個報文交給應用層。
4:rst:(置一有效)表示重建連線。
5:syn:(置一有效)用來發起乙個連線。
6:fin:(置一有效)表示傳送方的表示完成任務,接收方的表示同意斷開連線。**
這裡的 tcp[13] 的意思是,tcp 報文的第14個位元組,乙個位元組是8bit ,每個位元剛好對應著上面的八個標誌,有 1 或 0 的取值
二、顯示過濾器
作用:對已經抓取到的報文過濾顯示,功能強大
我們可以通過 檢視選單,來找到 wireshark 所支援的各類協議,其中 tcp協議 部分如上圖所示。
其中型別主要有以下的區分:
2.1 過濾型別
2.2 組合符
上面的型別匹配都是單體的,當然我們也可以對其進行組合,此時就需要組合操作符了,如下所示:
英文符號
意義和例子
and&
邏輯與, 及兩個條件均需成立,例如 ip.src ==10.0.0.1 and tcp.flags.fin
or||
邏輯或,及兩個條件滿足其中均可,例如 ip.src == 10.0.0.1 or ip.src== 92.168.1.1
xor^^
邏輯異或,即兩個跳進同時成立才算成立,否則就算不成立 例如, tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
[…]無
切片符,從0開始in無
集合運算
除了上面這些常用的,還有一些其他的操作符
1.大括號{} 集合操作符
例如:tcp.port in 的意思是 tcp 的埠 在 443 和 80-88 之間的顯示,其效果等效於 tcp.port == 443 || (tcp.port >=80 && tcp.port <=88)
2.中括號 切片
2.3 常用函式接下來,我們根據上面的內容來回答這三個問題:
問題1.:捕獲 syn-ack 報文 (捕獲過濾器)
問題2:捕獲指定埠範圍和指定網域名稱 報文 (捕獲過濾器)
問題3:從獲取到報文中篩選指定ip位址的報文(顯示過濾器)
答案1:捕獲 syn-ack 報文,即 tcp[13] 的標誌為中 syn 和 ack 均為1 ,對應的位元二進位制數為 00010010, 即 18,因此表示式為:tcp[13] = 18
ip.addr==192.168.31.66
其中源ip和目標ip都為 192.168.31.66 的才會顯示
碼字總結不易,如果對你有幫助希望能給個贊或者關注,後面我會出更多網路相關的文章,以上內容,如有書寫不嚴謹之處,請指出。
wireshark 抓包問題
一 the npf driver isn t running 這個錯誤是因為沒有開啟npf服務造成的。npf即網路資料報過濾器 netgroup packet filter,npf 是winpcap的核心部分,它是winpcap完成困難工作的元件。它處理網路上傳輸的資料報,並且對使用者級提供可捕獲 ...
Wireshark抓包練習
姓名 郭瀚鵬 學號 15307130174 專業 資訊保安 dns 查詢分組 首部區域 internet protocol version 4 ipv4 src 源ip dst 目的id header length 首部長度 differentiated services 區分服務 保證qos服務的...
wireshark抓包過濾
抓指定主機icmp包 icmp and ip.host 192.168.168.65 抓指定主機tcp資料報 tcp and ip.host 172.16.10.222 tcp.flags 顯示包含tcp標誌的封包。tcp.flags.syn 0 02 顯示包含tcp syn標誌的封包。1 對源位址...