水珮风裳  
First seperating,Finally meeting.
有一种厌倦叫热情;有一种等待叫积极;有一种发呆叫思索;有一种逃离叫勇气.

域 

    既是Windows网络系统的逻辑组织单元,也是Internet的逻辑组织单元,在Windows 系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域。每个域都有自己的安全策略,以及它与其他域的安全信任关系。

                                   web欺骗

前言

    本文描述Internet上的一种安全攻击,它可能侵害到WWW用户的隐私和数据完整性。这种攻击可以在现有的系统上实现,危害最普通的Web浏览器用户,包括Netscape Navigator和Microsoft Internet Explorer用户。   

    允许攻击者创造整个WWW世界的影像拷贝。影像Web的入口进入到攻击者的Web服务器,经过攻击者机器的过滤作用,允许攻击者监控受攻击者的任何活动,包括帐户和口令。攻击者也能以受攻击者的名义将错误或者易于误解的数据发送到真正的Web服务器,以及以任何Web服务器的名义发送数据给受攻击者。简而言之,攻击者观察和控制着受攻击者在Web上做的每一件事。

欺骗攻击   

    在一次欺骗攻击中,攻击者创造一个易于误解的上下文环境,以诱使受攻击者进入并且做出缺乏安全考虑的决策。欺骗攻击就像是一场虚拟游戏:攻击者在受攻击者的周围建立起一个错误但是令人信服的世界。如果该虚拟世界是真实的话,那么受攻击者所做的一切都是无可厚非的。但遗憾的是,在错误的世界中似乎是合理的活动可能会在现实的世界中导致灾难性的后果。

    欺骗攻击在现实的电子交易中也是常见的现象。例如,我们曾经听说过这样的事情:一些西方罪犯分子在公共场合建立起虚假的ATM取款机,该种机器可以接受ATM卡,并且会询问用户的PIN密码。一旦该种机器获得受攻击者的PIN密码,它会要么“吃卡”,要么反馈“故障”,并返回ATM卡。不论哪一种情况,罪犯都会获得足够的信息,以复制出一个完全一样的ATM卡。后面的事情大家可想而知了。在这些攻击中,人们往往被所看到的事物所愚弄:ATM取款机所处的位置,它们的外形和装饰,以及电子显示屏的内容等等。

    人们利用计算机系统完成具有安全要求的决策时往往也是基于其所见。例如,在访问网上银行时,你可能根据你所见的银行Web页面,从该行的帐户中提取或存入一定数量的存款。因为你相信你所访问的Web页面就是你所需要的银行的Web页面。无论是页面的外观、URL地址,还是其他一些相关内容,都让你感到非常熟悉,没有理由不相信。但是,你很可能是在被愚弄。

Web欺骗的欺骗手段

TCP和DNS欺骗   

    除了我们将要讨论的欺骗手段外,还有一些其他手段,在这里我们将不做讨论。这种攻击的例子包括TCP欺骗(在TCP包中使用伪造的IP地址)以及DNS欺骗(攻击者伪造关于机器名称和网络信息)。读者有兴趣可以阅读有关资料。

Web欺骗   

    Web欺骗是一种电子信息欺骗,攻击者在其中创造了整个Web世界的一个令人信服但是完全错误的拷贝。错误的Web看起来十分逼真,它拥有相同的网页和链接。然而,攻击者控制着错误的Web站点,这样受攻击者浏览器和Web之间的所有网络信息完全被攻击者所截获,其工作原理就好像是一个过滤器。

后果   

    由于攻击者可以观察或者修改任何从受攻击者到Web服务器的信息;同样地,也控制着从Web服务器至受攻击者的返回数据,这样攻击者就有许多发起攻击的可能性,包括监视和破坏。

    攻击者能够监视受攻击者的网络信息,记录他们访问的网页和内容。当受攻击者填写完一个表单并发送后,这些数据将被传送到Web服务器,Web服务器将返回必要的信息,但不幸的是,攻击者完全可以截获并加以使用。大家都知道绝大部分在线公司都是使用表单来完成业务的,这意味着攻击者可以获得用户的帐户和密码。下面我们将看到,即使受攻击者有一个“安全”连接(通常是通过Secure Sockets Layer来实现的,用户的浏览器会显示一把锁或钥匙来表示处于安全连接),也无法逃脱被监视的命运。

    在得到必要的数据后,攻击者可以通过修改受攻击者和Web服务器之间任何一个方向上的数据,来进行某些破坏活动。攻击者修改受攻击者的确认数据,例如,如果受攻击者在线订购某个产品时,攻击者可以修改产品代码,数量或者邮购地址等等。攻击者也能修改被Web服务器所返回的数据,例如,插入易于误解或者攻击性的资料,破坏用户和在线公司的关系等等。

·WEB的全面性

欺骗整个Web世界   

    你可能认为攻击者欺骗整个Web世界是不可能的,但是恰恰相反,攻击者不必存储整个Web世界的内容,他只需要制造出一条通向整个Web世界的链路。当他需要提供关于某个Web站点的错误Web页面时,他只需要在自己的服务器上建立一个该站点的拷贝,由此等待受害者自投罗网。

Web欺骗的工作原理

    欺骗能够成功的关键是在受攻击者和其他Web服务器之间设立起攻击者的Web服务器,这种攻击种类在安全问题中称为“来自中间的攻击”。为了建立起这样的中间Web服务器,黑客往往进行以下工作。

改写URL   

    首先,攻击者改写Web页中的所有URL地址,这样它们指向了攻击者的Web服务器而不是真正的Web服务器。假设攻击者所处的Web服务器是 www.org ,攻击者通过在所有链接前增加 http://www.www.org 来改写URL。例如,http://home.xxx1.com 将变为 http://www.www.org/http://home.xxx1.com. 当用户点击改写过的http://home.xxx1.com (可能它仍然显示的是 http://home.xxx1 ),将进入的是http://www.www.org ,然后由 http://www.www.org 向 ttp://home.xxx1.com发出请求并获得真正的文档,然后改写文档中的所有链接,最后经过 http://www.www.org 返回给用户的浏览器。工作流程如下所示:  

    1.用户点击经过改写后的 http://www.www.org/http://home.xxx1.com ;  

    2.http://www.www.org向http://home.xxx1.com 请求文档;  
    3.http://home.xxx1.com向
http://www.www.org 返回文档;  
    4.http://www.www.org 改写文档中的所有URL;  

    5.http://www.www.org 向用户返回改写后的文档。  

    很显然,修改过的文档中的所有URL都指向了 www.org ,当用户点击任何一个链接都会直接进入 www.org ,而不会直接进入真正的URL。如果用户由此依次进入其他网页,那么他们是永远不会摆脱掉受攻击的可能。

关于表单

    如果受攻击者填写了一个错误Web上的表单,那么结果看来似乎会很正常,因为只要遵循标准的Web协议,表单欺骗很自然地不会被察觉:表单的确定信息被编码到URL中,内容会以HTML形式来返回。既然前面的URL都已经得到了改写,那么表单欺骗将是很自然的事情。   

    当受攻击者提交表单后,所提交的数据进入了攻击者的服务器。攻击者的服务器能够观察,甚至是修改所提交的数据。同样地,在得到真正的服务器返回信息后,攻击者在将其向受攻击者返回以前也可以为所欲为。

关于“安全连接”   

    我们都知道为了提高Web应用的安全性,有人提出了一种叫做安全连接的概念。它是在用户浏览器和Web服务器之间建立一种基于SSL的安全连接。可是让人感到遗憾的是,它在Web欺骗中基本上无所作为。受攻击者可以和Web欺骗中所提供的错误网页建立起一个看似正常的“安全连接”:网页的文档可以正常地传输而且作为安全连接标志的图形(通常是关闭的一把钥匙或者锁)依然工作正常。换句话说,也就是浏览器提供给用户的感觉是一种安全可靠的连接。但正像我们前面所提到的那样,此时的安全连接是建立在 www.org 而非用户所希望的站点。

攻击的导火索   

    为了开始攻击,攻击者必须以某种方式引诱受攻击者进入攻击者所创造的错误的Web。黑客往往使用下面若干种方法。

    1.把错误的Web链接放到一个热门Web站点上;

    2.如果受攻击者使用基于Web的邮件,那么可以将它指向错误的Web;

    3.创建错误的Web索引,指示给搜索引擎。

Web欺骗的细节完善

    前面描述的攻击相当有效,但是它还不是十分完美的。黑客往往还要创造一个可信的环境,包括各类图标、文字、链接等,提供给受攻击者各种各样的十分可信的暗示。总之就是隐藏一切尾巴。此时,如果错误的Web是富有敌意的,那么无辜的用户将处于十分危险的境地。

·WEB欺骗的解决方案

    另外,黑客还会注意以下方面。

1. 状态线路   

    连接状态是位于浏览器底部的提示信息,它提示当前连接的各类信息。Web欺骗中涉及两类信息。首先,当鼠标放置在Web链接上时,连接状态显示链接所指的URL地址,这样,受攻击者可能会注意到重写的URL地址。第二,当Web连接成功时,连接状态将显示所连接的服务器名称。这样,受攻击者可以注意到显示 www.org,而非自己所希望的站点。

    攻击者能够通过javascript编程来弥补这两项不足。由于javascript能够对连接状态进行写操作,而且可以将javascript操作与特定事件绑定在一起,所以,攻击者完全可以将改写的URL状态恢复为改写前的状态。这样Web欺骗将更为可信。

2. 位置状态行   

    浏览器的位置状态行显示当前所处的URL位置,用户也可以在其中键入新的URL地址进入到另外的URL,如果不进行必要的更改,此时URL会暴露出改写后的URL。同样地,利用javascript可以隐藏掉改写后的URL。javascript能用不真实的URL掩盖真实的URL,也能够接受用户的键盘输入,并将之改写,进入不正确的URL。

Web欺骗的弱点   

    尽管黑客在进行Web欺骗时已绞尽脑汁,但是还是留有一些不足。

文档信息   

    攻击者并不是不留丝毫痕迹,HTML源文件就是开启欺骗迷宫的钥匙。攻击者对其无能为力。通过使用浏览器中“viewsource”命令,用户能够阅读当前的HTML源文件。通过阅读HTML源文件,可以发现被改写的URL,因此可以觉察到攻击。遗憾的是,对于初学者而言,HTML源文件实在是有些难懂。

    通过使用浏览器中“view document information”命令,用户能够阅读当前URL地址的一些信息。可喜的是这里提供的是真实的URL地址,因此用户能够很容易判断出Web欺骗。不过,绝大多数用户都很少注意以上一些属性,可以说潜在的危险还是存在的。

Web欺骗的预防解决

逃离灾难   

    受攻击者可以自觉与不自觉地离开攻击者的错误Web页面。这里有若干种方法。访问Bookmark或使用浏览器中提供的“Open location”进入其他Web页面,离开攻击者所设下的陷阱。不过,如果用户使用“Back”按键,则会重新进入原先的错误Web页面。当然,如果用户将所访问的错误Web存入Bookmark,那么下次可能会直接进入攻击者所设下的陷阱。

关于追踪攻击者   

    有人建议应当通过跟踪来发现并处罚攻击者。确实如此,攻击者如果想进行Web欺骗的话,那么离不开Web服务器的帮助。但是,他们利用的Web服务器很可能是被攻击后的产物,就象罪犯驾驶着盗窃来的汽车去作案一样。

预防办法   

    Web欺骗是当今Internet上具有相当危险性而不易被察觉的欺骗手法。幸运的是,我们可以采取的一些保护办法。

短期的解决方案   

    为了取得短期的效果,最好从下面三方面来预防:

    1.禁止浏览器中的javascript功能,那么各类改写信息将原形毕露;

    2.确保浏览器的连接状态是可见的,它将给你提供当前位置的各类信息;

    3.时刻注意你所点击的URL链接会在位置状态行中得到正确的显示。

    现在,javascript、ActiveX以及Java提供越来越丰富和强大的功能,而且越来越为黑客们进行攻击活动提供了强大的手段。为了保证安全,建议用户考虑禁止这些功能。

    这样做,用户将损失一些功能,但是与可能带来的后果比较起来,每个人会得出自己的结论。

长期的解决方案   

    1.改变浏览器,使之具有反映真实URL信息的功能,而不会被蒙蔽;

    2.对于通过安全连接建立的Web——浏览器对话,浏览器还应该告诉用户谁在另一端,而不只是表明一种安全连接的状态。比如:在建立了安全连接后,给出一个提示信息“NetscapeInc.”等等。

    所有的解决方案,可以根据用户的安全要求和实际条件来加以选择。


 


                                防范网络嗅探理论介绍及实践应用
最普遍的安全威胁来自内部,同时这些威胁通常都是致命的,其破坏性也远大于外部威胁。其中网络嗅探对于安全防护一般的网络来说,操作简单同时威胁巨大,很多黑客也使用嗅探器进行网络入侵的渗透。
网络嗅探器对信息安全的威胁来自其被动性和非干扰性,使得网络嗅探具有很强的隐蔽性,往往让网络信息泄密变得不容易被发现。本文分析了网络嗅探的原理,分析了一些实例,提出解决方案和介绍实践经验。

一 嗅探器攻击原理

嗅探器(sniffer) 是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种技术。它工作在网络的底层,把网络传输的全部数据记录下来. 嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能。嗅探器可以分析网络的流量,以便找出所关心的网络中潜在的问题。

不同传输介质的网络的可监听性是不同的。一般来说,以太网被监听的可能性比较高,因为以太网是一个广播型的网络;FDDI Token被监听的可能性也比较高,尽管它并不是一个广播型网络,但带有令牌的那些数据包在传输过程中,平均要经过网络上一半的计算机;微波和无线网被监听的可能性同样比较高,因为无线电本身是一个广播型的传输媒介,弥散在空中的无线电信号可以被很轻易的截获。一般情况下,大多数的嗅探器至少能够分析下面的协议:

标准以太网

TCP/IP

IPX

DECNET

FDDI Token

微波和无线网。

实际应用中的嗅探器分软、硬两种。软件嗅探器便宜易于使用,缺点是往往无法抓取网络上所有的传输数据(比如碎片),也就可能无法全面了解网络的故障和运行情况;硬件嗅探器的通常称为协议分析仪,它的优点恰恰是软件嗅探器所欠缺的,但是价格昂贵。目前主要使用的嗅探器是软件的。

嗅探器捕获真实的网络报文。嗅探器通过将其置身于网络接口来达到这个目的--例如将以太网卡设置成杂收模式。数据在网络上是以帧(Frame)的单位传输的。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上。通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧的到达,然后对其进行存储。就是在这个传输和接收的过程中,每一个在LAN上的工作站都有其硬件地址。这些地址唯一地表示着网络上的机器。当用户发送一个报文时,这些报文就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以"听"到通过的流量,但对不属于自己的报文则不予响应。如果某在工作站的网络接口处于杂收模式,那么它就可以捕获网络上所有的报文和帧,如果一个工作站被配置成这样的方式,它(包括其软件)就是一个嗅探器。这也是嗅探器会造成安全方面的问题的原因。通常使用嗅探器的入侵者,都必须拥有基点用来放置嗅探器。对于外部入侵者来说,能通过入侵外网服务器、往内部工作站发送木马等获得需要,然后放置其嗅探器,而内部破坏者就能够直接获得嗅探器的放置点,比如使用附加的物理设备作为嗅探器(例如,他们可以将嗅探器接在网络的某个点上,而这个点通常用肉眼不容易发现。除非人为地对网络中的每一段网线进行检测,没有其他容易方法能够识别出这种连接(当然,网络拓扑映射工具能够检测到额外的IP地址)。

嗅探器可能造成的危害:

嗅探器能够捕获口令;

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

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

分析网络结构,进行网络渗透。

二 嗅探器攻击实例

Linux、Unix环境下的嗅探器有:Tcpdump、Nmap、Linuxsniffer、hunt、sniffit 等。Linsniffer是一个简单实用的嗅探器。它主要的功能特点是用来捕捉用户名和密码,它在也这方面非常出色。注:编译该软件需要所在的Linux系统上必须的网络包含文件(tvp.h、ip.h、inet.hif_t、her.h)。 虽然这个工具易于使用,但是Linsniffer需要完整的IP头文件,包括常常存储在/usr/include/net和 /usr/include/netinet的头文件,在编译前确保PATH变量包含/usr/include。

获得这个软件后,进入src目录,使用下面的命令来编译Linsniffer: $ cc linsniffer.c -o linsniffer

要运行Linsniffer,使用下面的命令:$ linsniffer

启动以后linsniffer将创建一个空文件:tcp.log来存储嗅探结果。

举例说明,在一台测试的Linux服务器中创建一个名为“goodcjh”的用户,密码为“fad”。然后在主机CJH上使用该用户来登录这台Linux服务器,并进行一些常见的用户操作。下面是进行的一次ftp过程:

CJH$ ftp www.red.net
Connected to www.red.net.
220 www.red.net FTP server Wed Aug 19 02:55:52 MST 2002) ready.
Name (www.red.net:root): goodcjh
331 Password required for goodcjh.
Password:
230 User goodcjh logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -al
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 14
drwxrwxr-x 4 goodcjh goodcjh 1024 May 20 19:35 .
drwxr-xr-x 6 root root 1024 May 20 19:28 ..
-rw-rw-r-- 1 goodcjh goodcjh 96 May 20 19:56 .bash_history
-rw-r--r-- 1 goodcjh goodcjh 49 Nov 25 2002 .bash_logout
-rw-r--r-- 1 goodcjh goodcjh 913 Nov 24 2002 .bashrc
-rw-r--r-- 1 goodcjh goodcjh 650 Nov 24 2002 .cshrc
-rw-r--r-- 1 goodcjh goodcjh 111 Nov 3 2002 .inputrc
-rwxr-xr-x 1 goodcjh goodcjh 186 Sep 1 2002 .kshrc
-rw-r--r-- 1 goodcjh goodcjh 392 Jan 7 2002 .login
-rw-r--r-- 1 goodcjh goodcjh 51 Nov 25 2002 .logout
-rw-r--r-- 1 goodcjh goodcjh 341 Oct 13 2002 .profile
-rwxr-xr-x 1 goodcjh goodcjh 182 Sep 1 2002 .profile.ksh
drwxr-xr-x 2 goodcjh goodcjh 1024 May 14 12:16 .seyon
drwxr-xr-x 3 goodcjh goodcjh 1024 May 14 12:15 lg
226 Transfer complete.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 14
drwxrwxr-x 4 goodcjh goodcjh 1024 May 20 19:35 .
drwxr-xr-x 6 root root 1024 May 20 19:28 ..
-rw-rw-r-- 1 goodcjh goodcjh 96 May 20 19:56 .bash_history
-rw-r--r-- 1 goodcjh goodcjh 49 Nov 25 2002 .bash_logout
-rw-r--r-- 1 goodcjh goodcjh 913 Nov 24 2002 .bashrc
-rw-r--r-- 1 goodcjh goodcjh 650 Nov 24 2002 .cshrc
-rw-r--r-- 1 goodcjh goodcjh 111 Nov 3 2002 .inputrc
-rwxr-xr-x 1 goodcjh goodcjh 186 Sep 1 2002 .kshrc
-rw-r--r-- 1 goodcjh goodcjh 392 Jan 7 2002 .login
-rw-r--r-- 1 goodcjh goodcjh 51 Nov 25 2002 .logout
-rw-r--r-- 1 goodcjh goodcjh 341 Oct 13 2002 .profile
-rwxr-xr-x 1 goodcjh goodcjh 182 Sep 1 2002 .profile.ksh
drwxr-xr-x 2 goodcjh goodcjh 1024 May 14 12:16 .seyon
drwxr-xr-x 3 goodcjh goodcjh 1024 May 14 12:15 lg
226 Transfer complete.
ftp> ls -F
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 14
drwxrwxr-x 4 goodcjh goodcjh 1024 May 20 19:35 ./
drwxr-xr-x 6 root root 1024 May 20 19:28 ../rw-rw-r-- 1 goodcjh goodcjh 96 May 20 19:56 .bash_history
-rw-r--r-- 1 goodcjh goodcjh 49 Nov 25 2002 .bash_logout
-rw-r--r-- 1 goodcjh goodcjh 913 Nov 24 2002 .bashrc
-rw-r--r-- 1 goodcjh goodcjh 650 Nov 24 2002 .cshrc
-rw-r--r-- 1 goodcjh goodcjh 111 Nov 3 2002 .inputrc
-rwxr-xr-x 1 goodcjh goodcjh 186 Sep 1 2002 .kshrc*
-rw-r--r-- 1 goodcjh goodcjh 392 Jan 7 2002 .login
-rw-r--r-- 1 goodcjh goodcjh 51 Nov 25 2002 .logout
-rw-r--r-- 1 goodcjh goodcjh 341 Oct 13 2002 .profile
-rwxr-xr-x 1 goodcjh goodcjh 182 Sep 1 2002 .profile.ksh*
drwxr-xr-x 2 goodcjh goodcjh 1024 May 14 12:16 .seyon/
drwxr-xr-x 3 goodcjh goodcjh 1024 May 14 12:15 lg/
226 Transfer complete.
ftp> cd lg
250 CWD command successful.
ftp> ls -F
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 8
drwxr-xr-x 3 goodcjh goodcjh 1024 May 14 12:15 ./
drwxrwxr-x 4 goodcjh goodcjh 1024 May 20 19:35 ../rw-r--r-- 1 goodcjh goodcjh 70 Aug 22 2002 lg3_colors
-rw-r--r-- 1 goodcjh goodcjh 629 Aug 22 2002 lg3_prefs
-rw-r--r-- 1 goodcjh goodcjh 728 Aug 22 2002 lg3_soundPref
-rw-r--r-- 1 goodcjh goodcjh 2024 Aug 22 2002 lg3_startup
drwxr-xr-x 2 goodcjh goodcjh 1024 May 14 12:15 lg_layouts/
226 Transfer complete.
ftp> cd lg_layouts
250 CWD command successful.


上面是一个典型的用户操作过程。现在我们看看Linsniffer产生的嗅探结果:

CJH => www.red.net [21]
USER goodcjh
PASS fad
SYST
PORT 172,16,0,1,4,192
LIST -al
PORT 172,16,0,1,4,193
LIST
PORT 172,16,0,1,4,194
LIST -F
CWD lg
PORT 172,16,0,1,4,195
LIST -F


输出的内容是很直观的。首先它记录这是从主机 CJH 到 Linux 主机 www.red.net 的 FTP 连接:主机 CJH => linux.red.net [21]。然后,Linsniffer 捕获了 goodcjh 的用户名和密码。最后,Linsniffer 记录了用户 goodcjh 使用的每一个命令:

SYST
PORT 172,16,0,1,4,192
LIST -al
PORT 172,16,0,1,4,193
LIST
PORT 172,16,0,1,4,194
LIST -F
CWD lg
PORT 172,16,0,1,4,195
LIST -F


可见,Linsniffer 的输出结果非常简洁,并且非常适于窃听密码及记录常见的活动。但缺点是不适合于进行更加复杂的分析。

嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能。嗅探器是一把双刃剑,它也有很大的危害性。嗅探器的攻击非常普遍。一个位置好的嗅探器可以捕获成千上万个口令。1994年一个最大的嗅探器攻击被发现. 这次攻击被认为是危害最大的一次,许多可以FTP,Telnet或远程登陆的主机系统都受到了危害。在这件事故(攻击者处于Rahul.net)中,嗅探器只运行18小时。在这段时间里,有几百台主机被泄密。“受攻击者包括268个站点,包括MIT、美国海军和空军、Sun、IBM、NASA、和加拿大、比利时大学一些主机……”

三 嗅探器的安全防范

1、检测嗅探器。

检测嗅探器可以采用检测混杂模式网卡的工具。由于嗅探器需要将网络中入侵的网卡设置为混杂模式才能工作,能够检测混杂模式网卡的AntiSniff是一个工具。软件可以在http://www.l0pht.com/antisniff/下载,另外还有详细的使用说明。

证明你的网络有嗅探器有两条经验:

网络通讯丢包率非常高: 通过一些网管软件,可以看到信息包传送情况,最简单是ping命令。它会告诉你掉了百分之多少的包。如果你的网络结构正常,而又有20%-30%数据包丢失以致数据包无法顺畅的流到目的地。就有可能有人在监听,这是由于嗅探器拦截数据包导致的。

网络带宽出现反常:通过某些带宽控制器,可以实时看到目前网络带宽的分布情况,如果某台机器长时间的占用了较大的带宽,这台机器就有可能在监听。应该也可以察觉出网络通讯速度的变化。

对于SunOS、和其它BSD Unix系统可以使用lsof(该命令显示打开的文件)来检测嗅探器的存在。lsof的最初的设计目地并非为了防止嗅探器入侵,但因为在嗅探器入侵的系统中,嗅探器会打开其输出文件,并不断传送信息给该文件,这样该文件的内容就会越来越大。如果利用lsof发现有文件的内容不断的增大,我们就怀疑系统被嗅探。因为大多数嗅探器都会把截获的"TCP/IP"数据写入自己的输出文件中。这里可以用:ifconfig le0检查端口.然后用:

#/usr/sbin/lsof >test

#vi test 或 grep [打开的端口号]

检测文件大小的变化。

注意如果你确信有人接了嗅探器到自己的网络上,可以去找一些进行验证的工具。这种工具称为时域反射计量器(Time Domaio Reflectometer,TDR)。TDR对电磁波的传播和变化进行测量。将一个TDR连接到网络上,能够检测到未授权的获取网络数据的设备。不过很多中小公司没有这种价格昂贵的工具。

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

嗅探器非常难以被发现, 因为它们是被动的程序一个老练的攻击者可以轻易通过破坏日志文件来掩盖信息。它们并不会给别人留下进行核查的尾巴.。完全主动的解决方案很难找到,我们可以采用一些被动的防御措施:

安全的拓扑结构;

会话加密;

用静态的ARP或者IP-MAC对应表代替动态的。

安全的拓扑结构:

嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。但是,除非你的公司是一个ISP,或者资源相对不受限制,否则这样的解决方案需要很大的代价。网络分段需要昂贵的硬件设备。有三种网络设备是嗅探器不可能跨过的:交换机、路由器、网桥。我们可以通过灵活的运用这些设备来进行网络分段。大多数早期建立的内部网络都使用HUB集线器来连接多台工作站,这就为网络中数据的泛播(数据向所有工作站流通),让嗅探器能顺利地工作提供了便利。普通的嗅探器程序只是简单地进行数据的捕获,因此需要杜绝网络数据的泛播。 随着交换机的价格下降,网络改造变得可行且很必要了。不使用HUB而用交换机来连接网络,就能有效地避免数据进行泛播,也就是避免让一个工作站接收任何非与之相关的数据。 对网络进行分段,比如在交换机上设置VLAN,使得网络隔离不必要的数据传送。一般可以采用20个工作站为一组,这是一个比较合理的数字。然后,每个月人为地对每段进行检测(也可以每个月采用MD5随机地对某个段进行检测)。网络分段只适应于中小的网络。如果有一个500个工作站的网络,分布在50个以上的部门中,那么完全的分段的成本上是很高的。

会话加密:

会话加密提供了另外一种解决方案。不用特别地担心数据被嗅探,而是要想办法使得嗅探器不认识嗅探到的数据。这种方法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。S/key和其它一次性口令技术一样,使窃听帐号信息失去意义。S/key的原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个"挑战"(challenge)信息,用户将这个信息和口令经过某个算法运算,产生正确的"响应"(response)信息(如果通讯双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的"挑战/响应"也不会出现两次。S/key可从以下网址得到:ftp://thumper.bellcore.com/pub/nmh/skey。它的缺点是所有帐号信息都存放在一台主机中,如果该主机被入侵,则会危及整个网络安全。另外配置它也不是一件简单的事情。Kerberos包括流加密rlogind和流加密telnetd等,它可以防止入侵者捕获用户在登录完成后所进行的操作。 在加密时有两个主要的问题:一个是技术问题,一个是人为问题。

技术是指加密能力是否高。例如,64位的加密就可能不够,而且并不是所有的应用程序都集成了加密支持。而且,跨平台的加密方案还比较少见,一般只在一些特殊的应用之中才有。人为问题是指,有些用户可能不喜欢加密,他们觉得这太麻烦。用户可能开始会使用加密,但他们很少能够坚持下。总之我们必须寻找一种友好的媒介-使用支持强大这样的应用程序,还要具有一定的用户友好性。使用secure shell、secure copy或者IPV6协议都可以使得信息安全的传输。传统的网络服务程序,SMTP、HTTP、FTP、POP3和Telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,嗅探器非常容易就可以截获这些口令和数据.SSH的英文全称是Secure Shell。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间服务器"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的"通道"。SSH绑定在端口22上,其连接采用协商方式使用RSA加密。身份鉴别完成之后,后面的所有流量都使用IDEA进行加密。SSH(Secure Shell)程序可以通过网络登录到远程主机并执行命令。SSH的加密隧道保护的只是中间传输的安全性,使得任何通常的嗅探工具软件无法获取发送的内容。它提供了很强的安全验证可以在不安全的网络中进行安全的通信.所以它是防范嗅探器的一种方法。

用静态的ARP或者IP-MAC对应表代替动态的ARP或者IP-MAC对应表。

该措施主要是进行渗透嗅探的防范,采用诸如ARP欺骗手段能够让入侵者在交换网络中顺利完成嗅探。网络管理员需要对各种欺骗手段进行深入了解,比如嗅探中通常使用的ARP欺骗,主要是通过欺骗进行ARP动态缓存表的修改。在重要的主机或者工作站上设置静态的ARP对应表,比如win2K系统使用arp命令设置,在交换机上设置静态的IP-MAC对应表等,防止利用欺骗手段进行嗅探的手法。

除了以上三点另外还要重视重点区域的安全防范 。这里说的重点区域,主要是针对嗅探器的放置位置而言。入侵者要让嗅探器发挥较大功效,通常会把嗅探器放置在数据交汇集中区域,比如网关、交换机、路由器等附近,以便能够捕获更多的数据。因此,对于这些区域就应该加强防范,防止在这些区域存在嗅探器。

四 防范嗅探器应用案例

1、Linux下SSH安装

在www.ssh.com,下载最新版本软件包SSH2,最好下载源程序软件包自己进行编译。

# tar -zxvf ssh2-2.4.0.tar.gz
# cd ssh2-2.4.0
# ./configure ;# make ;#make install


这一过程实际上将服务器软件包及客户端软件一起安装了,不必再次安装客户端软件包。 安装程序将SSH2软件包安装在/usr/local/bin及/usr/local/sbin下。

2、配置

SSH的配置文件在/etc/ssh2下,其中包括sshd2的主机公钥和私钥:hostkey和hostkey.pub。这两个文件通常是在安装SSH时自动生成的。你可以通过下面的命令重新来生成它们:(而ssh2_config 文件一般情形下无需修改)

# rm /etc/ssh2/hostkey*
# ssh-keygen2 -P /etc/ssh2/hostkey


3、启动SSH服务器

在UNIX/Linux环境下,服务器程序放置在/usr/local/sbin目录下,启动方法如下:

# sshd

# ps x

如果不希望每次重启动系统,都要手工运行启动,在rc.local中加入一行/usr/local/sbin/sshd。


4、使用SSH

安装好ssh之后,我们可以很方便地在远程服务器上利用ssh获得一个shell。例如,假设我执行:

# ssh cjh@red.forge.net

首先看到系统提示输入密码,输入后我就在远程机器上获得了一个shell。从这里开始,ssh的会话过程和telnet会话相似。但SSH能够确信所有在我和服务器之间传输的数据都已经经过加密。如果你很熟悉rsh和它的选项,那么你很快就可以开始使用ssh。ssh被设计成和rsh具有相同的运作方式。一般情况下,能够用rsh作为传输端口的程序都允许用ssh来替代(例如rsync)。安全复制命令scp的用法也很简单,它的语法和cp的语法很相似。例如,要把my.php文件复制到cjh.org服务器,则我们使用如下命令:

# scp my.php cjh@cjh.org:/usr/local/apache/htdocs/

此时,我们将看到密码输入提示(正如ssh)。接下来,本地机器当前目录下的my.php文件被复制到cjh.org的/usr/local/apache/htdocs/,使用的登录名字是cjh。从使用上看,与Telnet没有什么不同之处。而且有了SSH客户端软件,如果你要上传文件,不必向以前一样再开一个FTP窗口,再次认证,然后上传文件。使用SSH客户端自带的scp工具,就可以直接将文件上传到远端服务器上。

scp命令是SSH中最方便有用的命令,如果告诉你在两台服务器之间直接传送文件,仅用scp-个命令就完全解决.你可以在一台服务器上以root身份运行:

#scp servername:/home/ftp/pub/file1./

这样就把另一台服务器上的文件/home/ftp/pub/file1直接传到本机器的当前目录下。

以上我们讲的是技术方面,对于网络的安全,管理显得格外重要。除网络管理员外其他人员禁止在网络中使用任何嗅探工具包括一些企业高级管理人员,是完全有必要的。这能从制度上明确限制一些工作站主动使用嗅探器的情况。

对于网络管理员来说更重要的是要建立安全意识,了解你的用户(系统管理员越熟悉自己的用户和用户的工作习惯,就越能快速发现不寻常的事件,而不寻常的事件往往意味着系统安全问题。)、定期检查你网络中的重点设备如服务器,交换机,路由器。最好配备一些专业工具比如前边介绍的TDR。网络管理员还要给用户提供安全服务。对用户要定期发送安全邮件,发送邮件是让用户具有安全意识。管理意识是提高安全性的另-个重要因素。如果用户的管理部门对安全要求不强烈,只靠系统管理员也不行。最好让管理部门建立一套每个人都必须遵守的安全标准,如果系统管理员在此基础再建立自己的安全规则,就强化了安全。管理有助于加强用户意识,让用户明确,信息是有价值的资产。系统管理员应当使安全保护方法对用户尽可能地简单,提供一些提高安全的工具。网络管理员要建立合理的用户痛苦量(痛苦量是指安全限制引起的抵制的函数),不能仅仅从技术上考虑问题,还要站在用户的观点上考虑。例如,我们能够想每次Macintosh用户登录时都使用S/Key吗?用户知道的关于安全的知识越多,网络安全就更有保障。

五 总结

嗅探器技术被广泛应用于网络维护和管理方面,它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,以便找出网络中的漏洞。在网络安全日益被注意的今天.我们不但要正确使用嗅探器.还要合理防范嗅探器的危害.嗅探器能够造成很大的安全危害,主要是因为它们不容易被发现。对于一个安全性要求很严格的企业,在使用技术防范的同时安全管理的制度建设也是非常重要的。

嗅探器技术并非尖端科技,只能说是安全领域的基础课题。对嗅探器技术的研究并不要求太多底层的知识,它并不神秘。实际上我们的一些网管软件,和一些网络测试仪都使用了嗅探器技术。只是许多计算机软件供应商对其一直讳莫如深。回避这个基本事实是不明智的。了解掌握它才是关键。这也笔者的写作动机。


                            特洛伊木马运行原理及防范措施

编者按 本文介绍了特洛伊木马的运行原理、行为特征及其危害,介绍了几种防范木马的基本方法与常用工具。

什么是特洛伊木马?

特洛伊木马,是一种基于远程控制的黑客工具。其本质上属于客户机/服务器应用程序,由两部分组成,一个是服务器端程序(服务端),一个是客户端程序(控制端)。如果你的电脑受到木马攻击,黑客便可通过客户端程序经由TCP/IP网络进入并远程控制你的微机。

木马的安装和启动

木马一般都以文件下载的方式下载传播,不知名的可执行程序和非正规网站上的一些安装程序都可能带有木马。只要一运行这些程序,木马就会自动安装。木马首先将自身拷贝到Windows的系统文件夹中,然后设置好触发条件,安装就完成了。木马是由其在安装过程中设定的触发条件启动的,启动木马的条件,大致出现在下面几个地方:

(1)WIN.INI C:\Windows目录下,用文本方式打开,在[windows]字段中有启动命令load=和run=,在一般情况下是空白的,如果有启动程序,可能是木马。

(2)SYSTEM.INI C:\Windows目录下,用文本方式打开,在[386Enh],[mic],[drivers32]中有命令行,在其中寻找木马的启动命令。

(3)*.INI 即应用程序的启动配置文件,这些文件能启动程序,把有木马启动命令的同名文件上传到服务端覆盖,就可以达到启动木马的目的。

一旦满足触发条件,木马就被激活,开启事先定义的木马端,准备与客户端建立连接。

木马的运行原理

如果木马只是被激活,而没有上网,木马是不会构成危害的。但是,你一旦上网,黑客便可通过客户端程序经由TCP/IP网络与在你的微机中运行的木马建立连接,从而窃取信息,控制机器。具体的连接过程如下图:

如图所示A机为控制端,B机为服务端,对于A机来说要与B机建立连接必须知道B机的木马端口和IP地址,由于木马端口是A机事先设定的,为已知项,所以最重要的是如何获得B机的IP地址。获得B机的IP 地址的方法主要有两种:信息反馈和IP扫描。所谓信息反馈是指木马成功安装后会收集一些服务端的软硬件信息,并通过E-Mail,IRC等方式告知控制端用户。另一种获取方法是IP扫描,因为B机装有木马程序,所以它的木马端口7626是处于开放状态的,A机只要扫描IP地址段中7626端口开放的主机就行了,例如图中B机的IP地址是202.102.47.56,当A机扫描到这个IP时发现它的7626端口是开放的,那么这个IP就会被添加到列表中。这时A机就可以通过木马的控制端程序向B机发出连接信号,B机中的木马程序收到信号后立即做出响应,A机收到响应的信号后,开启一个随机端口1031与B机的木马端口7626建立连接,这时一个木马连接真正建立。

木马连接建立后,控制端上的客户端程序与服务端上的木马程序取得联系,并通过木马程序对服务端进行远程控制:

(1) 窃取密码:一切以明文的形式,*形式或缓存在CACHE中的密码都能被木马侦测到。

(2)文件操作:控制端可藉由远程控制对服务端上的文件进行几近所有功能的操作。

(3)修改注册表:控制端可任意修改服务端注册表。

(4)系统操作:包括重启或关闭服务端操作系统,断开服务端网络连接,控制服务端的鼠标,键盘,监视服务端桌面操作,查看服务端进程等。


识别与清除木马

木马被激活后,进入内存,并开启事先定义的木马端口,准备与控制端建立连接。这时可以在MS-DOS方式下,键入NETSTAT -AN查看端口状态,一般电脑在脱机状态下是不会有端口开放的。如果有可疑的端口开放,你按照以下步骤进行:先记下这个端口号,然后打开ATM软件看内存中正在运行哪些软件,把这些软件名称和硬盘位置记下,然后终止某个程序运行,如果端口还是开放着,那继续终止下一个,直到端口不再开放,就也就找到了木马。

用手工判断端口的方法只能识别一部分木马,而且操作多有不便。因此,对付木马必须有几款上手的工具:

⑴tcpview 查看端口和线程的有力工具。

⑵ATM 在ATM界面上可以清楚地看到什么软件在运行,软件的硬盘位置等,对查找木马很有帮助。

(3)LockDown 被认为是最好的防御工具,能监视注册表的变化,删除很多木马。

 



木马运行示意图

(4)木马克星iparmor 可以查杀木马。内置木马防火墙,黑客试图与本机建立连接,都需要Iparmor 确认。

(5)杀毒软件 大部分杀毒软件都具有查杀木马的功能。

木马的预防

1.不要随便运行别人给你的程序,特别是exe可执行程序。

2.不要去不正规的站点去下载软件,因为,许多黑客将木马隐藏在软件的安装程序里。

3.启用防御工具LockDown ,它能随时监视注册表等文件的变化,并且对删除木马有帮助。

4.养成经常查杀木马的良好习惯,并留心升级最新的查杀木马的工具或杀毒软件。


posted on 2007-11-10 22:07  水冰月  阅读(636)  评论(0编辑  收藏  举报