Wireshark教程之過濾器設置


實驗目的

1、工具介紹

2、主要應用

實驗原理

1、網絡管理員用來解決網絡問題

2、網絡安全工程師用來檢測安全隱患

3、開發人員用來測試執行情況

4、學習網絡協議

實驗內容

1、抓取特定數據流

2、顯示特定數據流

實驗環境描述

實驗環境描述

1、學生機與實驗室網絡直連;

2、VPC1與實驗室網絡直連;

3、學生機與VPC1物理鏈路連通;

pc機:Windows7旗艦版

實驗步驟

首先打開桌面上的wireshark工具

Wireshark過濾器

抓取特定流量過濾器是在抓包的時候只抓取過濾條件的包,顯示過濾器是在有多種流量的情況下,顯示具備過濾條件的包

抓取特定數據流

首先在這里建議大家盡量避免使用抓取特定流量過濾。即便多看幾個報文,也比漏看一個報文要好。當你抓取了大量報文的時候,用顯示過濾(過濾選項也更多)來重點查看某一數據流。

應用抓取特定流量過濾,在 Capture下打開Capture Options設置窗口

圖片描述

這里可以設置抓取特定流量過濾條件,如果你確定過濾條件的語法,直接在Capture Filter區域輸入。在輸入錯誤時,Wireshark通過紅色背景區域表明無法處理過濾條件。最有可能的情況是,過濾條件中含有輸入錯誤,或是使用了display filter的語法。

圖片描述

點擊Capture Filter 按鈕查看並選擇已保存的過濾條件

圖片描述

1、抓取基於MAC的數據流

當你需要抓取發到/來自某一主機的IPv4或IPv6數據流,可創建基於主機MAC地址的抓包過濾條件。應用MAC地址時,需確保與目標主機處於同一網段。

ether host 6C-C6-7C-B8-68-01:抓取發送到/來自6C-C6-7C-B8-68-01的數據流

ether src 6C-C6-7C-B8-68-01:抓取來自6C-C6-7C-B8-68-01的數據流

ether dst 6C-C6-7C-B8-68-01:抓取發到6C-C6-7C-B8-68-01的數據流

not ether host 6C-C6-7C-B8-68-01:抓取除了發到/來自6C-C6-7C-B8-68-01以外的所有數據流

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)

例:ether host 6C-C6-7C-B8-68-01 圖片描述

顯示信息發送到/來自6C-58-67-9B-C7-01的數據流

圖片描述

例:ether src host 6C-58-67-9B-C7-01

圖片描述

顯示來自6C-58-67-9B-C7-01的數據流

圖片描述

2、抓取基於IP的數據流

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

host 172.16.1.69:抓取發到/來自172.16.1.69的數據流

host 2406:da00:ff00::6b16:f02d:抓取發到/來自IPv6地址2406:da00:ff00::6b16:f02d的數據流

not host 172.16.1.69:抓取除了發到/來自172.16.1.69以外的所有數據流

src host 172.16.1.69:抓取來自172.16.1.69的數據流

dst host 172.16.1.69:抓取發到172.16.1.69的數據流

host 172.16.1.69 or 172.16.1.70:抓取發到/來自172.16.1.69以及與通訊的數據流,抓取發到/來自192.168.11.254以及與通訊的所有數據流

例: src host 172.16.1.69 圖片描述

顯示信息,所有的包都是來自172.16.1.69的數據流

圖片描述

3、抓取基於端口的數據流

你可能需要查看基於一個或幾個應用的數據流。抓包過濾器語法無法識別應用名,因此需要根據端口號來定義應用。通過目標應用的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)

4、抓取基於指定協議的數據流

你可能需要查看基於一個或幾個協議的數據流。通過目標應用的TCP、UDP或在TCP、UDP后加上端口號,將不相關的報文過濾掉。

icmp:抓取發到/來自icmp的數據流

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數據流

顯示特定數據流

顯示過濾器可基於協議,應用,域名,或字符,對大小寫敏感。絕大多數簡單的顯示過濾器由小寫字母組成。與捕捉過濾器使用的BPF語法不同,顯示過濾器使用的是Wireshark特定的格式。除了某些特例之外,Wireshark顯示過濾器和捕捉過濾器有很大的區別。

圖片描述

5、基於IP地址或主機報文過濾

對於IPv4數據流,我們使用字段名ip.src,ip.dst,ip.addr;對於IPv6數據流,使用ipv6.src,ipv6.dst,ipv6.host以及ipv6.addr。

ip.addr==172.16.1.69顯示在IP源地址字段或IP目的地址字段包含172.16.1.69的幀。

ip.src==172.16.1.69顯示所有來自172.16.1.69的數據流。

ip.dst==172.16.1.69顯示所有發往172.16.1.69的數據流

!ip.addr==172.16.1.69顯示除了在IP源地址字段或IP目的地址字段包含172.16.1.69以外的幀

例如在filter欄輸入ip.dst ==172.16.1.79

顯示信息,所有發往172.16.1.79的數據流

圖片描述

ip.src == 172.16.1.79 and ip.dst ==172.16.1.79 過濾源IP為172.16.1.79,目的IP為172.16.1.255的通信數據包

顯示信息,源IP172.16.1.79,目的IP172.16.1.255的數據包

圖片描述

6、基於端口號的過濾

tcp.port == 80過濾tcp的80端口

協議過濾器

arp:顯示所有包括ARP請求和回復在內的所有ARP數據流。

ip:顯示內含IPv4頭在內的(如ICMP目的地址不可達報文,在ICMP報文頭之后返回到來方向的IPv4頭)IP數據流。

ipv6:顯示所有IPv6數據流,包括內含IPv6報文頭的IPv4報文,如6to4,Teredo,以及ISATAP數據流。

tcp:顯示所有基於TCP的數據流。

7、字符過濾器:

tcp.analysis.flags:顯示所有包含TCP分析標識的所有報文,包括報文丟失,重傳,或零窗口標識。

tcp.analysis,zero_window:顯示含有表明發送方的接收緩存用完標識的報文

例tcp.flags.syn == 1:過濾三次握手fsyn=1的數據包

8、顯示運算符

通過擴展過濾條件可查找某一域值,Wireshark針對此功能支持數字比較運算符。我整理出來幾種類型,這里就不一一給大家查看結果了,

==或eq

例如:ip.src == 10.2.2.2顯示所有源地址為10.2.2.2的IPv4數據流

!=或ne

例如:tcp.srcport != 80顯示源端口除了80以外的所有TCP數據流

或gt

例如:frame.time_relative > 1 顯示距前一個報文到達時間相差1秒的報文

<或lt

例如:tcp.window_size < 1460 顯示當TCP接收窗口小於1460字節時的報文

=或ge

例如:dns.count.answers >= 10 顯示包含10個以上answer的DNS響應報文

<=或le

例如:ip.ttl <= 10 顯示IP報文中Time to Live字段小於等於10的報文

contains

例如:http contains “GET” 顯示所有HTTP客戶端發送給HTTP服務器的GET請求

運算符兩邊不用留空格。ip.src == 10.2.2.2與ip.src==10.2.2.2的效果是相同的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM