(八):應(yīng)用Wireshark過(guò)濾條件抓取特定數(shù)據(jù)流

2018-02-24 15:48 更新

應(yīng)用抓包過(guò)濾,選擇Capture | Options,擴(kuò)展窗口查看到Capture Filter欄。雙擊選定的接口,如下圖所示,彈出Edit Interface Settints窗口。

下圖顯示了Edit Interface Settings窗口,這里可以設(shè)置抓包過(guò)濾條件。如果你確知抓包過(guò)濾條件的語(yǔ)法,直接在Capture Filter區(qū)域輸入。在輸入錯(cuò)誤時(shí),Wireshark通過(guò)紅色背景區(qū)域表明無(wú)法處理過(guò)濾條件。最有可能的情況是,過(guò)濾條件中含有輸入錯(cuò)誤,或是使用了display filter的語(yǔ)法。

點(diǎn)擊Capture Filter按鈕查看并選擇已保存的抓包過(guò)濾條件。

更多信息

抓取指定**IP地址的數(shù)據(jù)流:**

如果你的抓包環(huán)境下有很多主機(jī)正在通訊,可以考慮使用所觀察主機(jī)的IP地址來(lái)進(jìn)行過(guò)濾。以下為IP地址抓包過(guò)濾示例:

  • host 10.3.1.1:抓取發(fā)到/來(lái)自10.3.1.1的數(shù)據(jù)流
  • host 2406:da00:ff00::6b16:f02d:抓取發(fā)到/來(lái)自IPv6地址2406:da00:ff00::6b16:f02d的數(shù)據(jù)流
  • not host 10.3.1.1:抓取除了發(fā)到/來(lái)自10.3.1.1以外的所有數(shù)據(jù)流
  • src host 10.3.1.1:抓取來(lái)自10.3.1.1的數(shù)據(jù)流
  • dst host 10.3.1.1:抓取發(fā)到10.3.1.1的數(shù)據(jù)流
  • host 10.3.1.1 or 10.3.1.2:抓取發(fā)到/來(lái)自10.3.1.1,以及與之通訊的所有數(shù)據(jù)流,與10.3.1.2,以及與之通訊的所有數(shù)據(jù)流
  • host?www.espn.com:抓取發(fā)到/來(lái)自所有解析為www.espn.com的IP地址的數(shù)據(jù)流

抓取指定**IP地址范圍的數(shù)據(jù)流:**

當(dāng)你需要抓取來(lái)自/發(fā)到一組地址的數(shù)據(jù)流,可以采用CIDR(無(wú)類別域間路由,Classless Interdomain Routing)格式或使用mask參數(shù)。

  • net 10.3.0.0/16:抓取網(wǎng)絡(luò)10.3.0.0上發(fā)到/來(lái)自所有主機(jī)的數(shù)據(jù)流(16表示長(zhǎng)度)
  • net 10.3.0.0 mask 255.255.0.0:與之前的過(guò)濾結(jié)果相同
  • ip6 net 2406:da00:ff00::/64:抓取網(wǎng)絡(luò)2406:da00:ff00:0000(IPv6)上發(fā)到/來(lái)自所有主機(jī)的數(shù)據(jù)流
  • not dst net 10.3.0.0/16:抓取除了發(fā)到以10.3開頭的IP地址以外的所有數(shù)據(jù)流
  • not src net 10.3.0.0/16:抓取除了來(lái)自以10.3開頭的IP地址以外的所有數(shù)據(jù)流
  • ip proto :抓取ip協(xié)議字段等于值的報(bào)文。如TCP(code 6), UDP(code 17), ICMP(code 1)。
  • ip[2:2]==:ip報(bào)文大小
  • ip[8]==:TTL(Time to Live)值
  • ip[9]==:協(xié)議值
  • icmp[icmptype]==:?抓取?ICMP代碼等于identifier的ICMP報(bào)文,?如icmp-echo?以及?icmp-request。

方括號(hào)中第一個(gè)數(shù)字表示從協(xié)議頭開始的偏移量,第二個(gè)數(shù)字表示需要觀察多少位。

抓取發(fā)到廣播或多播地址的數(shù)據(jù)流**:**

只需偵聽廣播或多播數(shù)據(jù)流,就可以掌握網(wǎng)絡(luò)上主機(jī)的許多信息。

  • ip broadcast:抓取廣播報(bào)文
  • ip multicast:抓取多播報(bào)文
  • dst host ff02::1:抓取到IPv6多播地址所有主機(jī)的數(shù)據(jù)流
  • dst host ff02::2:抓取到IPv6多播地址所有路由器的數(shù)據(jù)流

小貼士:

Wireshark包含了一些默認(rèn)的抓包過(guò)濾條件。點(diǎn)擊主工具欄的Edit Capture Filters,跳轉(zhuǎn)到已保存抓包過(guò)濾列表。你會(huì)發(fā)現(xiàn)一些常見抓包過(guò)濾的示例。

抓取基于**MAC地址的數(shù)據(jù)流:**

當(dāng)你需要抓取發(fā)到/來(lái)自某一主機(jī)的IPv4或IPv6數(shù)據(jù)流,可創(chuàng)建基于主機(jī)MAC地址的抓包過(guò)濾條件。

應(yīng)用MAC地址時(shí),需確保與目標(biāo)主機(jī)處于同一網(wǎng)段。

  • ether host 00:08:15:00:08:15:抓取發(fā)到/來(lái)自00:08:15:00:08:15的數(shù)據(jù)流
  • ether src 02:0A:42:23:41:AC:抓取來(lái)自02:0A:42:23:41:AC的數(shù)據(jù)流
  • ether dst 02:0A:42:23:41:AC:抓取發(fā)到02:0A:42:23:41:AC的數(shù)據(jù)流
  • not ether host?00:08:15:00:08:15:抓取除了發(fā)到/來(lái)自00:08:15:00:08:15以外的所有數(shù)據(jù)流
  • ether broadcast或ether dst ff:ff:ff:ff:ff:ff:抓取廣播報(bào)文
  • ether multicast:多播報(bào)文
  • 抓取指定以太網(wǎng)類型的報(bào)文:ether proto 0800
  • 抓取指定VLAN:vlan
  • 抓取指定幾個(gè)VLAN:vlan and vlan

抓取基于指定應(yīng)用的數(shù)據(jù)流**:**

你可能需要查看基于一個(gè)或幾個(gè)應(yīng)用的數(shù)據(jù)流。抓包過(guò)濾器語(yǔ)法無(wú)法識(shí)別應(yīng)用名,因此需要根據(jù)端口號(hào)來(lái)定義應(yīng)用。通過(guò)目標(biāo)應(yīng)用的TCP或UDP端口號(hào),將不相關(guān)的報(bào)文過(guò)濾掉。

  • port 53:抓取發(fā)到/來(lái)自端口53的UDP/TCP數(shù)據(jù)流(典型是DNS數(shù)據(jù)流)
  • not?port 53:抓取除了發(fā)到/來(lái)自端口53以外的UDP/TCP數(shù)據(jù)流
  • port 80:抓取發(fā)到/來(lái)自端口80的UDP/TCP數(shù)據(jù)流(典型是HTTP數(shù)據(jù)流)
  • udp port 67:抓取發(fā)到/來(lái)自端口67的UDP數(shù)據(jù)流(典型是DHCP據(jù)流)
  • tcp port 21:抓取發(fā)到/來(lái)自端口21的TCP數(shù)據(jù)流(典型是FTP命令通道)
  • portrange 1-80:抓取發(fā)到/來(lái)自端口1-80的所有UDP/TCP數(shù)據(jù)流
  • tcp portrange 1-80:抓取發(fā)到/來(lái)自端口1-80的所有TCP數(shù)據(jù)流

抓取結(jié)合端口的數(shù)據(jù)流**:**

當(dāng)你需要抓取多個(gè)不連續(xù)端口號(hào)的數(shù)據(jù)流,將它們通過(guò)邏輯符號(hào)連接起來(lái),如下圖所示:

  • port 20 or port 21:抓取發(fā)到/來(lái)自端口20或21的UDP/TCP數(shù)據(jù)流(典型是FTP數(shù)據(jù)和命令端口)
  • host 10.3.1.1 and port 80:抓取發(fā)到/來(lái)自10.3.1.1端口80的數(shù)據(jù)流
  • host 10.3.1.1 and not port 80:抓取發(fā)到/來(lái)自10.3.1.1除了端口80以外的數(shù)據(jù)流
  • udp src port 68 and udp dst port 67:抓取從端口68到端口67的所有UDP數(shù)據(jù)流(典型是從DHCP客戶端到DHCP服務(wù)器)
  • udp src port 67 and udp dst port 68:抓取從端口67到端口68的所有UDP數(shù)據(jù)流(典型是從DHCP服務(wù)器到DHCP客戶端)
  • 抓取TCP連接的開始(SYN)和結(jié)束(FIN)報(bào)文,配置tcp[tcpflags] & (tcp-syn|tcp-fin)!=0
  • 抓取所有RST(Reset)標(biāo)志位為1的TCP報(bào)文,配置tcp[tcpflags] & (tcp-rst)!=0
  • less :抓取小于等于某一長(zhǎng)度的報(bào)文,等同于len
  • greater :抓取大于等于某一長(zhǎng)度的報(bào)文,等同于len >=

SYN:?簡(jiǎn)歷連接的信號(hào)

FIN:?關(guān)閉連接的信號(hào)

ACK:?確認(rèn)接收數(shù)據(jù)的信號(hào)

RST:?立即關(guān)閉連接的信號(hào)

PSH:?推信號(hào),盡快將數(shù)據(jù)轉(zhuǎn)由應(yīng)用處理

  • 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]是從協(xié)議頭開始的偏移量,0,1,3,5,6,8是標(biāo)識(shí)位

盡量避免使用抓包過(guò)濾。即便多看幾個(gè)報(bào)文,也比漏看一個(gè)報(bào)文要好。當(dāng)你抓取了大量報(bào)文的時(shí)候,用顯示過(guò)濾(過(guò)濾選項(xiàng)也更多)來(lái)重點(diǎn)查看某一數(shù)據(jù)流。

小貼士:

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)