轉自:http://bbs.chinaunix.net/viewthread.php?tid=691982&extra=&page=1
snoop 抓包
solaris自帶snoop抓包工具,抓所有數據流
# 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
www.163.com. Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R
www.163.com. Internet CNAME
www.cache.split.netease.com.
#
說明:internet cname 后的為解析
www.163.com的名字時,代表
www.163.com回答的主機的域名。
抓 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
www.google.com. Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R
www.google.com. Internet CNAME
www.l.google.com.
#
抓完存在當前目錄下的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的數據