常用的SNIFF

很少有原因会让你自己亲自动手来做一个自己的 SNIFF ,除非你是想了解他的原理,或者是其他一些特别的原因,比如你要在某个特殊的环境拦截一些特殊的数据包。下面我们就来看 看一些在网络上经常使用的 SNIFF
1 windows 环境下

  windows 环境下当然是大名鼎鼎的 netxray 以及 sniffer pro 了,实际上很多人都是用他在
windows
环境下抓包来分析,不过我想很少有人笨到去在别人的机器上安装一个图形界面的 SNIFF ,除非他和管理员很熟悉 ........ netxray 的使用就不多说了,反正 windows 下的东西就是 click click click ,非常的方便用户。

2 UNUX 环境下

  UNUX 环境下的 sniff 可以说是百花齐放,一抓就是一大把 , sniffit snoop,tcpdump,dsniff
等都是比较常见的,他们都有一个好处就是发布源代码,可以让你研究,当然也都是免费的:
1. sniffit
    sniffit
可以运行在 Solaris SGI Linux 等平台上,由 Lawrence Berkeley Laboratory 实验室开发的一个免费的网络监听软件。最近 Sniffit 0.3.7 也推出了 NT 版本,并也支持 WINDOWS2000.
使用方法 :
-v
显示版本信息
-a
ASCII 形式将监听的结果输出。
-A
在进行记录时,所有不可打印的字符都用代替
-b
等同于同时使用参数 -t & -s 。    
-d
将监听所得内容以十六进制方式显示在当前终端 
-p
记录连接到的包, 0 为所有端口。缺省为 0   
-P protocol
选择要检查的协议,缺省为 TCP 。可能的选择有 IP TCP ICMP UDP 和他们的组合。
-s
指定 sniffer 检查从 发送的数据包。
-t 指定 sniffer 检查发送到的数据包。
-i
进入交互模式   
-l
设定数据包大小, default 300 字节   
注:参数可以用 @ 来表示一个 IP 范围,比如 -t 192.168.@ -t -s 只适用于 TCP/UDP 数据包,对于 ICMP IP 也进行解释。但如果只选择了 -p 参数,则只用于 TCP UDP 包。
举例说明 :

#sniffit -a -p 21 -t xxx.xxx.xxx.xxx

监听流向机器 xxx.xxx.xxx.xxx 21 端口 (FTP) 的信息 , 并以 ASCII 显示

#sniffit -d -p 23 -b xxx.xxx.xxx.xxx

监听所有流出或流入机器 xxx.xxx.xxx.xxx 23 端口 (telnet) 的信息,并以 16 进制显示

你可以在这里找到 sniffit [url]http://reptile.rug.ac.be/~coder/sniffit/sniffit.html[/url]

2. snoop
    snoop
默认情况安装在 Solaris 下,是一个用于显示网络交通的程序,不过 SNIFF 是把双刃剑,既然管理员能用他来监视自己的网络,当然一个心怀恶意的入侵者也可以用他来 SNIFF 自己感兴趣的内容。值得一提的是, SNOOP 被发现存在一个缓冲区溢出漏洞,当以导致入侵者以运行 snoop( 通常为 root) 的身份远程进入系统。这是题外话,暂且就此打住。
使用方法:
[ -a ] # Listen to packets on audio
[ -d device ] # settable to le?, ie?, bf?, tr?
[ -s snaplen ] # Truncate packets
[ -c count ] # Quit after count packets
[ -P ] # Turn OFF promiscuous mode
[ -D ] # Report dropped packets
[ -S ] # Report packet size
[ -i file ] # Read previously captured packets
[ -o file ] # Capture packets in file
[ -n file ] # Load addr-to-name table from file
[ -N ] # Create addr-to-name table
[ -t r
  a   d ] # Time: Relative, Absolute or Delta
[ -v ] # Verbose packet display
[ -V ] # Show all summary lines
[ -p first[,last] ] # Select packet(s) to display
[ -x offset[,length] ] # Hex dump from offset for length
[ -C ] # Print packet filter code

例如:

#snoop -o saved A B

监听机器 A B 的谈话,并把内容存储于文件 saved

3. tcpdump

  tcpdmp 也算是一个很有名气的网络监听软件, FREEBSD 还把他附带在了系统上,是一个被很多 UNIX 高手认为是一个专业的网络管理工具。
使用方法 :
tcpdump
采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ][ -c
数量 ][ -F 文件名 ][ -i 网络接口 ][ -r 文件名 ]
[ -s snaplen ][ -T
类型 ][ -w 文件名 ][ 表达式 ]
1. tcpdump
的选项介绍
-a
   将网络地址和广播地址转变成名字;
-d
   将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd
   将匹配信息包的代码以 c 语言程序段的格式给出;
-ddd
  将匹配信息包的代码以十进制的形式给出;
-e
   在输出行打印出数据链路层的头部信息;
-f
   将外部的 Internet 地址以数字的形式打印出来;
-l
   使标准输出变为缓冲行形式;
-n
   不把网络地址转换成名字;
-t
   在输出的每一行不打印时间戳;
-v
   输出一个稍微详细的信息,例如在 ip 包中可以包括 ttl 和服务类型的信息;
-vv
   输出详细的报文信息;
-c
   在收到指定的包的数目后, tcpdump 就会停止;
-F
   从指定的文件中读取表达式 , 忽略其它的表达式;
-i
   指定监听的网络接口;
-r
   从指定的文件中读取包 ( 这些包一般通过 -w 选项产生 )
-w
   直接将包写入文件中,并不分析和打印出来;
-T
   将监听到的包直接解释为指定的类型的报文,常见的类型有 rpc snmp

2. tcpdump
的表达式介绍
  
表达式是一个正则表达式, tcpdump 利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。
  
在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括 host net
port,
例如 host 210.27.48.2 ,指明 210.27.48.2 是一台主机, net 202.0.0.0 指明 202.0.0.0
是一个网络地址, port 23 指明端口号是 23 。如果没有指定类型,缺省的类型是 host.   

  第二种是确定传输方向的关键字,主要包括 src , dst ,dst or src, dst and src , 这些关
键字指明了传输的方向。举例说明, src 210.27.48.2 , 指明 ip 包中源地址是 210.27.48.2 ,
dst net 202.0.0.0
指明目的网络地址是 202.0.0.0 。如果没有指明方向关键字,则缺省是
src or dst
关键字。    
   
第三种是协议的关键字,主要包括 fddi,ip ,arp,rarp,tcp,udp 等类型。 Fddi 指明是在
FDDI(
分布式光纤数据接口网络 ) 上的特定的网络协议,实际上它是 "ether" 的别名, fddi ether 具有类似的源地址和目的地址,所以可以将 fddi 协议包当作 ether 的包进行处理和分析。其他的
几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则 tcpdump 将会监听所有协议的信息包。   
   
除了这三种类型的关键字之外,其他重要的关键字如下:
gateway, broadcast,less,greater,
还有三种 逻辑运算,取非运算是 'not ' '! ', 与运算
'and','&&'; 或运算 'or' ,'    '
举例使用 :

#tcpdump host AAA.BBB.CCC.DDD

将监听 IP 地址为 AAA.BBB.CCC.DDD 的机器的通话

#tcpdump tcp port 23 host AAA.BBB.CCC.DDD

将监听 IP 地址为 AAA.BBB.CCC.DDD 的机器的 23 端口的通话

4. dsniff

    之所以要谈谈 dsniff ,是因为他不仅仅是一个 sniff ,在他的整个套件包中,包含了很多
其它有用的工具,如 arpspoof dnsspoof macof tcpkill 等等, SNIFF 的手段更加的多样和
复杂化。 dsniff 是由 DugSong 开发的你可以在他的主页上找到这个工具。 目前 dsniff 支持
OpenBSD (i386), Redhat Linux (i386),
Solaris (sparc). 并且在 FreeBSD, Debian Linux,
Slackware Linux, AIX,
HP-UX 上也能运转得很好。但是 dsniff 需要几个其他的第三方软件进行支持,他们分别是, Berkeley DB OpenSSL libpcap libnet libnids 。如果条件允许的话,你最好能够亲自读一读 dsniff 的源代码,你可以在    [url]http://naughty.monkey.org/~dugsong/[/url] 找到 dsniff

你可能感兴趣的:(职场,黑客,休闲)