Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
捕捉过滤器 (此过滤器不需要比较运算符,查询关键字请全部小写)
1. tcp dst port 3128 #显示目的TCP端口为3128的封包。
2. Ip src host10.1.1.1 #显示来源IP地址为10.1.1.1的封包。
3. Host 10.1.2.3 #显示目的或来源IP地址为10.1.2.3的封包。
4. Src portrange 2000-2500
#显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包。
5. Not imcp --同样于显示过滤器
显示除了icmp以外的所有封包。(icmp通常被ping工具使用)
6. src host 10.7.2.12 and not dst net10.200.0.0/16
显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。
(src host 10.4.1.12 or src net10.6.0.0/16) and tcp dst portrange200-10000 and dst net10.0.0.0/8
显示来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。
--------------------------------------------------
filter:dns||icmp||tcp #显示dns,icmp,tcp数据包
---------ip过滤------------
ip.dst==192.168.1.1||ip.src==192.168.1.2 #目的地址,源地址
ip.addr==192.168.1.1 #显示源或目的为192.168.1.1的包
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
#。显示来源不为10.1.2.3或者目的不为10.4.5.6的封包
----------端口过滤-------------
tcp.port==80 #过滤80
tcp.dstport==80 #过滤目的80
tcp.srcport==80 #过滤源80
---------http模式过滤---------
http.request.method=="GET" #过滤get包
http.request.method=="POST" #过滤post包
tcp.port>=1 and tcp.port<=80 #过滤端口范围
!icmp #显示icmp之外的其他包
---------------------------
Logical expressions(逻辑运算符):
英文写法: C语言写法: 含义:
and && 逻辑与
or || 逻辑或
xor ^^ 逻辑异或
not ! 逻辑非
-----------------------------------------
6种比较运算符:
英文写法: C语言写法: 含义:
eq == 等于
ne != 不等于
gt > 大于
lt < 小于
ge >= 大于等于
le <= 小于等于
------------------------------------------------
各行信息分别为:
Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version 4: 互联网层IP包头部信息
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
---------------------------------------------------------
http.request.uri matches “.gif$” 匹配过滤HTTP的请求URI中含有”.gif”字符串,并且以.gif结尾(4个字节)的http请求数据包($是正则表达式中的结尾表示符)
注意区别:http.request.uri contains “.gif$” 与此不同,contains是包含字符串”.gif$”(5个字节)。匹配过滤HTTP的请求URI中含有”.gif$”字符串的http请求数据包(这里$是字符,不是结尾符)
eth.addr[0:3]==00:1e:4f 搜索过滤MAC地址前3个字节是0x001e4f的数据包。
-------------------------------------------------------
一、IP过滤:包括来源IP或者目标IP等于某个IP比如:ip.src eq 192.168.10.130 or ip.src addr eq 192.168.0.208 显示来源IP ip.dst addr==192.168.0.208 or ip.dst addr eq 192.168.0.208 显示目标IP
二、端口过滤:比如:tcp.port eq 80 // 不管端口是来源的还是目标的都显示 tcp.port == 80 tcp.port eq 2722 tcp.port eq 80 or udp.port eq 80 tcp.dstport == 80 // 只显tcp
协议的目标端口80 tcp.srcport == 80 // 只显tcp协议的来源端口80过滤端口范围tcp.port >= 1 and tcp.port <= 80
三、协议过滤:tcpudparpicmphttpsmtpftpdnsmsnmsipssl等等排除ssl包,如!ssl 或者 not ssl
四、包长度过滤:比如:udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身ip.len == 94 除了以太网头固定长度14,其它都算
是ip.len,即从ip本身到最后frame.len == 119 整个数据包长度,从eth开始到最后
五、http模式过滤:例子:http.request.method == “GET”http.request.method == “POST”http.request.uri == “/img/logo-edu.gif”http contains “GET”http contains “HTTP/1.”// GET包
http.request.method == “GET” && http contains “Host: ”http.request.method == “GET” && http contains “User-Agent: ”// POST包http.request.method == “POST” && http contains “Host:
”http.request.method == “POST” && http contains “User-Agent: ”// 响应包http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”http contains “HTTP/1.0 200 OK” && http
contains “Content-Type: ”一定包含如下Content-Type:
六、连接符 and / or
七、表达式:!(arp.src==192.168.1.1) and !(arp.dst.proto_ipv4==192.168.1.243)