六款最主流的免费网络嗅探软件全接触
ZDNET安全频道时间:2009-01-12作者:刘源 | 比特网
本文关键词:网络监听 嗅探
要如何才能找到网络传输的性能瓶颈?要如何才能快速定位已经失效了的网络设备?以及要如何才能迅速找到网络病毒传播或拒绝服务攻击的源头?一些专业的网络分析设备可以用来解决这些问题,但是它们的价格也是相当昂贵的,这对于一对成本控制比较敏感的中小企业和普通用户来说,是不能承受的。很幸运的是,网络嗅探器软件的出现,就为我们提供了一种即方便,又便宜的可视化和专业的网络分析解决方案。在本文中,我将给大家介绍六款主流的免费网络嗅探软件,希望给一些对此有兴趣的朋友提供一个选择参考。
1、WireShark
WireShark是一个开源免费的高性能网络协议分析软件,它的前身就是非常著名的网络分析软件Ethereal。你可以使用它来解决网络疑难问题,进行网络协议分析,以及作为软件或通信协议的开发参考,同时也可以用来作为学习各种网络协议的教学工具等等。WireShark支持现在已经出现了绝大多数的以太网网卡,以及主流的无线网卡。
WireShark具有如下所示的特点:
(1) 支持多种操作系统平台,可以运行于Windows、Linux、Mac OS X10.5.5、Solaris和FreeBSD等操作系统上;
(2) 支持超过上千种的网络协议,并且还会不断的增加对新协议的支持;
(3) 支持实时捕捉,然后可在离线状态下进行分析;
(4) 支持对VOIP数据包进行分析;
(5) 支持对通过IPsec、ISAKMP、Kerberos、SNMPv3、SSL/TLS、WEP和
WPA/WPA2等协议加密了的数据包解密;
(6) 可以实时获取来自以太网、IEEE 802.11、PPP/HDLC、ATM、蓝牙、令牌环和FDDI(光纤)等网络中的数据包;
(7) 支持读取和分析许多其它网络嗅探软件保存的文件格式,包括Tcpdump、Sniffer
pro、EtherPeek、Microsoft Network Monitor和CISCO Secure IDS 等软件;
(8) 支持以各种过滤条件进行捕捉,支持通过设置显示过滤来显示指定的内容,并能以不同的颜色来显示过滤后的报文;
(9) 具有网络报文数据统计功能;
(10) 可以将它捕捉到的数据导出为XML、PostScript、CSV及普通文本文件的格式。
运行WireShark所需的文件:
现在WireShark的最终版本是1.0.5,我们可以到/download/上下载它。如果WireShark要在Windows系统下运行时,还需要一个名为Winpcap的驱动库,现在它的稳定版本是WinPcap 4.0.2,最新的测试版本是WinPcap 4.1 beta3,我们可以从上下载。如果是在Linux系统下使用时,就应当使用Libpcap驱动库,它现在的版本是Libpcap1.0.0,我们可以从上下载。
WireShark在Windows和Linux系统下安装之前,首先你得保证系统上已经安装了Winpcap或Linpcap。下图1.1就是WireShark在Windows系统下运行时的主界面。
图1.1 WireShark在Windows系统下运行时的主界面
2、Tcpdump和Windump
Tcpdump是一个老牌的使用最频繁的网络协议分析软件之一,它是一个基于命令行的工具。Tcpdump通过使用基本的命令表达式,来过滤网络接口卡上要捕捉的流量。它支持现在已经出现了绝大多数的以太网适配器。
Tcpdump是一个工作在被动模式下的网络嗅探器。我们可以用它来在Linux系统下捕获网络中进出某台主机接口卡中的数据包,或者整个网络段中的数据包,然后对这些捕获到的网络协议(如TCP、ARP)数据包进行分析和输出,来发现网络中正在发生的各种状况。例如当出现网络连通性故障时,通过对TCP三次握手过程进行分析,可以得出问题出现在哪个步骤。而许多网络或安全专家,都喜欢用它来发现网络中是否存在ARP地址欺骗。我们也可以将它捕获到的数据包先写入到一个文件当中,然后用WireShark等有图形界面的嗅探器读取和分析。
它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名]
[ -s snaplen] [ -T 类型 ] [ -w 文件名 ] [表达式 ]
我们可以使用-i参数来指定要捕捉的网络接口卡,用-r来读取已经存在的捕捉文件,用-w来将捕捉到的数据写入到一个文件中。至于其它的参数,我们可以从它的man文档中得到详细的说明,或者通过输入“tcpdump –-help”来到它的帮助信息。
Tcpdum有一个非常重要的特点就是可以使用正则表达式来作为过滤网络报文的条件,这使得它的使用变得非常灵活。我们可以通过它内建的各种关键字来指定想要过滤的条件,一旦一个网络数据包满足表达式的条件,则这个数据包就会被捕获。如果我们没有给出任何条件,那么所有通过指定网络接口卡中的网络报文都会被捕获。
Tcpdump使用以下三种类型的关键字:
(1)、用于表式类型的关键字,主要有Host、Net和Port。它们分别用来指定主机的IP地址、指定网络地址和指定端口。如果你没有指定关键字,它就会使用缺省的Host类型。
(2)、用于表式传输方向的关键字,主要有Src、Dst。分别用来指定要捕捉的源IP地址是什么或目的IP地址是什么的包。
(3)、用来表式捕捉什么协议的关键字,主要有ip,arp,tcp,udp等。
这些关键字之间可以使用逻辑运算关键字来连接,以便于我们指定某个范围或排除某个主机等。这些逻辑运算关键字也有三个,分别是取非运算“not”,或者可以用“!”符号表示;与运算“and”,可以用“&&” 符号表示;或运算“or”,可以用“||”符号表示。
Tcpdump的关键字还有很多,我就不在此全部列出。其它的可以通过它的帮助文档来得到它们的详细说明。
运行Tcpdump需要的文件:
Tcpdump可以很好地运行在UNIX、Linux和Mac OSX操作系统上,它现在的最新版本是TCPDUMP 4.0.0,我们可以从上下载它的二进制包。同时,要运行它,也需要系统中安装有Libpcap1.0.0这个驱动库。
Tcpdump在Windows系统下的版本就是Windump,它也是一个免费的基于命令行方式的网络分析软件。当然,我们在使用Windump之前,同样要确保系统中已经安装有WinPcap 4.0.2驱动库。下图2.1就是Tcpdump在Linux系统控制台下运行时的界面。
图2.1Tcpdump在Linux控制台中运行时的界面
3、 DSniff
DSniff是一个非常强大的网络嗅探软件套件,它是最先将传统的被动嗅探方式向主动方式改进的网络嗅探软件之一。DSniff软件套件中包含了许多具有特殊功能的网络嗅探软件,这些特殊的网络嗅探软件可以使用一系列的主动攻击方法,将网络流量重新定向到网络嗅探器主机,使得网络嗅探器有机会捕获到网络中某台主机或整个网络的流量。这样一来,我们就可以将DSniff在交换或路由的网络环境中,以及Cable modem拔号上网的环境中使用。甚至,当安装有DSniff的网络嗅探器不直接连接到目标网络当中,它依然可以通过运程的方式捕获到目标网络中的网络报文。DSniff支持Telnet 、Ftp、Smtp、P0P3、HTTP,以及其它的一些高层网络应用协议。它的套件当中,有一些网络嗅探软件具有特殊的窃取密码的方法,可以用来支持对SSL和SSH加密了的数据进行捕获和解密。DSniff支持现在已经出现了的绝大多数的以太网网卡。
我们可以使用DSniff来验证我们的安全防范设置是否可靠,以及用来监控使用交换机或路由器的网络环境中网络的运行情况。但我们在使用DSniff之前,最好先考虑清楚它本身可能会给我们带来的新的安全风险,以防止造成不必要的损失。
DSniff套件当中,主要包含有以下几个方面的网络嗅探软件:
(1)、arpspoof(arp欺骗):通过它来进行ARP地址欺骗,将网络流量重定向到网络嗅探主机,然后就机会捕捉到网络数据包;
(2)、dnsspoof(dns欺骗):通过它来进行DNS欺骗。它有一个非常重要的功能就是webmitm,这种功能主要是用来捕获SSL和SSH加密了的数据;
(3)、mailsnarf:它可以将SMTP方式发送的E-Mail信息,重新组装成一种MBOX格式,然后就可以离线状态下被一些邮件收发软件读取;
(4)、filesnart:它可以用来得到以NFS、SMB方式传输的文件的一个副本;
(5)、urlsnart:它可以嗅探到来自HTTP流量中所有发送的URLs 请求,并保存为通用日志文件(CLF)格式。这种日志文件可以被大多数的WEB服务器所使用,可以在离线的状态下被WEB日志分析工具读取;
(6)、webspy :它能将从客户处嗅探到的URL地址,发送到攻击者的WEB浏览器中显示。并且实时更新,攻击者就可以看到你到底浏览了哪些网站;
(7)、msgsnarf :用它可以对一些实时聊天软件进行嗅探;
(8)、screenspy :用进行屏幕监控;
(9)、macof:它使用MAC地址溢出攻击方法来攻击交换机。通过不断向交换机
发送包含有冒充的MAC地址的数据包,以此来溢出交换机的MAC地址表。
此时,交换就会以广播的方式发送所接收到的数据包。它一般在上述嗅探软件
前使用;
(10)、tcpkill:一种拒绝服务攻击(DoS)。主要用来切断与合法主机的网络连接,保证嗅探工作的正常进行。它一般在上述嗅探软件前使用。
运行DSniff所需的文件:
DSniff可以Linux和Windows操作系统平台下使用,它支持绝大多数的Linux
发行版本和Windows 2000以上的版本。DSniff现在在Linux中的版本是dsniff-2.4。我们可以从上下载dsniff-2.4b1.tar.gz这个包。当我们在Linux系统平台中使用DSniff时,还需要以下的几个文件:
(1)、dsniff-2.4-configure.in.diff补丁包;