Ethereal是当前较为流行的一种计算机网络调试和数据包嗅探软件。Ethereal是免费的网络协议检测程序,支持Unix,Windows。让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等.
Ethereal网络分析系统也需要一个底层的抓包平台,在Linux中是采用Libpcap函数库抓包,在windows系统中采用winpcap函数库抓包。
Ethereal 基本类似于tcpdump,但Ethereal 还具有设计完美的 GUI 和众多分类信息及过滤选项。用户通过 Ethereal,同时将网卡插入混合模式,可以查看到网络中发送的所有通信流量。 Ethereal 应用于故障修复、分析、软件和协议开发以及教育领域。它具有用户对协议分析器所期望的所有标准特征,并具有其它同类产品所不具备的有关特征。
Ethereal 主要特征:
在实时时间内,从网络连接处捕获数据,或者从被捕获文件处读取数据;
Ethereal 可以读取从 tcpdump(libpcap)、网络通用嗅探器(被压缩和未被压缩)、SnifferTM 专业版、NetXrayTM、Sun snoop 和 atmsnoop、Shomiti/Finisar 测试员、AIX 的 iptrace、Microsoft 的网络监控器、Novell 的 LANalyzer、RADCOM 的 WAN/LAN 分析器、 ISDN4BSD 项目的 HP-UX nettl 和 i4btrace、Cisco 安全 IDS iplog 和 pppd 日志( pppdump 格式)、WildPacket 的 EtherPeek/TokenPeek/AiroPeek 或者可视网络的可视 UpTime 处捕获的文件。此外 Ethereal 也能从 Lucent/Ascend WAN 路由器和 Toshiba ISDN 路由器中读取跟踪报告,还能从 VMS 的 TCPIP 读取输出文本和 DBS Etherwatch。
从以太网、FDDI、PPP、令牌环、IEEE 802.11、ATM 上的 IP 和回路接口(至少是某些系统,不是所有系统都支持这些类型)上读取实时数据。
通过 GUI 或 TTY 模式 tethereal 程序,可以访问被捕获的网络数据。
通过 editcap 程序的命令行交换机,有计划地编辑或修改被捕获文件。
当前602协议可被分割。
输出文件可以被保存或打印为纯文本或 PostScript格式。
通过显示过滤器精确显示数据。
显示过滤器也可以选择性地用于高亮区和颜色包摘要信息。
所有或部分被捕获的网络跟踪报告都会保存到磁盘中。
Ethereal 的使用方法:
安装
1)安装winpcap
2)安装Ethereal
使用
windows 程序,使用很简单。
启动ethereal 以后,选择菜单Capture->Start ,就OK 了。当你不想抓的时候,按一下stop, 抓的包就会显示在面板中,并且已经分析好了。
Ethereal使用-capture选项
interface: 指定在哪个接口(网卡)上抓包。一般情况下都是单网卡,所以使用缺省的就可以了
Limit each packet: 限制每个包的大小,缺省情况不限制
Capture packets in promiscuous mode: 是否打开混杂模式。如果打开,抓取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。
Filter:过滤器。只抓取满足过滤规则的包(可暂时略过)
File:如果需要将抓到的包写到文件中,在这里输入文件名称。
use ring buffer: 是否使用循环缓冲。缺省情况下不使用,即一直抓包。注意,循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷
其他的项选择缺省的就可以了
Ethereal的抓包过滤器:
抓包过滤器用来抓取感兴趣的包,用在抓包过程中。 抓包过滤器使用的是libcap 过滤器语言,在tcpdump 的手册中有详细的解释,基本结构是: [not] primitive [and|or [not] primitive ...]
个人观点,如果你想抓取某些特定的数据包时,可以有以下两种方法,你可以任选一种, 个人比较偏好第二种方式:
1、在抓包的时候,就先定义好抓包过滤器,这样结果就是只抓到你设定好的那些类型的数 据包;
2、先不管三七二十一,把本机收到或者发出的包一股脑的抓下来,然后使用下节介绍的显 示过滤器,只让Ethereal 显示那些你想要的那些类型的数据包;
etheral的显示过滤器(重点内容)
在抓包完成以后,显示过滤器可以用来找到你感兴趣的包,可以根据1)协议2)是否存在某个域3)域值4)域值之间的比较来查找你感兴趣的包。
举个例子,如果你只想查看使用tcp 协议的包,在ethereal 窗口的左下角的Filter 中输入tcp, 然后回车,Ethereal 就会只显示tcp 协议的包。
值比较表达式可以使用下面的操作符来构造显示过滤器自然语言类c 表示举例eq == ip.addr==10.1.10.20 ne != ip.addr!=10.1.10.20 gt > frame.pkt_len>10 lt < frame.pkt_len<10 ge >= frame.pkt_len>=10 le <= frame.pkt_len<=10
表达式组合可以使用下面的逻辑操作符将表达式组合起来自然语言类c 表示举例and && 逻辑与,比如ip.addr=10.1.10.20&&tcp.flag.fin or || 逻辑或,比如ip.addr=10.1.10.20||ip.addr=10.1.10.21 xor ^^ 异或,如tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == not ! 逻辑非,如 !llc