Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1264407
  • 博文数量: 404
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5382
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 16:29
文章存档

2010年(40)

2009年(140)

2008年(224)

我的朋友

分类: LINUX

2008-10-06 17:33:28

   

这是网上热心人写的教程,我实践了一下,很简单,不过基本的工作是够用了,我暂且整理整理。

完全可以按照步骤进行基本的抓包。

 

1.    使用前参数设定——capture 选项设置

 

Interface:  指定在哪个接口(网卡)上抓包。一般情况下都是单网卡,使用缺省。

Limit each packet:  限制每个包的大小,缺省情况不限制

Capture packets in promiscuous mode:是否打开混杂模式。如果打开,抓取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。

Filter 过滤器。只抓取满足过滤规则的包(暂时略过,在主界面上进行,比较方便)

File 如果需要将抓到的包写到文件中,在这里输入文件名称。

use ring buffer 是否使用循环缓冲。缺省情况下不使用,即一直抓包。注意,循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷

 

其他的项选择缺省的就可以了

 

2. 使用抓包

 

2.1直接使用

      启动ethreal以后,选择菜单Capature->Start,开始抓包,按stop结束抓包。抓的包就会显示在面板中,并且已经分析好了。

 

      注意:该方法十分简单,但是却没有进行过滤,抓的包过多,对分析问题不太方便。

 

2.2过滤器抓包

 

2.2.1  基本结构是:

[not] primitive [and|or [not] primitive ...]

 

在抓包完成以后,显示过滤器可以用来找到你感兴趣的包,可以根据

1)协议

2)是否存在某个域        

3)域值

4)域值之间的比较

来查找你感兴趣的包。

 

举个例子,如果你只想查看使用tcp协议的包,在ethereal窗口的左下角的Filter中输入tcp,然后回车,ethereal就会只显示tcp协议的包。如下图所示

值比较表达式

 

2.2.2  过滤器操作符

可以使用下面的操作符来构造显示过滤器

 

自然语言 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

 

例如:

 

我想抓取IP地址是192.168.2.10的主机,它所接收收或发送的所有的HTTP报文,那么合适的显示Filter(过滤器)就是

 

请记住一个诀窍:只好在Filter的背景是绿色,就证明你设定的Filter是合乎规定的,但是当背景是红色时,就说明你设定的FilterEthereal不允许的,是不对的。如

 

 

所有的过滤器(Filter)都可以在Filter旁边的Expression…中选取。

 

3.  升级抓包软件——在ethereal使用协议插件

 

ethereal能够支持许多协议,但有些协议需要安装插件以后才能解,比如H.323

 

H.323协议为例,首先下载etherealH.323插件,下载地址

下载完了以后将文件(h323.dll)解压到ethereal安装目录的plugin\0.9.x目录下面,比如我的是0.9.11

然后,需要进行一下设置

1)启动ethereal

2)菜单Edit->Preference

3)单击Protocols前面的"+"号,展开Protocols

4)找到Q931,并单击

5)确保"Desegment....   TCP segments"是选中的(即方框被按下去)

6)单击TCP

7)确保"Allow....TCP streams"是选中的

8)确保没有选中"Check....TCP checksum""Use....sequence numbers"

9)单击TPKT

10)确保"Desegment....TCP segments"是选中的

11)点击Save,然后点击Apply,然后点击OK

 

你也完全可以不断地重新安装新版本winpcapethreal,这样就可以不需在旧的ethreal的版本中安装新的插件来支持新的协议插件。这也是懒人的一种做法J

 

    后续有时间再根据工作用到添加,整理手头的另外几份抓包资料。


 

 

阅读(1044) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~