Linux环境下的嗅探器


Linux环境下的嗅探器有tcpdump、Nmap、linSniffer、LinuxSniffer、hunt、sniffit等。下面就只介绍Linux下优秀的嗅探器——tcpdump。

tcpdump 在Linux下的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。这里我们讲 rpm包的形式安装。这种形式的安装是最简单的安装方法。rpm包是将软件编译后打包成二进制的格式,通过rpm命令可以直接安装,不需要修改任何东西。

以超级用户登录,使用命令如下:

#rpm -ivh tcpdump-3_4a5.rpm

这样tcpdump就顺利地安装到Linux系统中。

tcpdump 是一个多用途的网络通信监测器,可捕获和显示报文及其内容。它可用来作为协议分析器,在系统及网络设备间提供一个最佳途径来探查通信和(或)连通性问题。大多数时候,网络疑难问题集中在网络配置问题以及诊断硬件相关故障。然而,用户将常常面对协议相关问题并且被迫钻研特定协议的机制来解决问题。使用 tcpdump,被检查的报文将用长格式或短格式(根据使用的命令行选项)显示其信息。tcpdump 有一个非常强有力的过滤机制,可用来查找与指定字符串或规则相匹配的报文。

tcpdump 提供两种主要的捕获模式:杂凑和非杂凑。在杂凑模式下,捕获每个在网络上传递的报文,不管该报文是否发送到执行tcpdump 的系统。举例来说,该模式就是RMON探测器在监测网络通信时使用的模式。网络探测器(probe)在网络上侦听通信并收集协议信息和统计数据。因为局域网(LAN)协议(如Ethernet)是基于广播的,每个被传送的帧可被连接到LAN上的任何网络接口所获得。任何设备可读取每个传送的帧,只要该设备选择这么做并配置成该方式就可以读取。当一个设备或接口从网络读取每个帧,就说明它处于杂凑模式了。实际中,接口必须为杂凑操作进行配置,并且仅仅用于需要网络诊断的特殊场合。www.britepic.org由于这个缘故,仅有root可以在一个接口上启用杂凑模式。这是非root用户不允许调用tcpdump 的主要原因。tcpdump工具提供了许多命令行选项来选择捕获模式、控制输出、指定过滤规则以及指定其他操作特性。这些选项根据它们的功能被分组并且包括以下种类:操作模式、显示选项、报文过滤选项。

操作模式选项用于控制tcpdump 如何捕获和如何显示网络通信的参数。 各选项的意义如下:

- c 捕获指定数量的报文;

- F 使用文件作为过滤表达式的源;

- i 使用可选网络接口捕获报文;

- p 禁止在杂凑模式下捕获;

- r 读取捕获文件而非网络接口;

- w 保存原始报文到文件中。

举例说明:

1.pdump arp将捕获并显示所有地址解析协议(ARP)报文。捕获包括请求和应答。

2.pdump host red and tcp将捕获并显示来自(发往)red 主机的所有传输控制协议报文。

3.pdump hos red1 and port 23将捕获并显示发往red1或从red1发出的所有使用23 端口的报文。用来检查网络上从其他系统到该系统的Telnet报文。端口23是对所有传入的报文来说是Telnet服务端口。

嗅探器的危害

嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能。嗅探器是一把双刃剑,它也有很大的危害性。

嗅探器可能造成的危害有:

1.嗅探器能够捕获口令;

2.够捕获专用的或者机密的信息;

3.以用来危害网络邻居的安全,或者用来获取更高级别的访问权限;

4.析网络结构,进行网络渗透。

嗅探器的攻击非常普遍,尤其在Internet上。一个放置好的嗅探器可以捕获成千上万个口令。1994年一个最大的嗅探器攻击被发现。这次攻击被人们普遍认为是记载中最为恶劣的一次,许多可以FTP、Telnet或远程登陆的主机系统都受到了危害。在这件事故(攻击者处于Rahul.net)中,嗅探器只运行了18个小时。在这段时间里,有几百台主机被泄密。受攻击者包括268个站点,如MIT、美国海军和空军、Sun微系统公司、IBM、NASA、 CERFNet和加拿大、以色列、荷兰、比利时的一些大学的机器。

嗅探器可以捕获网络上所有的报文,但实际上,一个攻击者必须要对报文进行选择。嗅探器攻击并不像听起来那么容易,它需要攻击者对网络知识有一定的了解。简单地设置一个嗅探器,并将其放到随便什么地方,将不会起到什么作用。因为即使一个只有5个工作站的网络,在一小时之内也会传输好几千个报文。这样在很短的时间里,嗅探器中用来存储捕获报文的文件就会充斥整个硬盘(如果记录下每一个报文的话)。

为了巧妙地解决这个问题,攻击者只嗅探每个报文的前200到300个字节。用户名和口令都包含在这一部分中,这是所有攻击者真正关心的部分。当然,如果拥有足够的空间进行存储,拥有足够的能力进行处理的话,也可以嗅探给定接口上的所有报文,那将会发现另一些非常可怕的东西。

抵御嗅探器的攻击

有二种方法可能会对抵御嗅探器的攻击有所作用:

1.检测和消灭嗅探器;

2.将数据隐藏,使嗅探器无法发现。

针对于第一种方法:检测和消灭嗅探器,可以采用检测混杂模式网卡的工具。

由于嗅探器需要将网络中入侵的网卡设置为混杂模式才能工作,所以有效检测混杂模式网卡的工具Anto-sniff就是一个好的工具。软件可以在http://www.securitysoftwatech.com/antisniff下载。但是嗅探器是非常难以被发现,因为它们是被动的程序。一个老练的黑客可以轻易通过破坏日志文件来掩盖信息,它并不会给别人留下进行核查的尾巴。

此处将对于第二种方法:将数据隐藏,使嗅探器无法发现重点介绍。

一般有两种防御的方法:

1.安全的拓扑结构;

2.会话加密。

嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。但是,除非你的公司是一个ISP,或者资源相对不受限制,否则这样的解决方案需要很大的代价。网络分段需要昂贵的硬件设备。有三种网络设备是嗅探器不可能跨过的:交换机、路由器、桥。

我们可以通过灵活的运用这些设备来进行网络分段。读者可能采用20个工作站为一组,这是一个比较合理的数字。然后,每个月人为地对每段进行检测(也可以每个月采用MD5随机地对某个段进行检测)。网络分段只适应于小的网络。如果有一个500个工作站的网络,分布在50个以上的部门中,那么完全的分段是价格所不允许的。即使在单位预算时有安全方面的考虑,也难以让单位主管相信需要50个硬件设备,而这只是为了防止嗅探器的攻击。在这样的情况下,对会话进行加密就是一种很好的选择。会话加密提供了另外一种解决方案。不要特别地担心数据被嗅探,而是要想办法使得嗅探器不认识嗅探到的数据。这种方法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。但是,其存在的缺点也非常明显。在加密时有两个主要的问题:一个是技术问题,一个是人为问题。

技术问题包括是否该加密到足够强大的程度,还是仅仅是想当然地认为它比较强大。例如,40位的加密就可能不够,而且并不是所有的应用程序都集成了加密支持。而且,跨平台的加密方案还比较少见,一般只在一些特殊的应用之中才有。再者,有些用户可能抵制使用加密,他们觉得这太麻烦。用户在开始时可能会同意使用加密,但他们很少能够坚持下。总之我们必须寻找一种友好的媒介,它还要具有一定的用户友好性。而Secure Shell(SSH)就具有上述的特征。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间服务器”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、POP,甚至PPP提供一个安全的“通道”。SSH绑定在端口22上,其连接采用协商方式使用RSA加密。身份鉴别完成之后,后面的所有流量都使用IDEA进行加密。SSH(Secure Shell)程序可以通过网络登录到远程主机并执行命令。SSH的加密隧道保护的只是中间传输的安全性,使得任何通常的嗅探工具软件无法获取发送的内容。它提供了很强的安全验证可以在不安全的网络中进行安全的通信.所以它是防范嗅探器的一种方法。

  • 1
  • 2
  • 下一页

相关内容