扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
要如何才能找到网络传输的性能瓶颈?要如何才能快速定位已经失效了的网络设备?以及要如何才能迅速找到网络病毒传播或拒绝服务攻击的源头?一些专业的网络分析设备可以用来解决这些问题,但是它们的价格也是相当昂贵的,这对于一对成本控制比较敏感的中小企业和普通用户来说,是不能承受的。很幸运的是,网络嗅探器软件的出现,就为我们提供了一种即方便,又便宜的可视化和专业的网络分析解决方案。在本文中,我将给大家介绍六款主流的免费网络嗅探软件,希望给一些对此有兴趣的朋友提供一个选择参考。
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,我们可以到www.wireshark.org/download/上下载它。如果WireShark要在Windows系统下运行时,还需要一个名为Winpcap的驱动库,现在它的稳定版本是WinPcap 4.0.2,最新的测试版本是WinPcap 4.1 beta3,我们可以从http://www.winpcap.org上下载。如果是在Linux系统下使用时,就应当使用Libpcap驱动库,它现在的版本是Libpcap1.0.0,我们可以从www.tcpdump.org上下载。
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,我们可以从www.tcpdump.org上下载它的二进制包。同时,要运行它,也需要系统中安装有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。我们可以从www.monkey.org上下载dsniff-2.4b1.tar.gz这个包。当我们在Linux系统平台中使用DSniff时,还需要以下的几个文件:
(1)、dsniff-2.4-configure.in.diff补丁包;
(2)、dsniff-2.4-sshow.c.diff补丁包;
(3)、libnet-1.0.2a.tar.gz;
(4)、libnids-1.16-1.i386.rpm;
(5)、libpcap-0.4-39.i386.rpm;
如果安装了上述文件还不能正常工作,我们还必需安装db4.1.25和openssl。上述的这些文件可以在www.xfocus.net/tools/上下载。
如果要在Windows系统平台下使用,我们就需要以下的这些文件:
(1)、dsniff-1.8-win32-static.tgz;
(2)、libnids-1.16-win32.zip;
(3)、libevent-0.6-win32.zip;
(4)、winpcap4.0及以上版本。
它们也可以从www.xfocus.net/tools/上下载。
图3.1就是在进入安装在Windows系统中DSniff目录下的画面
图3.1 DSniff安装在Windows目录下的文件界面
4、 Ettercap
Ettercap也是一个高级网络嗅探软件,它可以在使用交换机的网络环境中使用。Ettercap能够对大多数的网络协议数据包进行解码,不论这个数据包是不是加密过了的。它也支持现在已经出现了的绝大多数以太网网卡。Ettercap还拥有一些独特的方法,用来捕获主机或整个网络的流量,并对这些流量进行相应的分析。
Ettercap具有如下所示的特点:
(1)、判断网络中活动主机的操作系统类型;
(2)、得到网络中所有活动主机的IP地址和MAC地址;
(3)、可以指定以静态或被动模式进行工作;
(4)、可以从指定的过滤规则文件中加入过滤规则;
(5)、具有包过滤功能,在数据流量比较大的情况下让你便于得到需要的信息。
(6)、可以用来收集网络中以明文方式传输的用户名和密码;
(7)、可以将捕获到的数据保存到指定位置的文件中;
(8)、可以用来检测网络中是否还有其它活动的嗅探器;
(9)、支持以插件的方式来扩展功能;
(10)、可以通过一些主动的攻击,来得到加密了的数据;
(11)、它内建了许多攻击方法,如ARP地址欺骗,以及字符注入攻击等。
Ettercap的大部分特性与DSniff相似。它可以在字符模式下使用,也可以在使用Ncurses based GUI和GTK2接口的图形界面上使用。当我们安装完Ettercap以后,就可以用“-T”选项指定它运行在字符模式下,以“-C”选项指定它运行在使用Ncurses based GUI的图形模式下,还可以“-G”选项指定它运行在使用GTK2接口的图形模式下。Ettercap的命令格式如下:
Ettercap [选项] [host:port] [host:port] [mac] [mac]
它有许多选项,我们可以在字符模式下输入“ettercap –help”命令来得到它们的说明。
运行Ettercap所需的文件:
Ettercap可以Linux、Windows、FreeBSD 、OpenBSD 、NetBSD 、Mac OS X 及Sloaris等操作系统平台中运行。
当我们在Linux下使用Ettercap嗅探软件时,就需要下列所有的这几个文件:
(1)、ettercap-NG-0.7.3.tar.gz;
(2)、libpcap >= 0.8.1;
(3)、libnet >= 1.1.2.1;
(4)、libpthread;
(5)、zlib。
如果我们还要在图形界面中使用或者还想得到SSH和SSL加密了的数据,还应当得
下列的文件:
(1)、libltdl,它是libtool的一部分;
(2)、libpcre;
(3)、openssl 0.9.7;
(4)、ncurses >= 5.3;
(5)、pkgconfig >= 0.15.0;
(6)、Glib >= 2.4.x、Pango >= 1.4.x。
如果我们要在Windows系统下使用它,就必需使用下列两个文件:
(1)、Ettercap-NG-0.7.3-win32.exe;
(2)、winpcap4.0及以上版本。
上面所示的文件,我们都可以从http://ettercap.sourceforge.net/download.php网站下载。下图4.1就是Ettercap在Windows系统下的主界面。
图4.1 Ettercap在Windows系统下的主界面
5、NetStumbler
NetStumbler是一个用来寻找使用IEEE802.11a/b/g标准的无线局域网工具。它支持 包括PCMCIA 无线适配器在内的绝大多数主流无线适配器,同时,还加入了对全球 GPS 卫星定位系统的支持。
NetStumbler可以完成以下的工作:
(1)、用来进行“战争驾驶”;
(2)、用来验证无线客户和无线AP的配置是否存在弱点;
(3)、用来寻找一些可以接入的无线局域网所在的方位。
(4)、用来检测干扰无线局域网信号的原因;
(5)、用来检测一些没有经过授权的无线接入点;
(6)、用来得到无线局域网的SSID值。
运行NetStumbler所需的文件:
NetStumbler可以在Windows98及以上的操作系统版本中运行,它还有一个精简版本,用来在Windows CE系统下使用。
NetStumbler是一个免费的软件,它现在的最新版本是NetStumbler0.4.0,Windows CE下最新的版本是MiniStumbler0.4.0。这两个安装包你都可以从www.netstumbler.com/downloads/网站下载。图5.1是NetStumbler启动后的主界面。
图5.1 NetStumbler的主界面
6、Kismet
Kismet 一个基于IEEE802.11系统标准的无线网络检测、嗅探软件,以及入侵检测系统,它是一个开源的、免费的软件。Kismet能够与绝大多数支持RF监控模式的无线适配器一起工作。例如PRISM2、2.5、3和GT无线芯片,以及Orinoco Gold和Atheros a/b/g无线芯片的无线适配器。当无线适配器处于监控模式(monitoring mode)时,它可以嗅探到兼容IEEE802.11a/b/g标准的无线网络中传输的网络流量。Kismet主要以被动的方式对无线网络进行嗅探,来检测出标准的无线网络名称,包括隐藏了SSID值的无线网络也能够被检测到。
Kismet具有以下的特点:
(1)、能将嗅探到的文件保存为Tcpdump等软件可以读取的格式;
(2)、能检测出无线网络现在所使用的IP地址范围;
(3)、能检测出无线网络中安装有NetStumbler软件的主机,以此来找到非法无线接入者;
(4)、能检测出隐藏了的无线网络SSID值;
(5)、与GPS合作,绘制无线访问点和无线客户所在位置的网络地图;
(6)、使用客户/服务器体系结构;
(7)、可识别无线访问点和无线客户中无线适配器的制造商和工作模式;
(8)、能找出无线访问点和无线客户现在存在的弱点;
(9)、可以解码通过WEP加密的数据包;
(10)、可以和其它软件合作,来扩展这些软件的应用范围。例如可以与snort网络入侵检测系统合作;
运行Kismet所需的文件:
Kismet可以在Linux2.0及以上的发行版本中运行得很好。在刚开始时,它只支持Linux系统平台,现在,它也有运行在Windows2000及以上系统下的版本。
当Kismet在 Linux发行版本中运行,我们可以从http://www.kismetwireless.net/download.shtml下载Kismet-2008-05-R1文件。如果要在Windows2000及以上系统中运行,我们就需要从上述相同网站中下载setup_kismet_2008-05-R1.exe安装文件,还必需从www.cacetech.com/support/downloads.htm 下载AirPcap的setup_airpcap_3_2_1.exe文件。图6.1就是Kismet在Linux系统字符终端下运行的界面。
图6.1 Kismet在Linux系统字符终端下运行的界面
在以太网中,还有一些网络嗅探软件也是比较常用的。例如Sniffer Pro网络协议分析软件,它可以在多种平台下运行,用来对网络运行状况进行实时分析,而且又有丰富的图示功能。以及Analyzer,它是一个运行在Windows操作系统下的免费的网络嗅探软件。另外,还一些商业性质的网络嗅探软件,虽然它们需要支付一定的费用,但是,它们的功能也是没得说的,其中比较著名的代表就是EtherPeek套件。
用网络分析器来为我们工作
现在,你已经知道如何将你的网络分析器连入到你的网络结构中了,就可以着手使用网络分析器来为自己进行各种网络管理或安全管理等工作的时候了。网络分析器,主要用来帮助进行系统管理,解决网络疑难问题,进行安全管理这三方面的工作。下面就对这三个方面的具体内容进行详细说明。
一、使用网络分析器来进行系统管理
一台处于网络中的主机,对于出现的一些关于网络连通性相关的问题,在通过一些常规的网络命令工具(如ping命令)不能确定是系统还是网络服务器出现问题时,就可以通过网络分析器来分析某种网络协议(如TCP协议)的工作方式,来确定问题所在。
现在通过一个解决TCP连接的例子来说明如何使用网络协议来帮助系统管理的。
一般要完成一个成功的TCP连接,必需经过三层握手,我们可以通过使用网络分析器来分析TCP连接过程中的三次握手时的响应标志,就以发现问题的所在。一共有以下三种情况:
1、有SYN标志,没有SYN+ACK标志。
当网络分析器捕获的包中只有客户机的SYN包,但没有来自服务器响应的SYN+ACK标志包,那么,就可以说明服务器不能处理数据包,可能原因是被防火墙类设备阻止。
2、SYN后服务器立即响应RST。
这种方式说明目标服务器的所对应的服务没有开放对应的正确端口。重新绑定商品对应的服务上就可以解决这个问题。
3、SYN SYN+ACK ACK 立即关闭。
如果TCP建立连接后立即关闭,可能是由于目标服务器拒绝使用包中源IP地址的客户机连接服务器。检查服务器中的防火墙及其它安全软件中的访问控制列表,将客户机的IP地址添加到信任列表当中。
二、使用网络分析器来解决网络疑难问题
网络管理的一个基本职能,就是应当尽量解决网络中出现的各种故障,以确保网络能够正常运行。解决网络故障的关键,就是应当尽快找到故障出现的位置,然后确定故障产生的原因。有一种方法可以帮助我们能够加快解决网络故障的速度,就是在网络的各个关键位置布置网络分析器。这样,你就可以通过网络分析器来了解现在网络传输速度,网络会话过程是否正常,检测有哪些设备出现了故障,故障产生的原因是什么等等。
还有,为了快速正确地解决网络问题,在事先制定一个解决问题的策略是一个很好的方法。这会最大限度地减少在处理故障过程中出现的人为失误。一个好的处理网络故障的步骤一般应包括以下几个方面:
发现问题-认识问题-问题分类-隔离问题-验证和测试问题的起因-解决问题-验证问题是否真的被解决。
三、使用网络分析器来进行安全管理
网络分析器是一个非常好的网络协议分析工具,用它不仅能找到一些网络应用程序在数据传输过程中的缺点,例如FTP和Telnet都是通过明文方式来传输数据的,因此,网络分析器能轻而易举地捕获到这些数据包中的重要信息(如用户名和密码)。由此,也可以使用网络分析器来检查其它需要在网络中使用的网络协议的传输是否安全。
同时,我们还可以使用网络分析器来检查存于系统中的蠕虫病毒传播的源头,以及诸如拒绝服务攻击产生的源头等等。
因此,使用网络分析器来分析网络流量,可以帮助我们找到网络安全弱点,强化我们的安全策略。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者