ethereal filter使用经验谈

如同Tcpdump一样,Ethereal支持非常丰富的过滤器。过滤器分为两类,一类是抓包过滤器(capture filter),当网络流量很大时,可以非常有效地过滤噪音数据;另外一类是显示过滤器(display filter), 可以从你抓到的所有数据包中过滤噪音数据。事实上,由于好的过滤器需要非常好的网络知识,所以除非非常需要,一半可以不作过滤;我自己比较喜欢在抓取的时候不设过滤器,然后利用简单的display filter。建议初学者避免使用过滤器。顺便说一句,etherealcapture filterdisplay filter语法不相同,capture filter的语法可以参照tcpdump的语法。

 

事实上,Ethereal本身并不能抓包,它只能用来解析数据包;要抓取数据包,它需要借助于PCapPcapwindows下面的实现称作Winpcap,现在最高的稳定版本是3.0。在Linux下面,Pcap一般都已经被默认安装;

 

常用的Capture Filter

 

常用的Display Filter

1. 操作符:

    eq, ==    Equal

    ne, !=    Not Equal

    gt, >     Greater Than

    lt, <     Less Than

    ge, >=    Greater than or Equal to

le, <=    Less than or Equal to

举例:

    Udp.port == 10002

sip.Method == INVITE

2. 搜索操作

    contains     协议,包,包含指定内容

matches      Perl标准表达式

举例:

    sip contains INVITE 这个将列出所有SIP包中含有INVITE字符的包;

wsp.user_agent matches "(?i)cldc" 查找wsp.user_agent中含有cldc字符的包,并且不区分大小写。(?option)这个表达式是PERL表达式,不是所有的ethereal版本都支持的,使用前检查自己的版本是否包含“with the PCRE library”;

3.常见关键词

frame

ip

eth

udp

tcp

http

举例:

frame .pkt_len > 100 包的数据长度大于100的包

ip.src == 192.168.214.12 源地址是192.168.214.12

ip.dst == www.yahoo.com 目标地址是www.yahoo.com的包

ip.addr == 129.111.0.0/16 地址范围在129.111.*.*子网的包,类似于capture filterhost

http.request.method == "HEAD" HTTP包中查找request命令含HEAD的包

http.request.method == "/x48EAD" 和上面的一样,只是使用/x48来表示‘H

4. 数组操作

  [i:j]    i = 起点, j = 长度

  [i-j]    i = 起点, j = 末点, 包含.

  [i]      i = 起点, 长度1

  [:j]     起点等于 0, 长度= j

  [i:]     起点 = i, 至最后

还是直接举例吧:

eth.src[0:3] == 00:00:83  以太网地址的前3

http.content_type[0:4] == "text"   content_type的前四位

frame[-4:4] == 
   
   
    
    0.1.2
   
   .3    起点为负表示终点-4 长度4位,就是末四位啦,怎么样够灵活吧~

5.逻辑操作

     and, &&   Logical AND

    or,  ||   Logical OR

not, !    Logical NOT

这个我就不多举例啦,应该都理解的J

6.位操作

bitwise_and, &      Bitwise AND

举例:

tcp.flags & 0x02           过滤所有的TCP SYN

 

更多的关于filter的解释还是看帮助吧:ethereal-filter.html

至于CaptureFilter我就不多说啦,可以到linux下面去man tcpdumpJ

 

需要说明的是,Ethereal是基于图形界面的,所以如果你是通过SSH或者Telnet使用Unix工作站,你可能会感觉麻烦。而如果你打算使用Tcpdump,只要你打开一下tcpdump的手册页,你肯定就会望而却步了;更糟糕的是,Tcpdump的手册页只是提供了最基本的帮助。我常用的一个方法是,在远程终端运行tcpdump,加以最少的参数。比如: tcpdump -i eth0 -s 1500 -w a.dmp 这个语句机会可以在任何情况下使用。简单解释一下,-i eth0是在eth0接口上监听, -s 1500是一个很重要的参数,它指抓取的数据包的前1500个字节,否则你可能只能看到数据包的前68个字节,因为tcpdump的默认抓取长度是68 w a.dmp是表示把抓取的数据写入a.dmp中。抓取介绍后,CtlC,你可以看到a.dmp已经生成。然后用sftp传到本机使用Ethereal解析。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值