绝想首页

ethereal使用方法(转载)

爱嘉人 [闲逸] 2013-04-06 10:01:46 星期六 晴天 查看:130 回复:0 发消息给作者




etherealcapture filterdisplay filter语法不相同,capture filter的语法可以参照tcpdump的语法。
Capture Filter
expression
用来 选择 要 转储 的 数据报. 如果 没有 指定 expression , 就 转储 网络的 全部 报文. 否则, 只转储 相对 expression 为 `true' 的 数据报.
expression 一个或多个 原语 (primitive) 组成. 原语 通常 由 一个 标识 (id, 名称或数字), 和 标识 前面的 一个或多个 修饰子(qualifier) 组成. 修饰子 有 三种 不同的类型:

type
类型修饰子 指出 标识名称 或 标识数字 代表 什么 类型的东西. 可以使用的 类型 有 host, net 和 port. 例如, `host foo', `net 128.3', `port 20'. 如果 不指定 类型修饰子, 就使用 缺省的 host .

dir
方向修饰子 指出 相对于 标识 的 传输方向 (数据是 传入还是传出 标识). 可以使用的 方向 有 src, dst, src or dst 和 src and dst. 例如, `src foo', `dst net 128.3', `src or dst port ftp-data'. 如果 不指定 方向修饰子, 就使用 缺省的 src or dst . 对于 `null' 链路层 (就是说 象 slip 之类的 点到点 协议), 用 inbound 和 outbound 修饰子 指定 所需的 传输方向.
proto
协议修饰子 要求 匹配 指定的协议. 可以使用的 协议 有: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp 和 udp. 例如, `ether src foo', `arp net 128.3', `tcp port 21'. 如果 不指定协议修饰子, 就使用 所有 符合 类型 的 协议. 例如, `src foo' 指 `(ip 或 arp 或 rarp) src foo' (注意后者不符合语法), `net bar' 指 `(ip 或 arp 或 rarp) net bar', `port 53' 指 `(tcp 或 udp) port 53'.
[`fddi' 实际上 是 `ether' 的 别名; 分析器 把 它们 视为 ``用在 指定 网络接口 上的 数据链路层.'' FDDI 报头 包含 类似于 以太协议的 源目地址, 而且 通常 包含 类似于 以太协议 的 报文类型, 因此 你 可以过滤 FDDI 域, 就象 分析 以太协议 一样. FDDI 报头 也 包含 其他 域, 但是你 不能 在 过滤器 表达式 里 显式描述.]


作为 上述 的 补充, 有一些 特殊的 `原语' 关键字, 它们 不同于 上面的模式: gateway, broadcast, less, greater 和 数学表达式. 这些 在 后面 有 叙述.

更复杂的 过滤器表达式 可以 通过 and, or 和 not 连接 原语 来 组建. 例如, `host foo and not port ftp and not port ftp-data'. 为了少敲点键, 可以忽略 相同的 修饰子. 例如, `tcp dst port ftp or ftp-data or domain' 实际上 就是 `tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain'.

Display Filter

1. 操作符:


    eq, ==    Equal


    ne, !=    Not Equal


    gt, >     Greater Than


    lt, =    Greater than or Equal to


le, 100 包的数据长度大于100的包


ip.src == 192.168.214.12 源地址是192.168.214.12


ip.dst == www.juexiang.com 目标地址是www.juexiang.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  以太网地址的前3http.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解析。


顶一下(33 写日记 1242508 234556
上一篇:成长了吗下一篇:六月六楼的十字军
分享排行

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备2023001011号-3   京公网安备11010802011908号

客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com