Wireshark本地回环网络抓包
简介
Wireshark是windows下的抓包工具。
本篇主要记录捕获表达式和过滤表达式,方便后面使用和参考。
Wireshark工具介绍可参考:https://www.cnblogs.com/doit8791/p/5730595.html
捕获过滤器
使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。
过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
过滤器有两种:
- 一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录
- 一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录
常用的捕获表达式
host 10.175.30.35 and tcp port 80 //捕捉目的或来源IP地址为10.175.30.35并且目的和来源TCP端口为80的封包
host 228.228.228.228 //捕捉目的或来源IP地址为228.228.228.228的封包
ip src host 10.175.30.35 //捕捉来源IP地址为10.175.30.35的封包
ip dst host 10.175.30.35 //捕捉目的IP地址为10.175.30.35的封包
tcp dst port 80 //捕捉目的TCP端口为80的封包
src portrange 2000-2500 //捕捉来源为UDP或TCP,并且端口号在2000至2500范围内的封包。
ether host e0-05-c5-44-b1-3c //捕捉目的或来源MAC地址为e0-05-c5-44-b1-3c的封包。如果你想抓本机与所有外网通讯的数据包时,可以将这里的mac地址换成路由的mac地址即可。
Protocol(协议)
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没有特别指明是什么协议,则默认使用所有支持的协议。
Direction(方向):
可能的值: src, dst, src and dst, src or dst
如果没有特别指明来源或目的地,则默认使用 “src or dst” 作为关键字。
例如,”host 10.2.2.2″与”src or dst host 10.2.2.2″是一样的。
Host(s):
可能的值: net, port, host, portrange.
如果没有指定此值,则默认使用”host”关键字。
例如,”src 10.1.1.1″与”src host 10.1.1.1″相同。
Logical Operations(逻辑运算):
可能的值:not, and, or.
否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
例如,
“not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″相同。
“not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不同。
显示过滤器
使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。通过设置显示过滤器,过滤掉
常用的过滤表达式
#长度过滤、可过滤ack包
ip.src == 192.168.86.11 && tcp.len > 0
#过滤16进制数据
ip.addr == 117.149.147.100 and tcp contains 28:28:28:F7:27:00
#ipv6
ipv6.addr == fe80::288b:5ff:feae:b18e || ipv6.addr == fe80::20c:29ff:fe99:6b57
协议过滤
tcp //显示tcp数据包
udp //显示udp数据包
snmp || dns || icmp //显示SNMP或DNS或ICMP封包
http、dns、icmp、snmp……
IP过滤
ip.addr == 10.1.1.1 //显示来源或目的IP地址为10.1.1.1的封包
ip.src == 192.168.1.102 //显示源地址为192.168.1.102
ip.dst == 192.168.1.102 //显示目的地址为192.168.1.102
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6 //显示来源不为10.1.2.3或者目的不为10.4.5.6的封包
端口过滤
tcp.port == 80 //显示来源或目的TCP端口号为80的封包
tcp.dstport == 80 //显示目的TCP端口号为80的封包
tcp.srcport == 80, //显示来源TCP端口号为80的封包
Http模式过滤
http.request.method=="GET" //只显示HTTP GET方法的数据包
包长度过滤
比如:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后
如果过滤器的语法是正确的,表达式的背景呈绿色。如果呈红色,说明表达式有误。
逻辑运算符为 AND/ OR
ip.src ==192.168.1.102 or ip.dst==192.168.1.102 //源地址或者目标地址是192.168.1.102
其他示例列举
过滤MAC地址/物理地址
该部分转自:https://blog.csdn.net/th_num/article/details/78753971
wireshark中根据MAC地址/物理地址过滤数据包,捕获过滤和显示过滤的语法如下:
wireshark捕获过滤中过滤MAC地址/物理地址
ether host 80:f6:2e:ce:3f:00
//过滤目标或源地址是80:f6:2e:ce:3f:00的数据包
ether dst host 80:f6:2e:ce:3f:00
//过滤目标地址是80:f6:2e:ce:3f:00的数据包
ether src host 80:f6:2e:ce:3f:00
//过滤源地址是80:f6:2e:ce:3f:00的数据包
wireshark显示过滤中过滤MAC地址/物理地址
eth.addr== 80:f6:2e:ce:3f:00
//过滤目标或源地址是80:f6:2e:ce:3f:00的数据包
eth.src== 80:f6:2e:ce:3f:00
//过滤源地址是80:f6:2e:ce:3f:00的数据包
eth.dst== 80:f6:2e:ce:3f:00
//过滤目标地址是80:f6:2e:ce:3f:00的数据包
其他记录
参考资料:
https://www.cnblogs.com/doit8791/p/5730595.html
https://blog.csdn.net/cumirror/article/details/7054496
https://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html