0x00 前言
我们都知道,wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安装相应的rpcapd服务例程就可以实现在本地电脑执行wireshark 捕获远程电脑的流量了。但是各种协议的流量非常巨大,如果我们捕获所有协议的流量,那么数小时内,捕获到的流量将到达几百M,甚至几G。硬盘空间很快就被填满了。所以很有必要,只捕获特定的流量或者不捕获某些流量而捕获其他所有的流量。
此外,在我们捕获的流量中把自己需要的流量筛选出来,以便我们对其进行判断。其中的问题可能是网络故障诊断、协议性能诊断、HTTP诊断、后门蠕虫诊断、常见网络攻击诊断等。所以我们很有必要在捕获过滤器的基础上讨论一下,显示过滤器的常见用例。
0x01显示语法
语法:Protocol.String 1.String 2Comparison operator ValueLogical OperationsOther expression
例子:http.request.full_uri contains "png"
Protocol(协议)ether,fddi, ip,arp,rarp,decnet,lat, sca,moprc,mopdl, tcp , udp 等,如果没指明协议类型,则默认为捕捉所有支持的协议。
string1和string2是可选的,可在捕获流量时,在”应用显示过滤器“ 右侧的” 表达式“中打开” 显示过滤器表达式“中看到具体的参数
更具体的显示表达式可参考下面的方式:
(当进行到第三步“关系” 的时候,第四步 “值” 的右侧括号中会提示输入的数据类型。这点很重要!!)
Comparison operator,可选的字段如下:
== #等于 ip.src==10.0.0.5
!= #不等于. ip.src!=10.0.0.5
> #大于. frame.len > 10
< #小于. frame.len < 128
>= #大于或等于. frame.len ge 0x100
<= #小于或等于. frame.len <= 0x20
0x02 常见使用的显示过滤器表达式
1 http显示过滤
http.request.method == “GET” #通过GET方法请求数据
http.request.method == “POST” #通过POST方法请求数据
http.request.full_uri contains "png" #通过请求中包含” png "名字的url
http contains “GET” #通过请求中包含GET
http contains “HTTP/1.” #通过请求中包含“HTTP/1.”
1 GET包
http.request.method == “GET” && http contains “Host: ”
http.request.method == “GET” && http contains “User-Agent: ”
2 POST包
http.request.method == “POST” && http contains “Host: ”
http.request.method == “POST” && http contains “User-Agent: ”
3 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: ”
![](https://i-blog.csdnimg.cn/blog_migrate/c630ba585fb987a370f6215d304a7f6a.png)
2 端口过滤
2.3 常见的web应用端口
tcp.port=7001 #WebLogic,默认的端口号为7001
tcp.port=9080 #WebSphere应用程序,默认的端口号为9080
tcp.port=9090 #WebSphere管理工具,默认的端口号为9090
tcp.port=8080 #JBOSS,默认的端口号为8080
tcp.port-8080 #TOMCAT,默认的端口号为8080
#其他的服务,显示过滤器表达式如同上面
3 主机过滤
ip.addr == 10.202.188.188 # 仅显示10.202.188.188的流量
ip.src ==10.202.188.188 #仅显示目的为10.202.188.188的流量
ip.dst ==10.202.188.188 #仅显示来源为10.202.188.188的流量
ip.addr !=10.202.188.188 #显示除10.202.188.188外的流量
ip.add!=10.202.188.188 && sip #显示除10.202.188.188外的其他主机的sip协议
4 协议过滤
4.1 arp 协议流量
arp #显示接口中所有的arp协议
ip.addr =10.202.188.188 and arp #仅显示主机10.202.188.188的arp请求。
arp.src.proto_ipv4 #显示源协议为IPv4的地址请求。
更具体的显示表达式可参考下面的方式:
4.2 dns协议流量
dns #显示dns服务的流量,其他更具体的方式也类似4.1 中的操作
ip.addr !=10.202.188.188 #显示除10.202.188.188外的流量
4.3 smtp协议流量
smtp #显示smtp 服务的流量
4.4 sip协议
sip #显示sip协议。
此外,诸如stp、sdp、vlan等等网络协议都可以使用这种方式进行表达式显示筛选
0x04 10大实用显示过滤显示器
IP Address: ip.addr == x.x.x.x
MAC Address:eth.addr == xx:xx:xx:xx:xx:xx
ICMP!icmp
My MAC Address:eth.addr == xx:xx:xx:xx:xx:xx
DHCP:bootp
High Delta Time:frame.time_delta > 1
TCP Port:tcp.port == x
UDP Port:udp.port == x
TCP ACK RTT:tcp.analysis.ack_rtt > 1
TCP Length:> x < ytcp.len > x && tcp.len < yBonus
Not My MAC:!eth.addr == xx:xx:xx:xx:xx:xx
0x05参考资料
https://wiki.wireshark.org/
https://wiki.wireshark.org/DisplayFilters
https://wiki.wireshark.org/Security