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的数据