Wireshark過濾語句中常用的操作符


關鍵字有:

eq,== 等於
ne,!= 不等於
gt,> 比…大
lt,< 比…小 ge,>= 大於等於
le,<= 小於等於 and,|| 且 or,&& 或 not,! 取反

另外還有contains和matches兩個不常用的關鍵字,過濾效果不錯。

“contains”過濾包含指定字符串的數據包。例如:

http.request.uri contains “/dll/test.htm?”
//過濾http請求的uri中含有/dll/test.htm?字段的請求信息

udp contains 81:60:03
//過濾包含81:60:03的udp數據包

http.request.uri matches “V4=..1″
//matches 匹配過濾條件中給定的正則表達式,支持與Perl兼容的正則表達式(PCRE)。

 

 

http.host==magentonotes.com
http.host contains magentonotes.com
//過濾經過指定域名的http數據包,這里的host值不一定是請求中的域名

http.response.code==302
//過濾http響應狀態碼為302的數據包

http.response==1
//過濾所有的http響應包

http.request==1
//過濾所有的http請求,貌似也可以使用http.request

http.request.method==POST
//wireshark過濾所有請求方式為POST的http請求包,注意POST為大寫

http.cookie contains guid
//過濾含有指定cookie的http數據包

http.request.uri==”/online/setpoint”
//過濾請求的uri,取值是域名后的部分

http.request.full_uri==” http://task.browser.360.cn/online/setpoint”
//過濾含域名的整個url則需要使用http.request.full_uri

http.server contains “nginx”
//過濾http頭中server字段含有nginx字符的數據包

http.content_type == “text/html”
//過濾content_type是text/html的http響應、post包,即根據文件類型過濾http數據包

http.content_encoding == “gzip”
//過濾content_encoding是gzip的http包

http.transfer_encoding == “chunked”
//根據transfer_encoding過濾

http.content_length == 279
http.content_length_header == “279″
//根據content_length的數值過濾

http.server
//過濾所有含有http頭中含有server字段的數據包

http.request.version == “HTTP/1.1″
//過濾HTTP/1.1版本的http包,包括請求和響應

http.response.phrase == “OK”

//過濾http響應中的phrase

 

 

Wireshark捕獲UDP數據包

UDP協議分析常用過濾條件
ip.addr==192.168.0.1 //過濾ip地址
data.len==8 //過濾data部分長度為8的數據包
data.data == 00:08:30:03:00:00:00:00 //過濾指定內容的數據包

udp.srcport == 10092 //過濾經過本機10092端口的udp數據包
udp.dstport == 80 //過濾目標機器10092端口的udp數據包
udp.port==10092 //過濾本機或目標機器10092端口的數據包
udp.length == 20 //過濾指定長度的UDP數據包

UDP校驗和過濾條件
udp.checksum == 0x250f
udp.checksum_good == 0 //Boolean類型
udp.checksum_bad == 0

進程相關的過濾條件

以下過濾條件不支持Windows,因為需要特殊的驅動。

udp.proc.dstcmd //過濾目標進程名
udp.proc.dstpid //過濾目標進程PID
udp.proc.dstuid //過濾目標進程的用戶ID
udp.proc.dstuname //過濾目標進程的用戶名
udp.proc.srccmd //過濾源進程名
udp.proc.srcpid //過濾源進程PID
udp.proc.srcuid //過濾源進程的用戶ID
udp.proc.srcuname //過濾源進程的用戶名

Wireshark中根據MAC地址/物理地址過濾數據包

Wireshark捕獲過濾中過濾MAC地址/物理地址

ether host 00:11:22:33:44:55 //過濾目標或源地址是00:11:22:33:44:55的數據包

ether dst host 00:11:22:33:44:55 //過濾目標地址是00:11:22:33:44:55的數據包

ether src host 00:11:22:33:44:55 //過濾源地址是00:11:22:33:44:55的數據包

Wireshark顯示過濾中過濾MAC地址/物理地址

eth.addr== 00:11:22:33:44:55 //過濾目標或源地址是00:11:22:33:44:55的數據包

eth.src== 00:11:22:33:44:55 //過濾源地址是00:11:22:33:44:55的數據包

eth.dst== 00:11:22:33:44:55 //過濾目標地址是00:11:22:33:44:55的數據包

Wireshark捕獲經過指定ip的數據包

捕捉過濾抓包前在capture option中設置,僅捕獲符合條件的包,可以避免產生較大的捕獲文件和內存占用,但不能完整的復現測試時的網絡環境。

host 192.168.0.1 //抓取192.168.0.1 收到和發出的所有數據包
src host 192.168.0.1 //源地址,192.168.0.1發出的所有數據包
dst host 192.168.0.1 //目標地址,192.168.0.1收到的所有數據包

src host hostname //根據主機名過濾

ether host 80:05:09:03:E4:35 //根據MAC地址過濾

net 192.168.0 //網絡過濾,過濾整個網段
src net 192.168
dst net 192

使用“非/且/或”建立組合過濾條件可以獲得更精確的捕獲

非: ! or “not” (去掉雙引號)
且: && or “and”
或: || or “or”

wirershark過濾指定ip收發數據包示例:

抓取所有目的地址是192.168.0.2 或192.168.0.3 端口是80 的TCP 數據

(tcp port 80) and ((dst host 192.168.0.2) or (dst host
192.168.0.3)) //捕獲過濾

tcp.port==80&&(ip.dst==192.168.0.2||ip.dst==192.168.0.3) //顯示過濾

抓取所有目標MAC 地址是80:05:09:03:E4:35 的ICMP 數據

(icmp) and ((ether dst host 80:05:09:03:E4:35))

icmp && eth.dst==80:05:09:03:E4:35

抓取所有目的網絡是192.168,但目的主機不是192.168.0.2 的TCP 數據

(tcp) and ((dst net 192.168) and (not dst host 192.168.0.2))

tcp&&ip.src==192.168.0.0/16&&!(ip.src==192.168.0.2)

捕獲主機192.168.0.1 和主機192.168.0.2 或192.168.0.3的通信

host 192.168.0.1 and (192.168.0.2 or 192.168.0.3 )

ip.addr==192.168.0.1&&(ip.addr==192.168.0.2||ip.addr==192.168.0.3)

獲取主機192.168.0.1除了和主機192.168.0.2之外所有主機通信的數據包

host 192.168.0.1 and ! 192.168.0.2

ip.addr==192.168.0.1&&!ip.addr==192.168.0.2

獲取主機192.168.0.1接收或發出的telnet包,telnet使用tcp 23端口

tcp port 23 and host 192.168.0.1

tcp.port==23&&ip.addr==192.168.0.1

原文地址:http://www.magentonotes.com/


免責聲明!

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



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