抓包工具的运用


抓包工具Ethereal的基本使用
这是网上热心人写的教程,我实践了一下,很简单,不过基本的工作是够用了,我暂且整理整理。
完全可以按照步骤进行基本的抓包。

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 
ge  >=   frame.pkt_len>=10
le 

表达式组合
可以使用下面的逻辑操作符将表达式组合起来
自然语言 类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是合乎规定的,但是当背景是红色时,就说明你设定的filter是ethereal不允许的,是不对的。如


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

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

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

以h.323协议为例,首先下载ethereal的h.323插件,下载地址
http://www.voice2sniff.org/
下载完了以后将文件(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

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

   后续有时间再根据工作用到添加,整理手头的另外几份抓包资料。
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17808856.html

网络抓包工具Ethereal

(2010-01-01 10:09:48)
标签:

杂谈

分类:测试实用技术

网络抓包工具Ethereal

Q:如何使用Ethereal进行抓包

1,先过滤后抓包:首先在Capture Options点击Capture Filter设置过滤规则。若要实时查看,请勾选Display Options的Update list of packets in real time,然后包。                       示例:输入host 192.168.1.5 and port 80,仅抓取IP为192.168.1.5,端口为80的包。

2,先抓包后过滤:抓包后,在Filter中输入表达式过滤。
示例:输入ip.src,ip.dst,tcp.srcport,tcp.dstport,tcp.ack,tcp.len,eth等,可与关系表达式配合使用。如ip.src==192.168.1.5 &&tcp.srcport==80,仅显示源IP为192.168.1.5,源端口为80的包。

Q:如何分析使用Ethereal抓到的包?

这里简单以TCP/IP为例(修改网摘),

一,数据链路层:

   1、Destination:目的MAC地址。(eth.src)

   2、Source:源MAC地址。(eth.dst)

   3、Type:以太网类型(IP0x0800,8表示为以太网)。(eth.type)

二,IP网络层:

   1、Version=4,表示IP协议的版本号为4.该部分占4个BIT位。(ip.version)

  2、Header Length=20 Bytes,表示IP包头的总长度为20个字节。该部分占4个BIT位,单位为4个字节,因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。

  3、Type of Service=00,表示服务类型为0.该部分用二个十六进制值来表示,共占8个BIT.

  8个BIT的含义是:

      000          前三位不用

         0         表示最小时延,如Telnet服务使用该位

          0        表示吞吐量,如FTP服务使用该位

           0        表示可靠性,如SNMP服务使用该位

            0        表示最小代价

             0       不用

  4、Total Length=48Bytes,表示该IP包的总长度为48个字节。该部分占16个BIT,单位为Byte.由此可见,一个IP数据包的最大长度为2的 16次方减1,即:65535个字节。因此,在以太网中能够传输的最大IP数据包为65535个字节。(ip.len)

  5、Identification=363,表示IP包识别号为363.该部分占16个BIT,以十进制数表示。(ip.id)

  6、Flags,表示片标志,占3个BIT.各位含义分别为:第一个“0”不用,第二个“0”为分片标志位,“1”表示分片,“0”表示不分版本。第三个0为是否最后一片标志位,0表示最后一片,1表示还有更多的片。(ip.flags)

  7、Fragment Offset=0,表示片偏移为0个Bytes.该部分占13个BIT.

  8、Time to Live=128Secongs/Hops,表示生存时间TTL值为128.该部分占8个BIT.(ip.ttl)

  9、Proctol=6(TCP),表示协议类型为TCP,协议代码是6.如果是UDP协议,则此处的协议代码应为17.如果是ICMP协议,则此处的协议代码应为1.该部分占8个BIT.(ip.proto)

  10、Header Checksun=4035(correct),表示IP包头校验和为4035,括号内的Correct表示此IP数据包是正确的,没有被非法修改过。该部分占16个BIT,用十六进制表示。(ip.checksum)

  11、Source Address=76.88.16.104,表示IP数据包源地址为:76.88.16.104.该部分占32个BIT.(ip.src)

  12、Destination Address=76.88.16.16,表示IP数据包目的地址为:76.88.16.16.该部分占32个BIT.(ip.dst)

  13、No Options,表示IP数据包中未使用选项部分。当需要记录路由时才使用该选项。

三,TCP传输层:

   1、Source Port=1038,表示发起连接的源端口为1038.该部分占16个BIT.通过此值,可以看出发起连接的计算机源端口号。(tcp.srcport)

  2、Destination Port=21(FTP-CTRL),表示要连接的目的端口为21.该部分占16个BIT.通过此值,可以看出要登录的目的端口号。21端口表示是FTP服务端口。(tcp.dstport)

  3、Initial Sequence Number=1791872318,表示初始连接的请求号,即SEQ值。该部分占32个BIT,值从1到2的32次方减1.(tcp.seq)

  4、Acknowledgment Number=1791872319,表示对方的应答号应为1791872319,即对方返回的ACK值。该部分占32个BIT,值从1到2的32次方减1.(tcp.ack)

  5、Data Offset=28 Bytes,表示数据偏移的大小。该部分占4个BIT.

  6、Reserved Bites:保留位,此处不用。该部分占6个BIT.

  7、Flags=02.该值用两个十六进制数来表示。该部分长度为6个BIT,6个标志位的含义分别是:(tcp.flags)

      0        URG,紧急数据标志,为1表示有紧急数据,应立即进行传递。

       0        ACK,确认标志位,为1表示此数据包为应答数据包

        0       PSH,PUSH标志位,为1表示此数据包应立即进行传递。

         0       RST:复位标志位。如果收到不属于本机的数据包,则返回一个RST

          0      SYN:连接请求标志位。为1表示为发起连接的请求数据包。

           0      FIN:结束连接请求标志位。为1表示是结束连接的请求数据包。

  8、Window=64240,表示窗口是64240.该部分占16个BIT.

  9、CheckSum=92D7(Correct),表示校验和是92D7.该部分占16个BIT,用十六进制表示。(tcp.checksum)

  10、Urgent Pointer=0,表示紧急指针为0.该部分占16个BIT.

  11、Maximum Segment Size=1460,表示最大段大小为1460个字节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值