Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593707
  • 博文数量: 226
  • 博客积分: 10080
  • 博客等级: 上将
  • 技术积分: 1725
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-26 11:15
文章分类

全部博文(226)

文章存档

2011年(5)

2010年(64)

2009年(99)

2008年(37)

2007年(21)

我的朋友

分类:

2009-05-20 14:55:32

solaris自带snoop抓包工具,抓所有数据流
需要root权限
# snoop
Using device /dev/pcn0 (promiscuous mode)
192.168.8.18 -> 192.168.255.255 NBT NS Query Request for WORKGROUP[1c], Success
192.168.253.35 -> solaris      TELNET C port=1246
     solaris -> 192.168.253.35 TELNET R port=1246 Using device /dev/pc
     solaris -> 192.168.253.35 TELNET R port=1246 Using device /dev/pc
192.168.4.150 -> (broadcast)  ARP C Who is 192.168.4.200, 192.168.4.200 ?
192.168.4.200 -> (broadcast)  ARP C Who is 192.168.4.150, 192.168.4.150 ?
#

抓源地址或目的为 202.101.98.55的数据流:

# snoop 202.101.98.55
Using device /dev/pcn0 (promiscuous mode)
192.168.253.35 -> dns.fz.fj.cn DNS C Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R Internet CNAME

#

说明:internet cname 后的为解析的名字时,代表回答的主机的域名。

抓 192.168.253.35和202.101.98.55之间的数据流(双向都抓)

# snoop 192.168.253.35 202.101.98.55
Using device /dev/pcn0 (promiscuous mode)
192.168.253.35 -> dns.fz.fj.cn DNS C Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R Internet CNAME
#

抓完存在当前目录下的cap文件中并查看

# snoop -o cap1 -P      -P表示处在非混杂模式抓数据,只抓广播、主播、目的为本机的数据
Using device /dev/pcn0 (non promiscuous)
15 ^C                           15的含义是:显示目前抓了多少个数据流
#

# snoop -i cap1
  1   0.00000 192.168.253.35 -> solaris      TELNET C port=1246
  2   0.18198 192.168.253.35 -> solaris      TELNET C port=1246
  3   0.37232 192.168.4.199 -> 192.168.255.255 NBT Datagram Service Type=17 Source=WB-200[20]
  4   0.00016            ? -> (multicast)  ETHER Type=EF08 (Unknown), size = 180bytes
  5   0.62546 192.168.253.35 -> solaris      TELNET C port=1246
  6   0.13822            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
  7   0.06283 192.168.253.35 -> solaris      TELNET C port=1246
  8   0.90301 192.168.253.35 -> solaris      TELNET C port=1246
  9   0.19781 192.168.253.35 -> solaris      TELNET C port=1246
10   0.81493            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
11   0.07018 192.168.253.35 -> solaris      TELNET C port=1246
12   0.19939 192.168.253.35 -> solaris      TELNET C port=1246
13   0.90151 192.168.253.35 -> solaris      TELNET C port=1246
14   0.18904 192.168.253.35 -> solaris      TELNET C port=1246
15   0.68422            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
#snoop -i cap1 -p 10,12            只看10-12条记录

#snoop -i cap1 -p10                  只看第10条记录

# snoop -i cap1 -v -p101            查看第10条数据流的包头的详细内容

#snoop -i cap1 -v -x 0 -p101   查看第10条数据流的全部的详细内容

抓主机192.168.253.35和202.101.98.55之间的tcp或者udp端口53的数据

# snoop 192.168.253.35 and 202.101.98.55 and \(tcp or udp\) and port 53

输入(的时候要加转义符号\


snoop的详细参数
Snoop 是Solaris 系统中自带的工具, 是一个用于显示网络通讯的程序, 它可捕获IP 包并将其显示或保存到指定文件. (限超级用户使用snoop)
Snoop 可将捕获的包以一行的形式加以总结或用多行加以详细的描述(有调用不同的参数–v -V来实现). 在总结方式下(-V ) , 将仅显示最高层的相关协议, 例如一个NFS 包将仅显示NFS 信息, 其低层的RPC, UDP, IP, Ethernet 帧信息将不会显示, 但是当加上相应的参数(-v ), 这些信息都能被显示出来.

-C

-D

-N

-P 在非混杂模式下抓包

-S 抓包的时候显示数据包的大小

-V 半详细的显示抓的数据的信息

-t [ r | a | d ] 显示时间戳,-ta显示当前系统时间,精确到毫秒

-v 最详细的显示数据的信息

-x offset [ , length] 以16进制或ACSII方式显示某数据的部分内容,比如 -x 0,10 只显示0-10字节

#snoop -i cap1 -v -x 0 -p101 查看被抓获的第101个数据流的全部内容


表达式:

根据地址:

#snoop x.x.x.x         IPV4的IP

#snoop 0XX:XX:XX:XX    ETHERNET的MAC地址

数据的方向:

from x.x.x.x 或者 src x.x.x.x

to x.x.x.x 或者 dst x.x.x.x

可用的数据类型的关键词:

ip, ip6, arp, rarp, pppoed, pppoes,pppoe,broadcast,multicast,apple,decnet

udp, tcp, icmp, icmp6, ah, esp

greater length
      True if the packet is longer than length.

less length
      True if the packet is shorter than length.

net net

# snoop from net 192.168.1.0 抓来自192.168.1.0/24的数据

# snoop from net 192.168.0.0 抓来自192.168.0.0/16的数据

port xx XX为TCP或者UDP的端口号或者 /etc/services里定义的名字

#snoop to udp and port 53    抓到UDP53的数据
阅读(863) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~