第5章黑客攻击与防范5.1黑客攻击介绍5.1.1黑客与入侵者从严格意义上讲,黑客和入侵者是有区别的。黑客的行为没有恶意。“黑客”是英文“hacker”的译音,hacker(计算机窃贼)曾被人们用来描述计算机狂的代名词,hacker以计算机为生,是热衷于电脑程序的设计者,是对于任何计算机操作系统的奥秘都有强烈兴趣的人。黑客具有如下特点:他们大都是程序员,具有操作系统和编程语言方面的高级知识,知道系统中的漏洞及其原因所在;他们不断追求更深的知识,并公开他们的发现,与其他人分享;他们从来没有、也永远不会存心破坏数据。他们遵从的信念是:计算机是大众的工具、信息属于每个人、源代码应当共享、编码是艺术、计算机是有生命的。入侵者的行为具有恶意。入侵者是指那些强行闯入远端系统或者以某种恶意的目的干扰远端系统完整性的人。他们利用获得的非法访问权,破坏重要数据,拒绝合法用户服务请求,或为了达到自己的目的而制造一些麻烦。入侵者可能技术水平很高,也可能是个初学者。然而,在网络世界里,要想区分开谁是真正意义上的黑客,谁是真正意义上的入侵者并不容易,因为有些人可能既是黑客,也是入侵者。而且在大多数人的眼里,黑客就是入侵者。所以,在以后的讨论中不再区分黑客、入侵者,将他们视为同一类。5.1.2黑客攻击的目的黑客进行攻击总有一定的目的。为了能更好地对付可能的攻击,下面分析黑客攻击所要达到的目的。1.窃取信息黑客进行攻击,最直接、最明显的目的就是窃取信息。黑客可不只是为了逛庙,他们选定的攻击目标往往有许多重要的信息与数据,他们窃取了这些信息与数据之后,进行各种犯罪活动。政府、军事、邮电和金融网络是他们攻击的主要目标。随着计算机网络在政府、军事、金融、医疗卫生、交通、电力等各个领域发挥的作用越来越大,黑客的各种破坏活动也随之越来越猖獗。当然,窃取信息并不一定要把信息带走,比如对信息进行涂改和暴露。涂改信息包括对重要文件进行修改、更换和删除,经过这样的涂改,原来信息的性质就发生了变化,以至于不真实或者错误的信息给用户带来难以估量的损失,达到黑客进行破坏的目的。暴露信息是指黑客将窃取的重要信息发往公开的站点,由于公开站点常常会有许多人访问,其他的用户完全有可能得到这些信息,从而达到黑客扩散信息的目的,通常这些信息是隐私或机密。2.获取口令实际上,获取口令也属于窃取信息的一种。黑客攻击的目标是系统中的重要数据,因此黑客通过登上目标主机,或者使用网络监听程序进行攻击。监听到的信息可能含有非常重要的信息,比如是用户口令文件。口令是一个非常重要的数据,当黑客得到口令,便可以顺利地登到其他主机,或者去访问一些原本拒绝访问的资源。3.控制中间站点也有一些黑客在登上目标主机后,不是为了窃取信息,只是运行一些程序,这些程序可能是无害的,仅仅是消耗了一些系统的处理器时间。在一些情况下,黑客为了攻击一台主机,往往需要一个中间站点,以免暴露自己的真实所在。这样即使被发现了,也只能找到中间站点的地址,与己无关。还有另外一些情况,比如,有一个站点能够访问另一个严格受控的站点或者网络,这时,黑客往往把这个站点当作中间站点,先攻击该站点。4.获得超级用户权限黑客在攻击某一个系统时,都企图得到超级用户权限,这样他就可以完全隐藏自己的行踪;可在系统中埋伏下一个方便的后门;可以修改资源配置,为所欲为。当然,黑客的攻击目的也不止这些。由于黑客的成长经历和生活工作环境的不同,其攻击目的会多种多样,大致可归为以上几类。对黑客的攻击目的有了一个大致的了解后,用户可以在实际应用中有针对性的加以防范。下面讨论黑客进行攻击要经过哪些环节。5.1.3黑客攻击的3个阶段1.确定目标黑客进行攻击,首先要确定攻击的目标。比如,某个具有特殊意义的站点;某个可恶的ISP;具有敌对观点的宣传站点;解雇了黑客的单位的主页,等等。黑客也可能找到DNS(域名系统)表,通过DNS可以知道机器名、Internet地址、机器类型,甚至还可知道机器的属主和单位。攻击目标还可能是偶然看到的一个调制解调器的号码,或贴在机器旁边的使用者的名字。2.搜集与攻击目标相关的信息,并找出系统的安全漏洞信息收集的目的是为了进入所要攻击的目标网络的数据库。黑客会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息。SNMP协议:用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节。TraceRoute程序:能够用该程序获得到达目标主机所要经过的网络数和路由器数。Whois协议:该协议的服务信息能提供所有有关的DNS域和相关的管理参数。DNS服务器:该服务器提供了系统中可以访问的主机的IP地址表和它们所对应的主机名。Finger协议:用来获取一个指定主机上的所有用户的详细信息(如用户注册名、电话号码、最后注册时间以及他们有没有读邮件等等)。Ping实用程序:可以用来确定一个指定的主机的位置。自动Wardialing软件:可以向目标站点一次连续拨出大批电话号码,直到遇到某一正确的号码使其MODEM响应。在收集到攻击目标的一批网络信息之后,黑客会探测网络上的每台主机,以寻求该系统的安全漏洞或安全弱点,黑客可能使用下列方式自动扫描驻留在网络上的主机。自编程序:对于某些产品或者系统,已经发现了一些安全漏洞,该产品或系统的厂商或组织会提供一些“补丁”程序给予弥补。但是用户并不一定及时使用这些“补丁”程序。黑客发现这些“补丁”程序的接口后会自己编写程序,通过该接口进入目标系统。这时该目标系统对于黑客来讲就变得一览无余了。利用公开的工具:像Internet的电子安全扫描程序ISS(InternetSecurityScanner)、审计网络用的安全分析工具SATAN(SecurityAnalysisToolforAuditingNetwork)等。这样的工具可以对整个网络或子网进行扫描,寻找安全漏洞。这些工具有两面性,就看是什么人在使用它们。系统管理员可以使用它们,以帮助发现其管理的网络系统内部隐藏的安全漏洞,从而确定系统中哪些主机需要用“补丁”程序去堵塞漏洞。而黑客也可以利用这些工具,收集目标系统的信息,获取攻击目标系统的非法访问权。3.实施攻击黑客使用上述方法,收集或探测到一些“有用”信息之后,就可能会对目标系统实施攻击。黑客一旦获得了对攻击的目标系统的访问权后,又可能有下述多种选择:该黑客可能试图毁掉攻击入侵的痕迹,并在受到损害的系统上建立另外的新的安全漏洞或后门,以便在先前的攻击点被发现之后,继续访问这个系统。该黑客可能在目标系统中安装探测器软件,包括特洛伊木马程序,用来窥探所在系统的活动,收集黑客感兴趣的一切信息,如Telnet和FTP的账号名和口令等等。黑客可能进一步发现受损系统在网络中的信任等级,这样黑客就可以通过该系统信任级展开对整个系统的攻击。如果该黑客在这台受损系统上获得了特许访问权,那么它就可以读取邮件,搜索和盗窃私人文件,毁坏重要数据,从而破坏整个系统的信息,造成不堪设想的后果。攻击一个系统得手后,黑客往往不会就此罢手,他会在系统中寻找相关主机的可用信息,继续攻击其他系统。那么,黑客攻击会使用哪些工具呢?5.1.4黑客攻击手段实际上,黑客只需要一台计算机、一条电话线、一个调制解调器就可以远距离作案。除此以外,黑客还常常使用其他作案工具。例如:1.黑客往往使用扫描器一般情况下,大部分的网络入侵是从扫描开始的。黑客可以利用扫描工具找出目标主机上各种各样的漏洞来。但是,扫描器并不是一个直接的攻击网络漏洞的程序,它仅能帮助发现目标主机存在的某些弱点,而这些弱点可能是攻击目标的关键之所在。2.黑客经常利用一些别人使用过的并在安全领域广为人知的技术和工具。常言道:大洞不补,小洞吃苦。尽管有许多工具找到的系统漏洞已公布于众,但是,许多系统中这些漏洞仍然存在,并没有得到系统管理员的高度重视,这就给了黑客一个可乘之机。比如,在一个UNIX系统中,黑客利用已知的漏洞进行攻击,之后,又会在系统中设置大大小小的漏洞,为自己以后的再度光临大开方便之门。当然,系统管理员要想清理这些漏洞是很困难的,只能是重装系统了。3.黑客利用Internet站点上的有关文章在Internet成千上万的站点上有许多描述系统安全漏洞的文章,还有一些入侵者所作的文章极详尽地描述了这些技术,在这些文章里详细地讲述了如何完成某类攻击,甚至有相应的程序可用。4.黑客利用监听程序黑客将监听程序安装在UNIX服务器中,对登录进行监听,例如监听23、21等端口。一有用户登录,它就将监听到的用户名和口令保存起来,于是黑客就得到了帐号和口令。在网上有大量的监听程序可用。5.黑客利用网络工具进行侦察黑客攻击也使用系统常用的网络工具,比如,要登上目标主机,便使用telnet与rolign等命令对目标主机进行侦察,系统中有许多可以作为侦察的工具,如finger和showmount。6.黑客自己编写工具一些资深的黑客自己可以编写一些工具,比如监听程序等。另外,电脑病毒,如蠕虫病毒也可以成为网络攻击的工具。蠕虫虽然并不修改系统信息,但它极大地延缓了网络的速度,给人们带来了麻烦。黑客进行攻击的工具不止这些,比如使用特洛伊程序等,而且,黑客进攻的技术在不断提高,新的攻击工具还会出现。所以,对付黑客攻击的任务是很艰巨的,下面讨论对付黑客入侵的方式方法,以供借鉴。5.2黑客攻击常用工具5.2.1网络监听1.网络监听简介所谓网络监听就是获取在网络上传输的信息。通常,这种信息并不是特定发给自己计算机的。一般情况下,系统管理员为了有效地管理网络、诊断网络问题而进行网络监听。然而,黑客为了达到其不可告人的目的,也进行网络监听。目前,进行网络监听的工具有多种,既可以是硬件,也可以是软件,主要用来监视网络的状态、数据流动情况以及网络上传输的信息。不过,同样一种工具,不同的人使用,其发挥的作用就不同了。对于系统管理员来说,网络监听工具确实为他们监视网络的状态、数据流动情况和网络上传输的信息提供了可能。而对于黑客来说,网络监听工具却成了他们作案的工具:当信息以明文的形式在网络上传输时,黑客便可以使用网络监听的方式进行攻击,只要将网络接口设置在监听模式,便可以源源不断地将网上的信息截获。其实,对于监听,人们并不陌生:电话可以进行监听,无线电通信可以监听,同样,当数字信号在线路上传输时,也可以监听。接下来讨论网络监听的可能性。2.监听的可能性先来看表7-1。表5-1监听的可能性传输介质监听的可能性原因Ethernet高Ethernet网是一个广播型的网络。困扰着Internet的大多数包监听事件都是一些运行在一台计算机中的包监听程序的结果。这台计算机和其他计算机,一个网关或者路由器形成一个以太网。FDDIToken-ing较高尽管令牌网并不是一个广播型网络,但带有令牌的那些包在传输过程中,平均要经过网络上一半的计算机。不过高的数据传输率使监听变得困难一些。电话线中等电话线可以被一些电话公司协作人或者一些有机会在物理上访问到线路的人搭线窃听。在微波线路上的信息也会被截获。在实际中,高速的调制解调器将比低速的调制解调器搭线窃听困难一些,因为高速调制解调器中引入了许多频率。IP通过有线电视信道高许多已经开发出来的,使用有线电视信道发送IP数据包的系统依靠RF调制解调器。RF使用一个TV通道用于上行,一个用于下行。在这些线路上传输的信息没有加密,因此,可以被一些可以从物理上访问到TV电缆的人截听。微波和无线电高无线电本来就是一个广播型的传输媒介。任何有一个无线电接收机的人都可以截获那些传输的信息。从表中可以看出:不同的传输介质上,信息被监听的可能性不同。对于Ethernet而言,被监听的可能性之所以很高,是因为Ethernet是一个广播网,该网中的任意一台计算机都可以监听到所有的传输包;对于FDDIToken-ring呢,有较高的监听可能性,是由于报文在传输过程中要经过网络上一半的计算机,很可能被监听,但由于其数据传输率很高,监听相对困难一些;对于电话线、有线电视信道、微波和无线电的监听可能性,请读者细