Ethereal用法--

来源:百度文库 编辑:神马文学网 时间:2024/07/08 13:23:41
Ethereal用法
[ 2009-12-24 16:25:00 | By: 紫yu ]
如同Tcpdump一样Ethereal,支持非常丰富的过滤器。
过滤器分为两类,一类是抓包过滤器(capture filter),当网络流量很大时,可以非常有效地过滤噪音数据;另外一类是显示过滤器(display filter), 可以从你抓到的所有数据包中过滤噪音数据。事实上,由于好的过滤器需要非常好的网络知识,所以除非非常需要,一半可以不作过滤;
顺便说一句,ethereal的capture filter和display filter语法不相同,capture filter的语法可以参照tcpdump的语法。
事实上,Ethereal本身并不能抓包,它只能用来解析数据包;要抓取数据包,它需要借助于PCap。Pcap在windows下面的实现称作Winpcap.在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.常见关键词
ip
eth
udp
tcp
http
举例:
.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 filter的host
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的前四位
[-4:4] == 0.1.2.3    起点为负表示终点-4 长度4位,就是末四位啦,怎么样够灵活吧~
5.逻辑操作
and, &&   Logical AND
or,  ||   Logical OR
not, !    Logical NOT
6.位操作
bitwise_and, &      Bitwise AND
举例:
tcp.flags & 0x02           过滤所有的TCP SYN包
更多的关于filter的解释还是看帮助吧:ethereal-filter.html
至于Capture的Filter我就不多说啦,可以到linux下面去man tcpdump
需要说明的是,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中。抓取介绍后,Ctl+C,你可以看到a.dmp已经生成。然后用sftp传到本机使用Ethereal解析。
过滤规则:
一、IP过滤:ip.addr==192.168.100.25 或者 !(192.168.100.25)
IP过滤有ip.src="/=192.168.100.25",表示源地址为192.168.100.25
ip.dst==192.168.100.25,表示目标地址为192.168.100.25
二、端口过滤:tcp.port==80
三、协议过滤:arp
四、包长度过滤:udp.length=30
五、连接符 and / or
六、表达式:!(arp.src="/=192.168.1.1") and !(arp.dst.proto_ipv4==192
.168.1.243)