抓取指定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.addr == 10.2.2.2
抓取指定IP地址範圍的數據流:網絡
當你須要抓取來自/發到一組地址的數據流,能夠採用CIDR(無類別域間路由,Classless Interdomain Routing)格式或使用mask參數。less
- 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。
方括號中第一個數字表示從協議頭開始的偏移量,第二個數字表示須要觀察多少位。dom
抓取發到廣播或多播地址的數據流:tcp
只需偵聽廣播或多播數據流,就能夠掌握網絡上主機的許多信息。ide
- ip broadcast:抓取廣播報文
- ip multicast:抓取多播報文
- dst host ff02::1:抓取到IPv6多播地址全部主機的數據流
- dst host ff02::2:抓取到IPv6多播地址全部路由器的數據流
小貼士:工具
Wireshark包含了一些默認的抓包過濾條件。點擊主工具欄的Edit Capture Filters,跳轉到已保存抓包過濾列表。你會發現一些常見抓包過濾的示例。spa
抓取基於MAC地址的數據流:code
當你須要抓取發到/來自某一主機的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] & 0x00 = 0: No flags set (null scan)
- tcp[13] & 0x01 = 1: FIN set and ACK not set
- tcp[13] & 0x03 = 3: SYN set and FIN set
- tcp[13] & 0x05 = 5: RST set and FIN set
- tcp[13] & 0x06 = 6: SYN set and RST set
- tcp[13] & 0x08 = 8: PSH set and ACK not set
tcp[13]是從協議頭開始的偏移量,0,1,3,5,6,8是標識位。
儘可能避免使用抓包過濾。即使多看幾個報文,也比漏看一個報文要好。當你抓取了大量報文的時候,用顯示過濾(過濾選項也更多)來重點查看某一數據流。
協議過濾器:
- arp:顯示全部包括ARP請求和回覆在內的全部ARP數據流。
- ip:顯示內含IPv4頭在內的(如ICMP目的地址不可達報文,在ICMP報文頭以後返回到來方向的IPv4頭)IP數據流。
- ipv6:顯示全部IPv6數據流,包括內含IPv6報文頭的IPv4報文,如6to4,Teredo,以及ISATAP數據流。
- tcp:顯示全部基於TCP的數據流。
應用過濾器:
- bootp:顯示全部DHCP數據流(基於BOOTP)。
- dns:顯示包括TCP區域傳輸以及基於標準UDP的DNS請求和回覆在內的全部DNS數據流。
- tftp:顯示全部TFTP(Trivial File Transfer Protocol)數據流。
- http:顯示全部HTTP命令,回覆以及數據傳輸報文,但不顯示TCP握手報文,TCP ACK報文以及TCP結束報文。
- icmp:顯示全部ICMP報文。
域過濾器:
- boot.option.hostname:顯示全部包含主機名的DHCP數據流(DHCP基於BOOTP)。
- http:host:顯示全部包含HTTP主機名字段的全部HTTP報文。此報文是客戶端向網絡服務器發送請求時發出的。
- ftp.request.command:顯示全部包含命令的FTP數據流,好比USER,PASS,或RETR命令。
字符過濾器:
- tcp.analysis.flags:顯示全部包含TCP分析標識的全部報文,包括報文丟失,重傳,或零窗口標識。
- tcp.analysis,zero_window:顯示含有代表發送方的接收緩存用完標識的報文。