2023年7月3日发(作者:)
wireshark过滤语法总结做应⽤识别这⼀块经常要对应⽤产⽣的数据流量进⾏分析。抓包采⽤wireshark,提取特征时,要对session进⾏过滤,找到关键的stream,这⾥总结了wireshark过滤的基本语法,供⾃⼰以后参考。(脑⼦记不住东西)wireshark进⾏过滤时,按照过滤的语法可分为协议过滤和内容过滤。对标准协议,既⽀持粗粒度的过滤如HTTP,也⽀持细粒度的、依据协议属性值进⾏的过滤如==53、=="GET"。对内容的过滤,既⽀持深度的字符串匹配过滤如http contains "Server",也⽀持特定偏移处值的匹配过滤如tcp[20:3] == 47:45:54。wireshark有两种过滤器:捕捉过滤器(CaptureFilters):⽤于决定将什么样的信息记录在捕捉结果中。显⽰过滤器(DisplayFilters):⽤于在捕捉结果中进⾏详细查找。捕捉过滤器在抓抱前进⾏设置,决定抓取怎样的数据;显⽰过滤器⽤于过滤抓包数据,⽅便stream的追踪和排查。捕捉过滤器仅⽀持协议过滤,显⽰过滤器既⽀持协议过滤也⽀持内容过滤。两种过滤器它们⽀持的过滤语法并不⼀样。捕捉过滤器--捕捉前依据协议的相关信息进⾏过滤设置语法:例⼦:ProtocoltcpDirectiondstHost(s)10.1.1.1Value80Logical OperationsandOther expressiontcp dst 10.2.2.2 3128⽰例:(host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8捕捉IP为10.4.1.12或者源IP位于⽹络10.6.0.0/16,⽬的IP的TCP端⼝号在200⾄10000之间,并且⽬的IP位于⽹络 10.0.0.0/8内的所有封包。字段详解:Protocol(协议):可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.如果没指明协议类型,则默认为捕捉所有⽀持的协议。注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其⽀持的协议。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)”不等价。显⽰过滤器--对捕捉到的数据包依据协议或包的内容进⾏过滤1.协议过滤语法语法:例⼦: 2Comparison operator ValueLogical OperationsOther expressionhttp method =="POST"ring1和string2是可选的。依据协议过滤时,可直接通过协议来进⾏过滤,也能依据协议的属性值进⾏过滤。按协议进⾏过滤:snmp || dns || icmp显⽰SNMP或DNS或ICMP封包。按协议的属性值进⾏过滤:
== != 10.1.2.3 or != == 10.230.0.0/16显⽰来⾃10.230⽹段的封包。 == 25显⽰来源或⽬的TCP端⼝号为25的封包。t == 25显⽰⽬的TCP端⼝号为25的封包。== "POST"显⽰post请求⽅式的http封包。 == ""显⽰请求的域名为的http封包。 == 0×02显⽰包含TCP SYN标志的封包。2.内容过滤语法2.1深度字符串匹配contains :Does the protocol, field or slice contain a value⽰例tcp contains "http"显⽰payload中包含"http"字符串的tcp封包。 contains "online"显⽰请求的uri包含"online"的http封包。2.2特定偏移处值的过滤tcp[20:3] == 47:45:54
/* 16进制形式,tcp头部⼀般是20字节,所以这个是对payload的前三个字节进⾏过滤 */[0:4] == "trac"过滤中函数的使⽤(upper、lower)upper(string-field) - converts a string field to uppercaselower(string-field) - converts a string field to lowercase⽰例
upper() contains "ONLINE"
wireshark过滤⽀持⽐较运算符、逻辑运算符,内容过滤时还能使⽤位运算。
如果过滤器的语法是正确的,表达式的背景呈绿⾊。如果呈红⾊,说明表达式有误。参考:wireshark的HELP-Manual Pages-Wireshark Filter
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688341302a123392.html
评论列表(0条)