wireshark在分析网络协议的过程中,分为捕获过滤和显示过滤两种操作,下面简单介绍下常用的捕获和过滤规则。
wireshark常用捕获过滤规则
捕获单个ip地址的数据
- host 10.3.1.1 : 捕获到达/来自 10.3.1.1 主机的数据
- 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 host 10.3.1.2 : 捕获到达/发送给 10.3.1.1 主机上的数据和到达/发送给 10.3.1.2 主机上的数据
捕获指定端口号的数据
- 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数据
- src port 70 : 捕获来自端口号为70的TCP/UDP数据
- dst port 70:捕获发送给端口号为70 的tcp/udp数据
结合ip和端口进行捕获
- host 10.3.1.1 and port 80 : 捕获到达/来自端口号为80并且是到达/来自10.3.1.1主机的UDP/TCP数据。
- host 10.3.1.1 and not port 80 : 捕获到达/来自10.3.1.1主机的并且端口号不是80的数据。
提示:尽量不要使用捕获过滤器,因为不当的捕获过滤规则可能会丢失数据,可以捕获所有数据,然后使用显示过滤过滤需要显示的数据。
wireshark常用显示过滤规则
根据协议进行过滤
- arp:显示所有arp信息。
- ip:显示所有IPv4流量。
- ipv6:显示所有IPv6流量。
- tcp:显示所有tcp流量数据。
根据应用进行过滤
- bootp:显示所有DHCP流量
- dns:显示所有DNS流量
- tftp:显示所有TFTP(简单文件传输协议)流量
- http:显示所有HTTP命令、响应和数据传输包,但是不显示TCP握手包、TCP确认包和TCP断开连接包。
- icmp:显示所有ICMP流量。
根据字段进行过滤
http.host == "13.1.1.1" :显示发送/到达主句13.1.1.1的所有http请求。
http.request.method=="GET":显示get方式的http请求。
http.response.code==302 : 过滤http响应状态码为302的数据包
http.request.uri=="/online/setpoint":过滤请求的uri,取值是域名后的部分
http.request.full_uri=="http://task.browser.360.cn/online/setpoint" : 过滤含域名的整个url则需要使用http.request.full_uri
http.request.full_uri contains "xmcdn":过滤请求的url中包含指定字符串的
ip.dst==192.168.101.8:显示目的地址为192.168.101.8的包,
ip.src==192.168.101.8:显示192.168.101.8发出的包
其他
选择捕获接口:比如我们想捕获手机上某个app发送的数据,这时我们可以使用电脑开启wifi,然后手机连接,使用wireshark捕获wifi接口上传输的数据即可。
捕获/选项(Ctrl+K)即可看到接口列表。选择自己想要捕获的接口即可。如下图
快速确定字段名:在上面我介绍了部分根据字段过滤,不过没有介绍全部的字段,如果我们想确定某一个字段怎么做呢?如下图,当选中一个数据包,展开点击具体字段,下面会显示出字段名,下图中选中了http协议中的Source Post,界面最下面标题栏里面显示的字段为:tcp.srcport