一站式學習Wireshark(八):應用Wireshark過濾條件抓取特定資料流

來源:互聯網
上載者:User

標籤:

應用抓包過濾,選擇Capture | Options,擴充視窗查看到Capture Filter欄。雙擊選定的介面,如所示,彈出Edit Interface Settints視窗。

顯示了Edit Interface Settings視窗,這裡可以設定抓包過濾條件。如果你確知抓包過濾條件的文法,直接在Capture Filter地區輸入。在輸入錯誤時,Wireshark通過紅色背景地區表明無法處理過濾條件。最有可能的情況是,過濾條件中含有輸入錯誤,或是使用了display filter的文法。

點擊Capture Filter按鈕查看並選擇已儲存的抓包過濾條件。

更多資訊

抓取指定IP地址的資料流:

如果你的抓包環境下有很多主機正在通訊,可以考慮使用所觀察主機的IP地址來進行過濾。以下為IP地址抓包過濾樣本:

  • host 10.3.1.1:抓取發到/來自10.3.1.1的資料流
  • host 2406:da00:ff00::6b16:f02d:抓取發到/來自IPv6地址2406:da00:ff00::6b16:f02d的資料流
  • not host 10.3.1.1:抓取除了發到/來自10.3.1.1以外的所有資料流
  • src host 10.3.1.1:抓取來自10.3.1.1的資料流
  • dst host 10.3.1.1:抓取發到10.3.1.1的資料流
  • host 10.3.1.1 or 10.3.1.2:抓取發到/來自10.3.1.1,以及與之通訊的所有資料流,與10.3.1.2,以及與之通訊的所有資料流
  • host www.espn.com:抓取發到/來自所有解析為www.espn.com的IP地址的資料流

抓取指定IP位址範圍的資料流:

當你需要抓取來自/發到一組地址的資料流,可以採用CIDR(無類別域間路由,Classless Interdomain Routing)格式或使用mask參數。

  • net 10.3.0.0/16:抓取網路10.3.0.0上發到/來自所有主機的資料流(16表示長度)
  • net 10.3.0.0 mask 255.255.0.0:與之前的過濾結果相同
  • ip6 net 2406:da00:ff00::/64:抓取網路2406:da00:ff00:0000(IPv6)上發到/來自所有主機的資料流
  • not dst net 10.3.0.0/16:抓取除了發到以10.3開頭的IP地址以外的所有資料流
  • not src net 10.3.0.0/16:抓取除了來自以10.3開頭的IP地址以外的所有資料流
  • ip proto <protocol code>:抓取ip協議欄位等於<protocol code>值的報文。如TCP(code 6), UDP(code 17), ICMP(code 1)。
  • ip[2:2]==<number>:ip報文大小
  • ip[8]==<number>:TTL(Time to Live)值
  • ip[9]==<number>:協議值
  • icmp[icmptype]==<identifier>: 抓取 ICMP代碼等於identifier的ICMP報文, 如icmp-echo 以及 icmp-request。

方括弧中第一個數字表示從協議頭開始的位移量,第二個數字表示需要觀察多少位。

抓取發到廣播或多播地址的資料流:

只需偵聽廣播或多播資料流,就可以掌握網路上主機的許多資訊。

  • ip broadcast:抓取廣播報文
  • ip multicast:抓取多播報文
  • dst host ff02::1:抓取到IPv6多播地址所有主機的資料流
  • dst host ff02::2:抓取到IPv6多播地址所有路由器的資料流

小貼士:

Wireshark包含了一些預設的抓包過濾條件。點擊主工具列的Edit Capture Filters,跳轉到已儲存抓包過濾列表。你會發現一些常見抓包過濾的樣本。

抓取基於MAC地址的資料流:

當你需要抓取發到/來自某一主機的IPv4或IPv6資料流,可建立基於主機MAC地址的抓包過濾條件。

應用MAC地址時,需確保與目標主機處於同一網段。

  • ether host 00:08:15:00:08:15:抓取發到/來自00:08:15:00:08:15的資料流
  • ether src 02:0A:42:23:41:AC:抓取來自02:0A:42:23:41:AC的資料流
  • ether dst 02:0A:42:23:41:AC:抓取發到02:0A:42:23:41:AC的資料流
  • not ether host 00:08:15:00:08:15:抓取除了發到/來自00:08:15:00:08:15以外的所有資料流
  • ether broadcast或ether dst ff:ff:ff:ff:ff:ff:抓取廣播報文
  • ether multicast:多播報文
  • 抓取指定乙太網路類型的報文:ether proto 0800
  • 抓取指定VLAN:vlan <vlan number>
  • 抓取指定幾個VLAN:vlan <vlan number> and vlan <vlan number>

抓取基於指定應用的資料流:

你可能需要查看基於一個或幾個應用的資料流。抓包過濾器文法無法識別應用程式名稱,因此需要根據連接埠號碼來定義應用。通過目標應用的TCP或UDP連接埠號碼,將不相關的報文過濾掉。

  • port 53:抓取發到/來自連接埠53的UDP/TCP資料流(典型是DNS資料流)
  • not port 53:抓取除了發到/來自連接埠53以外的UDP/TCP資料流
  • port 80:抓取發到/來自連接埠80的UDP/TCP資料流(典型是HTTP資料流)
  • udp port 67:抓取發到/來自連接埠67的UDP資料流(典型是DHCP據流)
  • tcp port 21:抓取發到/來自連接埠21的TCP資料流(典型是FTP命令通道)
  • portrange 1-80:抓取發到/來自連接埠1-80的所有UDP/TCP資料流
  • tcp portrange 1-80:抓取發到/來自連接埠1-80的所有TCP資料流

抓取結合連接埠的資料流:

當你需要抓取多個不連續連接埠號碼的資料流,將它們通過邏輯符號串連起來,如所示:

  • port 20 or port 21:抓取發到/來自連接埠20或21的UDP/TCP資料流(典型是FTP資料和命令連接埠)
  • host 10.3.1.1 and port 80:抓取發到/來自10.3.1.1連接埠80的資料流
  • host 10.3.1.1 and not port 80:抓取發到/來自10.3.1.1除了連接埠80以外的資料流
  • udp src port 68 and udp dst port 67:抓取從連接埠68到連接埠67的所有UDP資料流(典型是從DHCP用戶端到DHCP伺服器)
  • udp src port 67 and udp dst port 68:抓取從連接埠67到連接埠68的所有UDP資料流(典型是從DHCP伺服器到DHCP用戶端)
  • 抓取TCP串連的開始(SYN)和結束(FIN)報文,配置tcp[tcpflags] & (tcp-syn|tcp-fin)!=0
  • 抓取所有RST(Reset)標誌位為1的TCP報文,配置tcp[tcpflags] & (tcp-rst)!=0
  • less <length>:抓取小於等於某一長度的報文,等同於len <=<length>
  • greater <length>:抓取大於等於某一長度的報文,等同於len >=<length>

SYN: 簡曆串連的訊號

FIN: 關閉串連的訊號

ACK: 確認接收資料的訊號

RST: 立即關閉串連的訊號

PSH: 推訊號,儘快將資料轉由應用處理

  • tcp[13] & 0×00 = 0: No flags set (null scan)
  • tcp[13] & 0×01 = 1: FIN set and ACK not set
  • tcp[13] & 0×03 = 3: SYN set and FIN set
  • tcp[13] & 0×05 = 5: RST set and FIN set
  • tcp[13] & 0×06 = 6: SYN set and RST set
  • tcp[13] & 0×08 = 8: PSH set and ACK not set

tcp[13]是從協議頭開始的位移量,0,1,3,5,6,8是標識位

盡量避免使用抓包過濾。即便多看幾個報文,也比漏看一個報文要好。當你抓取了大量報文的時候,用顯示過濾(過濾選項也更多)來重點查看某一資料流。

小貼士:

如果你需要查看TCP幀中的某一ASCII字串,用Wireshark String-Matching Capture Filter Generator(http://www.wireshark.org/tools/string-cf.html)。例如,想要抓取HTTP GET報文,輸入GET並將TCP位移量設定為0。

一站式學習Wireshark(八):應用Wireshark過濾條件抓取特定資料流

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.