1.2 谁需要使用网络分析?
系统管理员、网络工程师、安全工程师、系统操作员、与程序员都需要使用网络分析器,其对诊断与解决网络问题、系统配置问题、与应用程序的难点(或瓶颈)都是无价的工具。在历史上,网络分析器曾经专注于昂贵与难于使用的硬件设备。然而,新出现的先进技术允许基于软件进行网络分析器开发,其为有效解决网络问题提供了一种更为方便与廉价的工具,它也具备网络分析的能力。
网络分析的技术是一个双刃剑。当网络、系统、与安全的专业人员使用它处理网络故障与监视网络时,入侵者为了非法的目的正在使用网络分析器。网络分析器是一种工具,就像所有的工具一样,它可被用在好的与坏的目的之上。
网络分析器的用途为:
Ø 将在数据包中的二进值数据转换成易读的格式
Ø 处理网络故障
Ø 分析网络性能以发现瓶颈
Ø 网络入侵检测
Ø 为了辩护与证据记录网络流量
Ø 分析应用程序的操作
Ø 发现有问题的网卡
Ø 发现病毒爆发的源头或拒绝服务(DoS)的攻击
Ø 发现间谍软体
Ø 在开发阶段对网络编程进行调试
Ø 发现一部泄密的计算机
Ø 确认符合公司的政策
Ø 学习协议时作为学习的资源
Ø Reverse-engineering protocols to write clients and supporting programs(逆向工程协议去写客户与支持计划)
1.2.1 入侵者如何使用嗅探器?
当被心怀恶意的人使用时,嗅探器能对网络安全构成重要威胁。网络入侵者使用嗅探的方式获取秘密的信息,嗅探和窃听在该应用中通常是相互关联的。然而,嗅探正成为一个非负面的术语;大多数人互换地使用嗅探和网络分析这两个术语。
以非法方式使用一个嗅探器被视为一个被动的攻击,因为它不直接与网络上任何其它系统相互作用或连接。一个嗅探器也能被安装在网络的一台计算机上,并作为一个主动攻击的泄密部分。嗅探器的被动特性使得很难被检测(用的检测方法稍后详细说明)。
入侵者在网络上使用嗅探器做下列事情:
Ø 取得明文的用户名和密码
Ø 发现一个网络上用户的使用模式(usage patterns)
Ø 泄密私有信息
Ø 捕获与回放VoIP电话通话
Ø 映射网络的部署
Ø 被动的操作系统指纹识别(Passive OS fingerprinting)
上述都是嗅探器的非法使用,除非你是一个渗透测试人员,找出并报告这些类型的弱点就是你的工作。为了嗅探,一个入侵者首先得获取所感兴趣系统的通信网线的访问权,这意谓着要在同一共享网段上或在通信路径之间的网线某处接入探针。
如果侵入者不是与目标系统或通信访问点(AP)物理接触,仍然有方法嗅探网络流量,包括:
Ø 闯入一部目标计算机而且安装远程嗅探器
Ø 闯入一个通信访问点(举例来说,一个因特网服务提供着[ISP]) 并安装嗅探软件。
Ø 在已经装入嗅探软件的ISP上定位一个系统
Ø 使用社会的工程学(social engineering)得到一个ISP的物理访问,安装一个数据包嗅探器
Ø 在目标计算机组织或ISP内部有一个同谋者,并在那儿安装嗅探器。
Ø 重定向或复制通信(Redirecting or copying communications),使路径包含入侵者的计算机
嗅探程序大多数都包含了rootkits工具,该工具安装在泄密系统中是极具代表性的。Rootkits通过替换命令和使用、并清除日志条目,被用来掩盖入侵者的踪迹。
入侵者也安装其它的程序,像嗅探器,键盘记录器和后门软件。Windows嗅探可作为远程操控特洛伊(RAT)的一部分被实现,诸如SubSeven 或Back Orifice。
入侵者通常使用嗅探程序,并把嗅探程序配置成能检测特定事情(如密码)的状态, 然后把所嗅探的事情发送给入侵者(或者储存它们,由入侵者稍后取回)。易受该类活动攻击的协议包括Telnet、文件传送协议(FTP)、第3版邮局协议 (POP3) 、网际报文存取协议 (IMAP)、简单邮件传输协议(SMTP)、 超文本传输协议 (HTTP)、远程登录 (rlogin)和简单网络管理协议(SNMP)。
rootkit 的一个例子是在 Solaris 和 Linux 上工作的“T0rnKit”,和rootkit 包含在一起的嗅探器叫做“t0rns”,并被安装在隐藏目录/usr/srec/.puta中。rootkit的另一个例子是 Linux Rootkit 5(Lrk5)和linsniff嗅探器一起安装。
入侵者也可以使用嗅探程序控制后门(这一个实践不是相当“常见的” ,但并不是没听说过)。一个方法是将在一个监听特定信息的嗅探器安装在目标系统上,然后发送后门控制信息到一个邻近的系统。因为嗅探器固有的被动特性,该类型的后门控制很难被发现。 cd00r就是一个后门嗅探的例子,并在非混杂模态中操作,它很难被检测到。
1.2.2 被嗅探的数据看起来像什么?
最容易领会嗅探器概念的方法就是在实际应用中看一看具体实例。图2-2演示了从一台电脑连接到一个 Linux系统请求FTP服务器服务,并通过Wireshark嗅探传输的数据包。第一、二个数据包显示了采用数据包嗅探器,获得用户名与密码是多么容易的事情(也就是,从数据包直接可知用户名为lxf和密码为lxf)。
图2-2 嗅探一个连接
1.2.3 常见的网络分析器
具有大量各种各样的嗅探器软件可用,下面列出一些最优异的:
■ Wireshark Wireshark 是可得到的最好的嗅探器之一,并被作为一个自由的、商业化质量的嗅探器开发。它有很多的特征,如好的图形用户界面(GUI)、解码超过 400个协议、并被积极地开发与维护。它可在UNIX、Mac OS X与 Windows系统上运行。在产品环境中使用这是一个伟大的嗅探者,可从www.wireshark.org获取。
■ WinDump WinDump 是Windows版本的tcpdump,从 www.winpcap.org/windump可获取。它使用 WinPcap库,并可运行在Windows 95、Windows 98、Windows ME、Windows NT、Windows 2000与WindowsXP上。
■ Network General Sniffer Network General Sniffer是一个最流行的商业嗅探器。现在有一个企业网络捕获工具套件,在 www.networkgeneral.com上有一整个嗅探器产品线。
■ Windows 2000 and 2003 Server Network Monitor Windows 2000 Server与 Windows 2003 Server都有一个内建程序来执行网络分析。该程序在“Administrative Tools”文件夹中,但不是缺省安装的,因此需要从安装盘中添加安装。
■ EtherPeek EtherPeek是一个WildPackets开发的商业化网络分析器。Windows与Mac下的版本,以及其它的网络分析器从 www.wildpackets.com上可以获得。
■ Tcpdump Tcpdump是最古老的与最常用的网络嗅探器,由Information and Computing Sciences Division (ICSD) at Lawrence Berkeley National Laboratory (LBNL)的Network Research Group (NRG)开发。它基于命令行模式运行在UNIX与类UNIX系统上,包括Mac OS X。通过www.tcpdump.org来进行开发与维护。
■ Snoop Snoop是一个基于命令行模式运行的网络嗅探器,被包含在Sun Solaris操作系统中。
■ Snort Snort是一个网络IDS(入侵检测系统),可用作网络嗅探 ,在www.snort.org网站上积极的开发与维护。参见Nessus, Snort, & Ethereal Power Tools: Customizing Open Source Security Applications (Syngress Publishing: 1597490202) 与 Snort Intrusion Detection and Prevention Toolkit (Syngress, ISBN: 1597490997)获得更多的信息。
■ Dsniff Dsniff 是一个非常流行的网络嗅探软件包。它是一个用来嗅探感兴趣的数据(如密码) 与使嗅探过程更便利(如规避交换机)的程序集。它在www.monkey.org/~dugsong/dsniff网站上被积极的维护。
■ Ettercap Ettercap 被特别地设计用来嗅探一个交换网络。它内建的特征,诸如密码收集,操作系统”指纹”识别(OS fingerprinting),和字符注入。可在Linux、Windows和 Solaris平台上运行。它在ettercap.sourceforge.net网站上被积极地被维护。
■ Analyzer Analyzer是Windows操作系统下使用的一个自由的嗅探器。它被WinPcap 和 WinDump 的制造者在Politecnico di Torino积极地开发,并能从analyzer.polito.it下载。
■ Packetyzer Packetyzer 是一个自由的嗅探器 (在Windows操作系统下使用),使用Wireshark的核心逻辑。它倾向于在Wireshark 释放版本后一两个版本发布。它被Network Chemistry在www.networkchemistry.com/products/packetyzer.php网站上积极地维护。
■ MacSniffer MacSniffer专门为 Mac OS X操作系统设计。它为tcpdump的一个前端软件被构建。该软件是共享软件而且能从personalpages.tds.net/~brian_hill/macsniffer.html被下载。