




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章黑客原理与防范措施6.1计算机网络系统的缺陷与漏洞6.2网络监听6.3端口扫描6.4口令破解6.5特洛伊木马6.6缓冲区溢出及其攻击6.7黑客攻击的一般步骤及防范措施6.8入侵Windows NT的实例6.9远程入侵Windows 20006.10本章小结练习题在计算机网络安全领域里,现在已有越来越多的非法用户或敌对势力利用各种手段攻击计算机网络,计算机网络数据在存储和传输过程中可能被窃听、暴露或篡改,以及网络系统和应用软件也可能遭受黑客的恶意程序的攻击而使网络瘫痪,黑客攻击网络已成为造成网络不安全的主要原因。因此,为了提高计算机网络系统的安全性,必须了解计算机网络不安全的因素和黑客攻击
2、网络的方法,做到知彼知己,同时采取相应的防范措施。在本章中,将学习以下主要内容:网络系统的缺陷与漏洞;网络监听的原理和作用;端口扫描原理与作用;口令破解与防范;缓冲区溢出及其攻击;特洛伊木马;黑客进攻网络的方式和步骤;追踪黑客和对黑客的防范措施。6.1计算机网络系统的缺陷与漏洞计算机网络的开放性以及黑客的攻击是造成网络不安全的主要原因,而利用网络设计的缺陷是黑客能突破网络防护进入网络的主要手段之一。科学家在设计Internet之初就缺乏对安全性的总体构想和设计,所用的TCP/IP协议是建立在可信的环境之下,主要考虑的是网络互联,它缺乏对安全方面的考虑。这种基于地址的协议本身就会泄露口令。而且T
3、CP/IP协议是完全公开的;其远程访问的功能使许多攻击者无须到现场就能够得手;连接的主机基于互相信任的原则等这些性质使网络更加不安全。6.1.1 计算机网络的设计缺陷计算机网络的设计缺陷包括以下两方面的内容:(1) 物理结构的设计缺陷 局域网采用广播式网络结构,所有主机发送的信息,在同一个网络中的其他主机易监听;广域网和Internet上的中继设备(如路由器)可以监听所有网络之间转发的信息。(2) 网络系统的漏洞、协议的缺陷与后门一些网络协议(如TCP/IP协议)在实现上力求实效,而没有过多地考虑安全因素。网络操作系统过于庞大,存在致命的安全漏洞。网络公司为了达到某些目的,在系统中设有安全后门
4、也造成网络安全的隐患。1. 物理网络结构易被窃听计算机网络按通信信道类型分为广播式网络和点对点网络,这两种网络都存在不安全问题。(1) 广播式网络的安全问题当今大多数局域网采用以太网方式,以太网上的所有设备都连在以太网总线上,它们共享同一个通信通道。以太网采用的是广播方式的通信,广播式通信网络的特点是在该种通信子网中只有一个公共通信信道,为所有节点共享使用,任一时刻只允许一个节点使用公用信道。当一个节点利用公共通信信道发送数据时,必须携带目的地址,网络上所有的设备都能接收到每一个信息包,网络上的设备通常将接收到的所有包都传给主机界面,在这儿选择计算机要接收的信息(比如选择只有地址符合本站点的信
5、息包才接收),并将其他的过滤掉。以太网最有效传递的、最有意思的是目标主机硬件并不给发送者提供有关信息已收到的信息,比如即使目标计算机碰巧关机了,送给它的包自然就丢失,但发送者并不会知道这一点。很多网络包括Internet其实就是把无数的局域网相连起来形成大的网,然后再把大的网连成更大的网,虽然网络上的传输是点对点的,但一般网络上的主机会处于一个局域网中。例如,清华开放实验室是一个局域网,它连到了校园网,又连到了中国教育科研网(CERNET),中国教育科研网又连接到国外。局域网,如以太网、令牌网,都是广播型网络,也就是说一台主机发布消息,网上任何一台机器都可以收到这个消息。在一般情况下,以太网卡
6、在收到发往别人的消息时会自动丢弃消息,而不向上层传递消息。但以太网卡的接收模式可以设置成混合型(promiscuous),这样网卡就会捕捉所有的数据包中,并把这些数据包向上传递,这就是为什么以太网可以被窃听,其实FDDI、令牌网也存在这样的问题。现在人们经常谈论的ATM网络技术是点对点的,它不会像以太网的广播式样容易被窃听。 (2) 点对点网络的安全问题Internet和大部分广域网采用点对点方式通信,在该种类型网中,任何一段物理链路都惟一连接一对节点,如果不在同一段物理链路的一对节点要通信,必须通过其他节点进行分组转发。进行分组转发的节点就可以窃听。在Internet上的信息,容易被窃听和劫
7、获的另一个原因是,当某人用一台主机和国外的主机进行通信时,他们之间互相发送的数据包是经过很多机器(如路由器)重重转发的。例如,用户在清华开放实验室的一台主机上访问Hotmail主机,用户的数据包要经过开放实验室的路由器、清华校园网的路由器、中国教育科研网上的路由器,然后从中国教育科研网的总出口出国,再经过很多网络和路由器才能到达Hotmail主机。具体要经过多少主机、多少路由器和多少网络,用户可以用一个网络调试工具得到,这个工具就是Traceroute命令,在各种操作系统中都有,如Windows 95、Windows NT 和UNIX,名字上可能会有所差异,但功能和实现上是一样的。Intern
8、et的这种工作原理不仅节约了资源,而且简化了传输过程的实现,符合TCP/IP简单高效的宗旨,但这也给安全上带来了问题。当然用户不可能力求安全而放弃这种方法,因为这样做是不实际的,也是不必要的。用户所能做的应是意识到这种问题,并以其他办法来提高安全性,如采用加密的方法。再回到安全这个主题上来,当黑客使用一台处于用户的数据包传输路径上的主机时,他就可以窃听或劫持用户的数据包。例如,处于中国教育科研网出口的一台机器可以监听所有从这个网络出国的数据包。谈到安全问题,举一个简单的例子,就像有人用单位的总机窃听别人电话的事一样。在配有电话交换机的单位,单位里所有的电话都要经过单位的总机,如果总机并不是程控
9、的,而是人工接线的,那么接线员极易窃听别人的电话,这就有些类似刚才讲的网络窃听。网络窃听可能是出于好奇,也可能是出于恶意。现在越来越多的黑客不再是喜欢破坏公物的人,而是商业间谍,所以网络安全是把Internet真正推向商业化所必须要考虑和解决的问题。2. TCT/IP网络协议的设计缺陷网络通信的基础是协议,TCP/IP协议是目前国际上最流行的网络协议,该协议在实现上因力求实效,而没有考虑安全因素,因为如果考虑安全因素太多,将会增大代码量,从而会降低TCP/IP的运行效率,所以说TCP/IP本身在设计上就是不安全的。下面是现存的TCP/IP协议的一些安全缺陷:(1) 容易被窃听和欺骗在大多数In
10、ternet上的流量是没有加密的,如电子邮件口令、文件传输等很容易被监听和劫持,可以实现这些行为的工具很多,而且这些工具在网上是免费提供的。(2) 脆弱的TCP/IP服务很多基于TCP/IP的应用服务都在不同程度上存在着不安全的因素,这很容易被一些对TCP/IP十分了解的人所利用,一些新的处于测试阶段的服务存在有更多的安全缺陷。(3) 缺乏安全策略许多站点在网络及防火墙配置上无意识地扩大了其访问权限,忽视了这些权限可能会被内部人员滥用,黑客从一些服务中可以获得有用的信息,而网络维护人员却不知道应该禁止这种服务。(4) 配置的复杂性访问控制的配置一般十分复杂,所以很容易被错误配置,从而给黑客以可
11、乘之机。除上面的4个问题外,还有TCP/IP协议是被公布于世的,了解它的人越多,被人破坏的可能性也就越大。现在,银行之间在专用网上传输数据所用的协议都是保密的,这样就可以有效地防止入侵。对于UNIX和Windows NT等网络系统的安全问题,总体来说Windows NT要比UNIX安全,这并不是说Windows NT的没有安全问题和缺陷,而是因为Windows NT的源代码不公开,而UNIX的源代码是极易得到的。当然,人们不能把TCP/IP协议和其源代码保密,这样不利于TCP/IP网络的发展,但人们可以在其他方面采取一些措施来弥补它。 随着计算机网络的发展,计算机网络的功能和服务也越来越强,但
12、这也带来了很多安全问题,如像Windows NT这样的网络系统,代码庞大,安全漏洞多。而且由于系统本身不完善和“后门问题”,被黑客们利用以侵入网络,给网络的安全带来很多隐患。6.1.2 计算机网络系统的漏洞及漏洞等级我们经常说,某某系统存在大量漏洞,黑客利用漏洞攻击了系统。到底什么是漏洞?黑客是怎样利用漏洞攻击系统的?漏洞的危害性有多大?下面将讲述这些方面的内容。广义的漏洞是指非法用户未经授权获得访问或提高其访问层次的硬件或软件特征。漏洞就是某种形式的脆弱性。实际上漏洞可以是任何东西。许多用户非常熟悉的特殊的硬件或软件存在漏洞:IBM兼容机的CMOS口令在CMOS的电池供电不足、不能供电或被移
13、走造成CMOS口令丢失也是漏洞;操作系统、浏览器、TCP/IP、免费邮箱等也存在漏洞。每个平台无论是硬件还是软件都存在漏洞。网络漏洞主要是指网络产品或系统存在的缺陷给网络带来的不安全因素,产生的主要原因是设计网络产品或系统时考虑不周到。由于网络系统的复杂性,网络漏洞产生不可避免,现在主要做的是当发现网络漏洞后,应及时采取补救措施。根据网络漏洞或脆弱性给系统带来性危害的大小,漏洞可分:允许拒绝服务的漏洞(C类)、允许有限权限的本地用户未经授权提高其权限的漏洞(B类)、允许外来团体(在远程主机上)未经授权访问网络的漏洞(A类)等3级类型。1. 允许拒绝服务的漏洞(C类)允许拒绝访问的漏洞属于C类,
14、它不会破坏数据和使数据泄密,是不太重要的漏洞。黑客利用这类漏洞进行攻击几乎总是基于操作系统的。也就是说,这些漏洞存在于网络操作系统中。当存在这种漏洞时,必须通过软件开发者或销售商的弥补予以纠正。对于大的网络或站点,拒绝服务或攻击只是有限的影响,最多不过是使人心烦而已。然而对于小的站点,可能会受到拒绝服务的重创。特别对于站点只是一台单独的机器(单独的邮件或新闻服务器)更是如此。拒绝服务攻击是一类人或多人利用Internet的核心协议TCP/IP的某些缺陷产生大量数据阻塞网络、使服务器死机或因服务器负担过重使系统拒绝正常用户对系统信息进行合法的访问。TCP/IP协议的这一类缺陷主要有:(1) UD
15、P攻击UDP攻击的原理是使两个或两个以上的系统之间产生巨大的UDP数据包。首先使这两种UDP服务都产生输出,然后让这两种UDP服务之间互相通信,使一方的输出成为另一方的输入,在两个计算机之间产生了循环,这样会形成很大的数据流量。当多个系统之间互相产生UDP数据包时,最终将导致整个网络瘫痪。如果涉及的主机数目少,那么只有这几台主机会瘫痪。(2) TCP/SYN攻击TCP/SYN作为一种拒绝服务攻击存在的时间已经有20多年了,它是利用TCP/IP的连接建立时的漏洞进行攻击的,其原理简单介绍如下:当一台黑客计算机A要与另外一台主机B建立连接时,它的通信方式是先发一个SYN包告诉对方主机B说“我要和你
16、通信了”,当B收到时,就回复一个ACK/SYN确认请求包给A主机。如果A是合法地址,就会再回复一个ACK包给B主机,然后两台主机就可以建立一个通信渠道了。可是当黑客计算机A发出的包的源地址是一个虚假的IP地址或者可以说是实际上不存在的一个地址,于是主机B发出的那个ACK/SYN包当然就找不到目标地址了。如果这个ACK/SYN包一直没有找到目标地址,那么也就是目标主机无法获得对方回复的ACK包。而在默认超时的时间范围以内,主机的一部分资源要花在等待这个ACK包的响应上,假如短时间内主机A接到大量来自虚假IP地址的SYN包,它就要占用大量的资源来处理这些错误的等待,最后的结果就是系统资源耗尽以至瘫
17、痪。这种攻击方式也是分布式网络攻击(D.O.S)的攻击原理之一。(3) ICMP/PING攻击ICMP/PING攻击是利用一些系统不能接受超大的IP包或需要资源处理这一特性而进行的。ICMP协议是TCP/IP协议的重要组成部分,它主要是在网络上查询计算机的状态。但是在Windows 98下,ICMP协议不能接收大的IP包,如在Linux下输入Ping-t-l 66510 I P地址(未打补丁的Windows 95/Windows 98的计算机),计算机就会瘫痪。黑客可以编写程序,产生大量的进程,每个进程都不停地发送PING包,从而导致被攻击目标无法正常工作。(4) ICMP/SMURF攻击IC
18、MP/SMURF攻击利用的是网络广播的原理来发送大量的数据包,而包的源地址就是要攻击的计算机本身的地址,因此所有接收到此种数据包的主机都将给发包的地址发送一个ICMP回复包。例如,现在A主机要发动对B主机的SMURF攻击。A通过向某个网络的广播地址发送ICMP ECHO包,这些ICMP包的源地址即被伪造为B主机的IP地址。当这个广播地址的网段上的所有活动主机接收到该ICMP包时,将回送ICMP ECHO REPLAY包。由于ICMP ECHO包的源地址为B主机,所以如果能收到该广播包的计算机有500台,则B主机会接收到500个ICMP ECHO REPLAY包!(5) TARGA3攻击(IP堆
19、栈突破)TARGA3攻击的基本原理是发送TCP/UDP/ICMP的碎片包,其大小、标记、包数据等都是随机的。一些有漏洞的系统内核由于不能正确处理这些极端不规范的数据包,便会使其TCP/IP堆栈出现崩溃,从而导致无法继续响应网络请求(即拒绝服务)。还有其他形式的拒绝服务的攻击。某些拒绝服务攻击的实现针对个人而不是针对网络用户的。这种类型的攻击不涉及任何bug或漏洞而是利用WWW的基本设计。并非每个拒绝服务攻击都需要在Intemet发起。有许多在本地机甚至在没有网络环境的情况下也会发生的拒绝服务攻击。2. 允许本地用户非法访问的漏洞(B类)B类漏洞是允许本地用户获得增加的未授权的访问。这种漏洞一般
20、在多种平台的应用程序中发现。一个很好的例子是众所周知的Sendmail问题。Sendmail可能是世界上发送电子邮件最盛行的方法,它是Internet的Email系统的中心。这个程序一般在启动时作为例程初始化并且只要机器可用它就可用。在活动可用状态下,Sendmail(在端口25)侦听网络空间上的发送和请求。当Sendmail启动时,它一般要求检验用户的身份,只有root和与root相同权限的用户有权启动和维护Sendmai1程序。然而根据CERT咨询处的“Sendmail Daemon Vulnerability”报告:“很遗憾,由于一个代码错误,Sendmail则在例程模式下可以以一种绕过
21、潜入的方式激活。当绕过检查后,任何本地用户都可以在例程下启动Sendmail。另外在8.7版本中,在Sendmaill收到一个SIGHUP信号时会重新启动。它通过使用exec(2)系统调用重新执行自己来重新开始操作。重新执行作为root用户实现。通过控制Sendmail环境,用户可以用root权限让Sendmail运行一任意的程序。”因此,本地用户获得一种形式的root访问。这些漏洞是很常见的,差不多每月都发生一次。Sendmail以这些漏洞而出名,但却不是惟一的现象(也不是UNIX自身的问题)。像Sendmail这样的程序中的漏洞特别重要,因为这些程序对网上所有的用户都是可用的,所有用户都至
22、少有使用Sendmai1程序的基本权限,如果没有的话,他们没法发送邮件。因此Sendmail中的任何bug或漏洞都是十分危险的。B类漏洞惟一令人欣慰的是有较大的可能检查出入侵者,特别是在入侵者没有经验的情况下更是如此。如果系统管理员运行强有力的登录工具,入侵者还需要有较多的专业知识才能逃避检查。大多数B类漏洞产生的原因是由应用程序中的一些缺陷引起的。有些常见的编程错误导致这种漏洞的产生。如缓冲区的溢出,有关缓冲区的溢出的问题,将在后面的有关章节中介绍。3. 允许过程用户未经授权访问的漏洞(A类)A类漏洞是威胁性最大的一种漏洞。大多数的A类漏洞是由于较差的系统管理或设置有误造成的。典型的设置错误
23、(或设置失败)是网络系统提供的任何存放在驱动器上的例子脚本,即使在这些版本的系统文档中建议管理员删掉这些脚本,这种漏洞在网络上重现过无数次,包括那些在Web服务器版本中的文件。这些脚本有时会为来自网络空间的侵入者提供有限的访问权限甚至root的访问权限。如test_cgi文件的缺陷是允许来自网络空间的侵入者读取CGI目录下的文件。Novell平台的一种HTTP服务器含有一个称作Convert.bas的例子脚本。这个用BASIC编写的脚本,允许远程用户读取系统上的任何文件。A类漏洞涉及的不仅是一个文件,有时它与脚本的解释方法有关。例如,Microsoft的Internet信息服务器(IIS)包含
24、一个允许任何远程用户执行任意命令的漏洞。由于IIS将所有.bat或.cmd后缀的文件与cmd.exe程序联系起来,所以危害性很大。如Julian Assange(Strobe的作者)所解释的:“第一个Bug允许用户访问与wwwroot目录在同一分区的任何文件(认为IIS_user可以读此文件)。它也允许与脚本目录在同一分区的任意可执行文件的运行(认为IIS_user足以执行此文件)。如果cmd.exe文件能被执行,那么它也允许你执行任何命令,读取任意分区的任意文件(认为IIS_user可以读取并执行此文件)遗憾的是Netscape通信和Netscape商业服务器也都有相类似的Bug。对于Net
25、scape服务使用BAT或CMD文件作为CGI脚本则会发生类似的事情。”很自然,A类漏洞从外界对系统造成严重的威胁。在许多情况下,如果系统管理员只运行了很少日志的话,这些攻击可能会不被记录,使捉获更为困难。你会很容易看到为什么像扫描器这样的程序成为安全性的重要部分。扫描器的重要目的是检查这些漏洞。因此,尽管安全性程序员把这些漏洞包含进他们的程序中作为检查的选择,但他们经常是在攻击者几个月之后才这样做(某些漏洞,比如说允许拒绝服务的synflooding漏洞不容易弥补,系统管理员目前必须得学会在这些不尽人意的漏洞下工作)。使形势更为困难的是非UNIX平台的漏洞要花更多的时间才会表现出来。例如许多
26、NT/2000的系统管理员不运行重要的日志文件,因为报告漏洞,他们必须有漏洞存在的证据。另外,新的系统管理员(在IBM兼容机中,这样的管理员占很大比例)没有对文档和报告安全性事故做好准备。这意味着漏洞出现后,被测试、重建测试环境及最后加入到扫描器前的时间浪费了。6.2 网络监听网络监听是黑客在局域网或路由器上进行的一项黑客技术,他可以很容易地获得用户的密码和账号。网络监听原本是网络管理员使用的一个工具,主要用来监视网络的流量、状态、数据等信息。它对网络上流经自己网段的所有数据进行接收,从中发现用户的有用信息。网络监听的危害很大。首先,它接收所有的数据报文,这就使网络上的数据丢失,造成网络通信不
27、畅。其次,在计算机网络中,大量的数据是以明文传输的,如局域网上的FTP,Web等服务一般都是明文传输的。这样,黑客就很容易拿到用户名和密码,而且有许多用户为了记忆方便,在不同的服务上使用的用户名和密码都是一样的,这就意味着一些网络管理员的密码会被他人得到(太危险了)。另外,网络监听是采用被动的方式,它不与其他主机交换信息,也不修改密码,这就使对监听者的追踪变得十分困难。网络监听主要使用Sniffer(嗅探器),Sniffer是一种常用的收集有用数据的工具,这些数据可以是用户的账户和密码,也可以是一些商用机密数据等。6.2.1 网络监听Sniffer的工作原理通常,数据在网络上是以很小的称为“帧
28、”(又称包)的单位传输的,帧由多个部分组成,不同的部分对应不同的信息以实现相应的功能。例如,以太网的前12个字节存放的是源地址和目的地址,这些数据告诉网络该帧的来源和去处。其余则部分存放实际用户数据、TCP/IP的报头或IPX报头等。帧是根据通信所使用的协议,由网络驱动程序按照一定规则生成,然后通过网络接口卡(网络接口卡,在局域网中一般指网卡)发送到网络中,通过网线传送到它们的目的主机,在目的主机的一端按照同样的通信协议执行相反的过程。接收端计算机的网络接口卡捕获到这些帧,并告诉操作系统有新的帧到达,然后对其进行存储。在正常情况下,网络接口卡读入一帧并进行检查,如果帧中携带的目的地址(是指物理
29、地址而非IP地址,该地址是网络设备的惟一性标志)和自己的物理地址一致或者是广播地址(就是被设定为一次性发送到网络所有主机的特殊地址,当目标地址为该地址时,所有的网络接口卡都会接收该帧),网络接口卡通过产生一个硬件中断引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理,否则就将这个帧丢弃。可以想象到这样一种特别情况:将本地网络接口卡设置成promiscuous模式(“混杂”状态来实现),网络中某个网络接口卡的物理地址不能确定,该网络接口卡将会接收所有在网络中传输的帧,无论该帧是广播的还是发向某一指定地址的,这就形成了监听。如果某一台主机被设置成这种监听模式,它就成了一个Sniffer。
30、以太网sniffing 是指对以太网设备上传送的数据包进行侦听,发现感兴趣的包。如果发现符合条件的包,就把它存到一个log文件中去。通常设置的这些条件是包含字“username”或“password”的包。它的目的是将网络层放到Promiscuous模式上,进行网络数据帧的监听。Promiscuous模式是指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。当一个设备要向某一目标发送数据时,它是对以太网进行广播的。一个连到以太网总线上的设备在任何时间里都在接受数据。不过只是将属于自己的数据传给该计算机上的应用程序。利用这一点,可以将一台计算机的网络连接设置为接受所有以太网
31、总线上的数据,从而实现Sniffer。Sniffer通常运行在路由器上或有路由器功能的主机上。这样就能对大量的数据进行监控。Sniffer属第二层(数据链路层)的攻击。通常是攻击者已经进入了目标系统,然后使用sniffer这种攻击手段,以便得到更多的信息。sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个其他重要的信息,在网上传送的金融信息等等。sniffer几乎能得到任何在以太网上传送的数据包。有许多运行于不同平台上的sniffer程序: 如Linux tcpdump,DOS ETHLOAD,The Gobbler,LanPatrol,LanWatch,Netmon,N
32、etwatch,Netzhack等。这些程序,可以从Internet上找到。使用sniffer程序或编写一个功能强大的sniffer程序需要一些网络方面的知识。因为如果没有恰当的设置这个程序,根本就不能从大量的数据中找出需要的信息。通常sniffer程序只看一个数据包的前200300个字节的数据,就能发现想要的口令和用户名这样的信息。6.2.2 怎样在一个网络上发现一个Sniffer网络监听是采用被动的方式,它不与其他主机交换信息,也不修改密码,这就使对监听者的追踪变得十分困难,因为他们根本就没有留下任何痕迹。一个主要的办法是看看计算机上当前正在运行的所有程序,这通常并不可靠,但用户能控制哪个
33、程序可以在计算机上运行。在Windows系统下,按下Ctrl+Alt+Del,看一下任务列表。不过,编程技巧高的Sniffer即使正在运行,也不会出现在这里的。另一个方法就是在系统中搜索,查找可怀疑的文件。但可能入侵者用的是他们自己写的程序,所以都给发现Sniffer造成相当大的困难。还有许多工具,能用来看看系统会不会工作在promiscuous模式,从而发现是否有sniffer程序在运行。最近,Internet网络上介绍了一种发现网络监听者的新方法,它的原理是当一台主机处于监听状态时,由于要接收网络上所有数据帧,会负担很重,例如,网卡处于promiscuous模式,对于TCP/IP协议中的I
34、GMP、ARP等协议没有反应(不同的系统有不同的反应或反应很慢),通过对这些的测试就可以知道对方的主机状态,从而发现监听者。现在实现这项功能的Antisniff程序已被开发出来,感兴趣的读者可从Internet上下载。6.2.3 怎样防止被Sniffer要防止Sniffer并不困难,有许多可以选用的方法,但关键是需要增加开销。用户最关心的是一些比较敏感的数据的安全,如用户ID或口令等。有些数据是没有经过处理的,一旦被Sniffer,就能获得这些信息。解决这些问题的办法是加密。加密一般采用SSH,SSH又叫Secure Shell,是一个在应用程序中提供安全通信的协议。它是建立在客户机/服务器模
35、型上的。SSH服务器的分配端口是22。连接是通过使用一种来自RSA的算法建立的。在授权完成后,接下来的通信数据是用IDEA技术来加密的。这通常是较强的,适合于任何非秘密和非经典的通讯。SSH后来发展成为F-SSH,提供了高层次的军方级别的对通信过程的加密。它为通过TCP/IP网络通信提供了通用的最强的加密。如果某个站点使用F-SSH,用户名和口令就变得不是很重要了。目前,还没有人突破过这种加密方法。即使是sniffer,收集到的信息将不再有价值。当然最关键的是怎样使用SSH和F-SSH加密方法。SSH和F-SSH都有商业或自由软件版本存在:NT are available。另一个比较容易接受的
36、防止监听的方法是使用安全的网络拓扑结构。有一种智力游戏,它通常由一系列数字组成。游戏的目的是要安排好数字,用最少的步骤,把它们按递减顺序排好。处理网络拓扑结构就和玩这个游戏一样。下面是一些规则。一个网络段必须有足够的理由才能信任另一网络段。网络段应该在考虑的数据之间的信任关系上来设计,而不是按网络硬件需要来建立。一个网络段是仅由能互相信任的计算机组成的,通常它们在同一个房间里或在同一个办公室里。比如财务信息,应该固定在建筑的某一部分里。注意:每台机器是通过硬连接线接到Hub上,Hub再接到交换机上。由于网络分段了,数据包只能在这个网段上Sniffer,其余的网段将不可能被Sniffer。所有的
37、问题都归结到信任上面,计算机为了和其他计算机进行通信,它就必须信任那台计算机。作为系统管理员的工作是构造一个策略,使得计算机之间的信任关系很小。这样就建立了一种框架,告诉自己什么时候放置了一个Sniffer,它放在哪里了,是谁放的等等。如果局域网要和Internet相连,仅仅使用防火墙是不够的。入侵者已经能从一个防火墙后面扫描,并探测正在运行的服务。要关心的是一旦入侵者进入系统,能得到些什么。必须考虑一条这样的路径,即信任关系有多长。举个例子,假设你的Web服务器对某一计算机A是信任的,那么有多少计算机是A信任的呢?又有多少计算机是受这些计算机信任的呢?用一句话概括就是确定最小信任关系的那台计
38、算机。在信任关系中,这台计算机之前的任何一台计算机都可能对你的计算机进行攻击并成功。你的任务就是保证一旦出现的Sniffer,它只对最小范围有效。 Sniffer往往是攻击者在侵入系统后使用的,用来收集有用的信息。因此,防止系统被突破是关键。系统安全管理员要定期的对所管理的网络进行安全测试,防止出现安全隐患。同时要控制拥有相当权限的用户的数量。请记住,许多攻击往往来自网络内部。6.3 端口扫描在TCP/IP网络协议中有一个重要的概念“端口”,它是为运行在计算机上的各种服务提供的服务端口,计算机通过端口进行通信和提供服务。在计算机网络中,每个特定的服务都在特定的端口侦听,当用户有数据到达,计算机
39、检查数据包中的端口号,再根据端口号将它发向特定的端口,在这个特定端口侦听的服务就是接收数据,再把数据提供给网络的上一层(网络应用层)。例如要发送一封E-mail给远方的邮件服务器,那么数据就会带上E-mail服务的端口号“25”,然后传递到目的服务器。这时目的服务器上的邮件服务进程正在“25”号端口进行侦听,它看到有数据到达,就把数据接收下来,传给应用层。每个服务协议都有自己的端口号,如FTP协议的端口号为“21”,WWW协议的端口号为“80”等。一个端口就是一个潜在的通信通道,也就是一个入侵通道。6.3.1 什么是端口扫描端口扫描就是利用某种程序自动依次检测目标计算机上的所有端口,根据端口的
40、响应情况判断端口上运行的服务。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。6.3.2 手工扫描在进行手工扫描时,需要熟悉各种命令,对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。下面首先介绍几个常用网络命令,对端口扫描原理进行介绍。 1. Ping命令Ping命令经常用来对TCP/IP网络进行诊断。通过对目标计算机发送一个数据包,让它将这个数据包反送回来,如果返回的数据包和发送的数据包一致,那就是说你的PING命令成功了。通过这
41、样对返回的数据进行分析,就能判断计算机是否开着,或者这个数据包从发送到返回需要多少时间。Ping命令的基本格式:ping hostname 其中hostname是目标计算机的地址。Ping还有许多高级使用,下面就是一个例子:C: ping -f hostname 这条命令给目标机器发送了大量的数据,从而使目标计算机忙于回应。在使用Windows 95的计算机上,使用下面的方法:C:windowsping -l 65510 这样做了之后,目标计算机有可能会挂起来或从新启动。由于使用-l 65510 选项会使系统产生一个巨大的数据包。由于要求对方的主机返回一个同样大小的数据包,因而会使目标计算机反
42、应不过来。2. Tracert命令Tracert命令用来跟踪一个消息从一台计算机到另一台计算机所走的路径,比方说从你的计算机走到浙江信息超市。在DOS窗口下,命令如下:C:WINDOWStracert Tracing route to over a maximum of 30 hops1 84 ms 82 ms 95 ms 72 * 100 ms 95 ms 0fa1.1-rtr1-a-hz1.zj.CN.NET 33 95 ms 90 ms * 4 90 ms 90 ms 90 ms 85 95 ms 90 ms 99 ms 6 90 ms 95 ms 100 ms Trace comple
43、te.上面的这些输出代表什么意思?最左边的数字是该路由通过的计算机数目,如1。84 ms是指向那台计算机发送消息的往返时间,单位是ms。由于每条消息每次的来回的时间不一样,tracert将显示来回时间3次。*表示来回时间太长,tracert将这个时间“忘掉了”。在时间信息到来后,计算机的名字信息也到了,如“7”。开始是一种便于人们阅读的域名格式,如“0fa1.1-rtr1-a-hz1.zj.CN.NET”,接着是数字格式,如“3”。3. host命令host是一个UNIX命令,它的功能和标准的nslookup查询一样。惟一的区别是host命令比较容易理解。host命令的危险性相当大,下面举个使
44、用实例,演示一次对的host查询。host -l -v -t any 这个命令的执行结果所得到的信息十分多,包括操作系统、机器和网络的很多数据。先看一下基本信息:Found 1 addresses for BU.EDU Found 1 addresses for NSEGC.BU.EDUTrying 86400 IN SOA BU.EDU HOSTMASTER.BU.EDU 86400 IN NS SOFTWARE.BU.EDU 86400 IN A 这些信息本身并没有危险,只是一些机器和它们的DNS服务器的名字。这些信息可以用
45、WHOIS或在注册域名的站点中检索到。但看看下面几行信息: 86400 IN HINFO SUN-SPARCSTATION-10/41 UNIX ODIE. 86400 IN HINFO DEC-ALPHA-3000/300LX OSF1从这里,马上就会发现一台DEC Alpha运行的是OSF1操作系统。再看看:STRAUSS. 86400 IN HINFO PC-PENTIUM DOS/WINDOWSBURULLUS. 86400 IN HINFO SUN-3/50 UNIX (Ouch)GEORGETOWN. 86400 IN H
46、INFO MACINTOSH MAC-OSCABMAC. 86400 IN HINFO MACINTOSH MAC-OSVIDUAL. 86400 IN HINFO SGI-INDY IRIXBUPHYC. 86400 IN HINFO VAX-4000/300 OpenVMS可见,任何人都能通过在命令行里键入一个命令,就能收集到一个域里的所有计算机的重要信息。而且只花了3s的时间。利用上述有用的网络命令,可以收集到许多有用的信息。例如,一个域里的名字服务器的地址;一台计算机上的用户名;一台服务器上正在运行什么的服务;这个服务是由哪个软件提供的;计算机上运行
47、的是什么操作系统等。6.3.3 使用端口软件扫描 1. 什么是扫描器检测网络系统所采用的自动检测程序被称为扫描器,即扫描器是一种自动检测远程或本地主机安全性弱点的程序。通过使用扫描器,可以不留痕迹地发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本,这就能间接地或直观地了解到远程主机所存在的安全问题。对黑客来讲,扫描器可以说是他们的基本武器,一个好的TCP端口扫描器相当于几百个合法用户的口令及密码。而对管理员来讲,扫描器同样具备了检查漏洞、提高安全性的重要作用。2. 扫描器工作原理扫描器通过选用远程TC/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于
48、目标主机的各种有用的信息。例如,是否能用匿名登录,是否有可写的FTP目录,是否能用TELNET。3. 扫描器的功能扫描器并不是一个直接的攻击网络漏洞的程序,它不同于许多攻击软件!它仅仅能帮助发现目标机的某些内在的弱点,而这些现存的弱点可能是破坏目标机安全的关键。虽然对于一个刚刚入门的黑客来说,这些数据对他来说无疑是一个毫无价值的数据集合。但是,对一个掌握和精通各种网络应用程序的漏洞的黑客来说,这就不仅仅是一个简单的数据集合,它的价值远远超过几百个有用的账号。4. 扫描器的分类扫描器按对象的不同可以分为本地扫描器和远程扫描器。对黑客来讲使用得更多的是远程扫描器,远程扫描器也可以用来扫描本地主机。
49、如果按照扫描的目的来分类,可以分为端口扫描器和漏洞扫描器。端口扫描器知识单纯地用来扫描目标机开放的服务端口以及与端口相关的信息。常见的端口扫描器有nmap、portscan等,这类扫描器并不能给出直接可以利用的漏洞,而是给出与突破系统相关的信息。这些信息对于普通人来说也许是极为平常的,丝毫不能对安全造成威胁,但一旦到了黑客的手里,它们就成为突破系统所必须的关键信息。与端口扫描相比,漏洞扫描器更为直接,它检查扫描目标中可能包含的大量已知的漏洞,如果发现潜在的漏洞可能性,就报告给扫描者。这种扫描器的威胁性极大,因为黑客可以利用扫描少的结果进行攻击。如前所述,使用端口扫描的目的是要得到目标计算机的操
50、作系统、服务和应用程序的情况。如果知道目标计算机上运行的操作系统、服务和应用程序后,就能利用已经发现的他们的漏洞来进行攻击。如果目标计算机的网络管理员没有对这些漏洞及时修补的话,入侵者能轻而易举的闯入该系统,获得管理员权限,并留下后门。如果入侵者得到目标计算机上的用户名后,能使用口令破解软件,多次试图登录目标计算机。经过尝试后,就有可能进入目标计算机。得到了用户名,就等于得到了一半进入系统的权限,剩下的只是使用软件进行攻击而已。6.3.4 预防端口扫描预防端口扫描的检测是一个大的难题,因为每个网站的服务都是公开的,用户必须对所有的请求进行响应,所以一般无法判断是否有人在扫描自己的端口。但是根据
51、端口扫描的原理,扫描器一般都是自动扫描的,它只是查看端口是否开通,然后在列表中查出相应端口的服务即可。因此,用户可以把服务开在其他端口上,如Microsoft的IIS服务器上,就可以将HTTP服务固定的80端口改为其他端口。另外,有些软件还可以在一些端口上欺骗黑客,读者不妨试试。6.4口令破解口令认证是计算机网络安全的主要组成部分之一,目前各种网络环境都利用口令认证机制管理用户入网。口令对于网络用户来说非常重要,如果一个用户(特别是超级用户)的密码丢失或被破解,网络系统将会遭受不可估量的损失。口令的防护是至关重要的,它也是黑客攻击的重要目标之一。6.4.1 用户的登录口令认证机制一般比较安全的
52、计算机网络系统要求每个用户使用惟一的用户名和口令登录到计算机上,这种登录过程不能关闭。用户登录过程是:计算机网络系统在用户登录前,可以看到屏幕上显示一个登录框,提示用户登录网络系统。实际上,计算机网络系统中有一个登录进程,负责登录认证工作,首先要求用户在登录框输入账户名及口令。登录进程收到用户输入的账户和口令后,就查找安全账户数据库中的信息。如果账户及口令无效,则用户的登录企图被拒绝;如果账户及口令有效,系统将检查该用户的权限,用户就可以入网,根据自己的权限使用网络中的资源。6.4.2 口令破解的方法黑客攻击网络时常常把破译普通用户的口令作为攻击的开始。他先用扫描工具,如“finger”协议找
53、出网络中主机上的用户账号,然后就采用字典穷举法生成大量的随机密码,一种方法是利用这些密码登录用户的系统,如果密码不对,他就使用下一个随机密码,直到密码被查出为止。另外一种方法是利用系统的漏洞获取系统安全账户文件,采用口令破解器进行破解。采用前一种方法进行密码猜测的步骤是依据下列假设:网络上的用户常采用一个英语单词或自己的姓氏作为口令。通过一些程序,自动地从计算机字典中取出一个单词,作为用户的口令输入给远端的主机,申请进入系统。若口令错误,就按序取出下一个单词,进行下一个尝试。并一直循环下去,直到找到正确的口令或字典的单词试完为止。由于这个破译过程由计算机程序来自动完成,而现代的个人计算机性能十
54、分优越,几个小时就可以把字典的所有单词都试一遍。所以黑客只要有一个好的字典、一个性能卓越的个人计算机和高速网络带宽就很容易进行口令猜测攻击了。若这种方法不能奏效,黑客再仔细寻找目标的薄弱环节和漏洞,伺机夺取目标中存放口令的文件,也就是利用口令破解器进行破解。6.4.3 口令破解器口令破解器是一个程序,它能将口令解译出来或者让口令保护失效。口令破解器一般并不是真正地去解码,因为事实上很多加密算法是不可逆的。也就是说,光是从被加密的数据和加密算法,不可能从它们身上反解出原来未加密的数据。其实大多数口令破解器是通过尝试一个一个的单词,用知道的加密算法来加密这些单词,直到发现一个单词经过加密后的结果和
55、要解密的数据一样,就认为这个单词就是要找的密码了。这就是目前最有效的方法。这种方法之所以比想象的有效得多的原因如下所述。许多人在选择密码时,技巧性都不是很好。许多人还认为他的私人数据反正没有放在网上,所以密码选择也比较随便。其实一个用户在一个系统里有一个账户,就是一个通入系统的门。如果其中一个密码不安全,则整个系统也就是不安全的。由于用户密码的设置往往都是一些有意义的单词或者干脆就是用户名本身,使得破解器的尝试次数大为降低。许多加密算法在选择密钥时,都是通过随机数算法产生的。但往往由于这个随机数算法并不是真正意义上的随机数,从而大大降低了这个随机性,从而为解密提供了一些列的方便。例如,本来需要
56、尝试1 000次,但由于上述随机性并不好,结果使得只需尝试100次就能成功。以Linux为例,让我们把Linux口令的可能值统计一下:Linux一共是0 x000 xff共128个字符,小于0 x20的都算是控制符,不能输入为口令,0 x7f为转义符,不能输入。那么总共有128-32-195个字符可作为口令使用的字符。也就是10(数字)十33(标点符号)+262(大小写字母)95个字母可以作为口令输入。如果Password取任意5个字母十1位数字或符号(按顺序)可能性是52525252524316,348,773,000(163亿种可能性)。但如果5个字母是一个常用词,估算一下设常用词5000
57、条,从5000个常用词中取一个词与任意一个字符组合成口令,即5000(22222)(大小写)436,880,000(688万种可能性)。但这已经可以用计算机进行穷举了,在Pentium 200上每秒可算3,4万次,像这样简单的口令要不了3分钟。如果有人用P200计算机算上一周,将可进行200亿次攻击,所以6位口令是很不可靠的,至少要用7位。可惜很多用户确实是这样设passwd(密码)的,以上只是常见的一种情况,实际情况还要复杂,主要是根据用户设置口令格式的变化而变化。那些Hacker并不需要所有人的口令,他们得到几个用户口令就能获取系统的控制权,所以设置口令过于简单就是对系统安全不负责任。注意
58、,实际情况下绝大多数人都只用小写字符,可能性还要小。另外,许多人的口令设置是把用户名和密码写成一样,这就更加增添了口令的不安全性。我们在进行口令猜测时,就多次遇到过这样的情况。还有一个原因是目前计算机的速度相当的快,而且由于互联网的存在,使得协同进行解密的可能性大为增加。这样强的计算能力用到解密上,造成了破解的时间大为降低。通过上述分析,可见,从理论上讲,任何密码都是可以破解的,只是一个时间迟早的问题。对于一些安全性较低的系统,速度通常很快。对于那种需要一个口令或注册码才能安装软件的情况,口令破解会显得更为简单。这种情况可能会经常遇到。例如,安装一个微软的软件,在安装过程中通常需要输入一个CD
59、-Key,如果这个CD-Key是正确的,那么它就开始安装。如果是非法的,那么就退出安装。通常有以下两种方法可以使这种方式失效。一种是修改安装程序。因为这种方法的流程一般是在安装的时候先弹出一个对话框,请求输入CD-Key。接着程序会对输入的CD-Key进行运算,最后根据得到的结果决定是继续安装还是退出。现在有很多调试软件,它们提供丰富的调试功能,如单步执行,设置断点等。一个比较好的软件是Soft-ICE。在运行安装程序之前,可以在调试软件里设置在系统弹出CD-Key输入对话框的时候停止执行。接着就可以用调试器跟踪代码的执行,将CD-Key判断部分整个的跳过去,直接进入安装程序。另一种方法就是算
60、法尝试。由于安装程序要对CD-Key进行运算,判断其合法性。因此,只要知道CD-Key的算法,就能轻而易举的进入。已经有人对微软的这种算法进行了探讨,发现这些算法策略都很简单。6.4.4 口令破解器是怎样工作的要知道口令破解器是如何工作的,主要还是要知道计算机网络系统的认证加密算法。正如上面所说的,许多口令破解器是对某些单词先进行加密,然后再进行比较。候选口令产生器的作用是产生认为可能是密码的单词。通常有好几种方法产生候选密码。一种是从一个字典里读取一个单词。这种方法的理论根据是许多用户由于取密码有些不是很明智,例如,将自己的名字、用户名或者一个好记住的单词等。所以,攻击时通常都将这些单词收集
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 窗帘行业品牌形象塑造与传播考核试卷
- 粮油企业生产流程标准化与质量控制考核试卷
- 木地板品牌国际化战略与市场拓展考核试卷
- 弹射玩具产品创新设计思路与方法考核试卷
- 砼结构构件的预制件疲劳试验考核试卷
- 纺织品的耐磨性与强度分析考核试卷
- 半导体照明器件的环境适应性测试标准考核试卷
- 线上线下融合的卫浴零售模式探索考核试卷
- 天津城建大学《形势与政策(5)》2023-2024学年第二学期期末试卷
- 三门峡职业技术学院《基本乐理专业理论教学》2023-2024学年第二学期期末试卷
- 丰田锋兰达说明书
- 2023年东莞市人民医院医师规范化培训招生(放射科)考试参考题库含答案
- 2022年甘肃省张掖市辅警协警笔试笔试模拟考试(含答案)
- 勾头作业施工方案
- 中医医院重症医学科建设与管理指南
- 创伤性网胃炎
- LY/T 1556-2000公益林与商品林分类技术指标
- GB/T 3522-1983优质碳素结构钢冷轧钢带
- 主要电气设备绝缘电阻检查记录
- 探析小学数学作业分层设计与评价获奖科研报告
- 2023年陕西高考理科数学试题
评论
0/150
提交评论