1、第二部分 攻击与防护,第5章 黑客入侵技术 第6章 病毒原理 第7章 防火墙技术 第8章 入侵检测技术,第5章 黑客入侵技术,5.1 一般的常用入侵方法 5.2 网络攻击的一般步骤 5.3 扫描技术,5.1 一般的常用入侵技术,1口令入侵所谓口令入侵,就是指用一些软件解开已经得到但被人加密的口令文档,不过许多黑客已大量采用一种可以绕开或屏蔽口令保护的程序来完成这项工作。对于那些可以解开或屏蔽口令保护的程序通常被称为“Crack”。由于这些软件的广为流传,使得入侵电脑网络系统有时变得相当简单,一般不需要很深入地了解系统的内部结构就可侵入。,破解密码的工具: John the Ripper 简单;
2、 字典;穷举模式 Windows系统:Pwdump,L0phtCrack 流光IV:远程在线破解 字典+扫描,5.1 一般的常用入侵技术,2特洛伊木马术 特洛伊木马最典型的做法是把一个能帮助黑客完成某一特定动作的程序依附在某一合法用户的正常程序中,这时合法用户的程序代码已被改变。一旦用户触发该程序,那么依附在内的黑客指令代码同时被激活,这些代码往往能完成黑客指定的任务。由于这种入侵法需要黑客有很好的编程经验,且要更改代码,要一定的权限,因此较难掌握。但正因为它的复杂性,一般的系统管理员很难发现。,特洛伊木马是指黑客用来远程控制目标计算机的特殊程序。凡是非法驻留在目标计算机里,并执行预定的操作,
3、窃取目标的私有信息,都属于特洛伊木马。,5.1 一般的常用入侵技术,3监听法 网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接收方是谁。此时,如果两台主机进行通信的信息没有加密,只要使用某些网络监听工具,例如NetXray for Windows 95/98/NT,sniffit for linux、solaries等就可以轻而易举地截取包括口令和账号在内的信息资料。虽然网络监听获得的用户账号和口令具有一定的局限性,但监听者往往能够获得其所在网段的所有用户账号及口令。,5.1 一般的常用入侵技术,4E-mail技术 电
4、子邮件攻击主要表现为两种方式,一是电子邮件轰炸(电子邮件“滚雪球”),也就是通常所说的邮件炸弹,指的是用伪造的IP地址和电子邮件地址向同一信箱发送数以千计、万计甚至无穷多次的内容相同的垃圾邮件,致使受害人邮箱被“炸”,严重者可能会给电子邮件服务器操作系统带来危险,甚至瘫痪;二是电子邮件欺骗,如攻击者佯称自己为系统管理员(邮件地址和系统管理员完全相同),给用户发送邮件要求用户修改口令(口令可能为指定字符串)或在貌似正常的附件中加载病毒或其他木马程序,这类欺骗只要用户提高警惕,一般危害性不是太大。,5.1 一般的常用入侵技术,5利用系统漏洞许多系统都有这样或那样的安全漏洞(bugs),其中某些是操
5、作系统或应用软件本身具有的,如sendmail漏洞、Win98中的共享目录密码验证漏洞和IE5浏览器漏洞等,这些漏洞在补丁未被开发出来之前一般很难防御黑客的破坏;还有一些漏洞是由于系统管理员配置错误引起的,如在网络文件系统中,将目录和文件以可写的方式共享,将未加shadow的用户密码文件以明码方式存放在某一目录下,这都会给黑客带来可乘之机,应及时加以修正。,漏洞是指硬件、软件或策略上的缺陷,从而可使攻击者能够在未经授权的情况下访问系统。,系统攻击者往往是安全漏洞的发现者和使用者,5.1 一般的常用入侵技术,6 www欺骗技术(钓鱼网站)“钓鱼网站”近来在全球频繁出现,严重地影响了在线金融服务、
6、电子商务的发展,危害公众利益,影响公众应用互联网的信心。黑客将用户要浏览的网页链接地址指向黑客自己的服务器,当用户浏览目标网页的时候,实际上是向黑客发出请求,那么黑客就可以达到欺骗的目的了。最典型的网络钓鱼攻击将收信人引诱到一个通过精心设计与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息,通常这个攻击过程不会让受害者警觉。,5.2 网络攻击的一般步骤,1攻击的准备阶段 1) 确定攻击的目的 攻击者在进行一次完整的攻击之前首先要确定攻击要达到什么样的目的,即给对方造成什么样的后果。常见的攻击目的有破坏型和入侵型两种。破坏型攻击指的是破坏攻击目标,使其不能正常工作,而
7、不是随意控制目标系统的运行。要达到破坏型攻击的目的,主要的手段是拒绝服务攻击DoS(Denial of Service)。,5.2 网络攻击的一般步骤,1攻击的准备阶段 1) 确定攻击的目的 攻击者在进行一次完整的攻击之前首先要确定攻击要达到什么样的目的,即给对方造成什么样的后果。常见的攻击目的有破坏型和入侵型两种。入侵攻击目标是要获得一定的权限来达到控制攻击目标的目的。此类攻击一般是利用服务器操作系统、应用软件或者网络协议存在的漏洞进行的。还有一种是密码泄露,攻击者靠猜测或者穷举法来得到服务器用户的密码,然后就可以用管理员的身份对服务器进行访问。,5.2 网络攻击的一般步骤,1攻击的准备阶段
8、 2) 信息收集 除了确定攻击目的之外,攻击前的最主要工作就是收集尽量多的关于攻击目标的信息。这些信息主要包括目标的操作系统类型及版本,目标提供哪些服务,各服务器程序的类型与版本以及相关的社会信息。 要攻击一台机器,首先要确定它上面正在运行的操作系统是什么,是什么版本的。因为对于不同类型的操作系统,其上的系统漏洞有很大区别,所以攻击的方法也完全不同,甚至同一种操作系统的不同版本的系统漏洞也是不一样的。,5.2 网络攻击的一般步骤,1攻击的准备阶段 2) 信息收集 收集操作系统类型及版本的方法:靠经验,有些服务器的某些服务显示信息会泄露其操作系统。例如当我们通过TELNET连上一台机器时,如果显
9、示 Unix(r)System V Release 40 login: 那么根据经验就可以确定这个机器上运行的操作系统为SUN OS 5.5或5.5.l。但这样确定操作系统类型是不准确的,因为有些网站管理员为了迷惑攻击者会故意更改显示信息,造成假象。,5.2 网络攻击的一般步骤,1攻击的准备阶段 2) 信息收集 收集操作系统类型及版本的方法:查询DNS的主机信息(不是很可靠)来看登记域名时的申请机器类型和操作系统类型,或者使用社会工程学的方法来获得,以及利用某些主机开放的SNMP公共组来查询。,5.2 网络攻击的一般步骤,1攻击的准备阶段 2) 信息收集 收集操作系统类型及版本的方法:利用网络
10、操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份。因为不同的操作系统在网络底层协议的各种实现细节上略有不同。可以通过远程向目标发送特殊的包,然后通过返回的包来确定操作系统类型。例如通过向目标机发送一个FIN的包(或者是任何没有ACK或SYN标记的包)到目标主机的一个开放的端口然后等待回应。许多系统如Windows、BSD、CISCO、HP/UX和IRIX会返回一个RESET,5.2 网络攻击的一般步骤,1攻击的准备阶段 2) 信息收集 获知目标提供哪些服务及各种服务的类型、版本同样非常重要,因为已知的漏洞一般都是针对特定的服务、类型和版本的。这里说的提供服务就是指通常我们提到
11、的端口,例如一般TELNET在23端口,FTP在21端口,WWW在80端口或8080端口。这只是一般情况,网站管理完全可以按自己的意愿修改服务所监听的端口号。在不同服务器上提供同一种服务的软件也可以是不同的,我们管这种软件叫做daemon,例如同样是提供FTP服务,可以使用wuftp、proftp、ncftp等许多不同种类的daemon。确定daemon的类型版本也有助于黑客利用系统漏洞攻破网站。,5.2 网络攻击的一般步骤,1攻击的准备阶段 2) 信息收集 另外需要获得的关于系统的信息就是一些与计算机本身没有关系的社会信息,例如网站所属公司的名称、规模,网络管理员的生活习惯、电话号码等。这些
12、信息看起来与攻击一个网站没有关系,实际上很多黑客都是利用了这类信息攻破网站的。例如有些网站管理员用自己的电话号码作为系统密码,如果掌握了该电话号码,就等于掌握了管理员权限。进行信息收集可以用手工进行,也可以利用工具来完成,完成信息收集的工具叫做扫描器。用扫描器收集信息的优点是速度快,可以一次对多个目标进行扫描。,5.2 网络攻击的一般步骤,2. 攻击的实施阶段 1) 获得权限 当收集到足够的信息之后,攻击者就要开始实施攻击行动了。作为破坏性攻击,只需利用工具发动攻击即可,而作为入侵性攻击,往往要利用收集到的信息,找到其系统漏洞,然后利用该漏洞获取一定的权限。有时获得了一般用户的权限就足以达到修
13、改主页等目的了,但作为一次完整的攻击是要获得系统最高权限的。能够被攻击者所利用的漏洞不仅包括系统软件设计上的安全漏洞,也包括由于管理配置不当而造成的漏洞。,5.2 网络攻击的一般步骤,2. 攻击的实施阶段 1) 获得权限 当然大多数攻击成功的范例还是利用了系统软件本身的漏洞。造成软件漏洞的主要原因在于编制该软件的程序员缺乏安全意识。当攻击者对软件进行非正常的调用请求时会造成缓冲区溢出或者对文件的非法访问。其中利用缓冲区溢出进行的攻击最为普遍,据统计80%以上成功的攻击都是利用了缓冲区溢出漏洞来获得非法权限的。关于缓冲区溢出在后面要用专门的章节来作详细解释。 无论作为一个黑客还是一个网络管理员,
14、都需要掌握尽量多的系统漏洞。黑客需要用它来完成攻击,而管理员则需要根据不同的漏洞来进行不同的防御措施。,5.2 网络攻击的一般步骤,2. 攻击的实施阶段 2) 权限的扩大 系统漏洞分为远程漏洞和本地漏洞两种,远程漏洞是指黑客可以在别的机器上直接利用该漏洞进行攻击并获取一定的权限。这种漏洞的威胁相当大,黑客的攻击一般都是从远程漏洞开始的。但是利用远程漏洞获取的不一定是最高权限,而往往只是一个普通用户的权限,这样很难使黑客们得逞。这时就需要配合本地漏洞来把获得的权限进行扩大,通常是扩大至系统管理员权限。 只有获得了最高的管理员权限之后,才可以做诸如网络监听、打扫痕迹之类的事情。,5.2 网络攻击的
15、一般步骤,2. 攻击的实施阶段 2) 权限的扩大 要完成权限的扩大,不但可以利用已获得的权限在系统上执行利用本地漏洞的程序,还可以放置一些木马之类的欺骗程序来套取管理员密码。这种木马是放在本地来套取最高权限用的,而不能进行远程控制。例如一个黑客已经在一台机器上获得了一个普通用户的账号和登录权限,那么他就可以在这台机器上放置一个假的su程序。一旦黑客放置了假su程序,当真正的合法用户登录时,运行了su,并输入了密码,这时root密码就会被记录下来,下次黑客再登录时就可以使su变成root了。,5.2 网络攻击的一般步骤,3攻击的善后工作 1) 日志系统简介 如果攻击者完成攻击后就立刻离开系统而不
16、做任何善后工作,那么他的行踪将很快被系统管理员发现,因为所有的网络操作系统一般都提供日志记录功能,会把系统上发生的动作记录下来。所以,为了自身的隐蔽性,黑客一般都会抹掉自己在日志中留下的痕迹。想要了解黑客抹掉痕迹的方法,就必需了解常见的操作系统的日志结构以及工作方式。在Windows XP下查看日志的方式:控制面板管理工具事件查看器。,5.2 网络攻击的一般步骤,3攻击的善后工作 2) 隐藏踪迹 攻击者在获得系统最高管理员权限之后就可以随意修改系统上的文件了(只对常规 UNIX系统而言),包括日志文件,所以一般黑客想要隐藏自己踪迹的话,就会对日志进行修改。最简单的方法当然就是删除日志文件了,但
17、这样做虽然避免了系统管理员根据IP追踪到自己,但也明确无误地告诉了管理员,系统已经被入侵了。一般最常用的办法是只对日志文件中有关自己的那一部分进行修改。关于修改方法的具体细节根据不同的操作系统有所区别,网络上有许多此类功能的程序。,5.2 网络攻击的一般步骤,3攻击的善后工作 2) 隐藏踪迹 管理员想要避免日志系统被黑客修改,应该采取一定的措施,例如用打印机实时记录网络日志信息。但这样做也有弊端,黑客一旦了解到你的做法就会不停地向日志里写入无用的信息,使得打印机不停地打印日志,直到所有的纸用光为止。所以比较好的避免日志被修改的办法是把所有日志文件发送到一台比较安全的主机上,即使用loghost
18、。即使是这样也不能完全避免日志被修改的可能性,因为黑客既然能攻入这台主机,也很有可能攻入loghost。,5.2 网络攻击的一般步骤,3攻击的善后工作 2) 隐藏踪迹 仅修改日志是不够的,因为百密必有一漏,即使自认为修改了所有的日志,仍然会留下一些蛛丝马迹的。例如安装了某些后门程序,运行后也可能被管理员发现。所以,黑客高手可以通过替换一些系统程序的方法来进一步隐藏踪迹。这种用来替换正常系统程序的黑客程序叫做rootkit,这类程序在一些黑客网站可以找到,比较常见的有LinuxRootKit。它可以替换系统的ls、ps、netstat、inetd等等一系列重要的系统程序,当替换了ls后,就可以隐
19、藏指定的文件,使得管理员在使用ls命令时无法看到这些文件,从而达到隐藏自己的目的。,5.2 网络攻击的一般步骤,3攻击的善后工作 3) 后门一般黑客都会在攻入系统后不只一次地进入该系统。为了下次再进入系统时方便一点,黑客会留下后门,后门就是留在计算机系统中,供某位特殊使用者通过某种特殊方式控制计算机系统的途径。后门包括从简单到奇特,有很多的类型。简单的后门可能只是建立一个新的账号,或者接管一个很少使用的账号;复杂的后门(包括木马)可能会绕过系统的安全认证而对系统有安全存取权。特洛伊木马就是后门的最好范例。,5.3 扫描技术,1扫描技术简介网络安全扫描技术是一种基于网络的远程发现和检测目标网络或
20、主机安全性脆弱点的技术。通过网络安全扫描,系统管理员能够发现所维护的网络应用服务器的各种TCP/IP端口的分配、开放的服务、网络应用服务软件版本和这些服务及软件呈现在网络上的安全漏洞。网络安全扫描技术也是采用积极的、非破坏性的办法来检验系统是否有可能被攻击和入侵。它利用了一系列的脚本模拟对系统进行攻击的行为,并对结果进行分析。这种技术通常被用来进行模拟攻击实验和安全审计。网络安全扫描技术与防火墙、安全监控系统互相配合就能够为网络提供很高的安全性。,5.3 扫描技术,1扫描技术简介一次完整的网络安全扫描分为三个阶段:第一阶段:发现目标主机或网络。第二阶段:发现目标后进一步搜集目标信息,包括操作系
21、统类型、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息。第三阶段:根据搜集到的信息判断或者进一步测试系统是否存在安全漏洞。,5.3 扫描技术,2端口扫描技术一个端口就是一个潜在的通信通道,也就可能是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息,并发现系统的安全漏洞。它使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种手段。端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应。通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。端口扫描也可以通过
22、捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它仅能对接收到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统的详细步骤。,5.3 扫描技术,2端口扫描技术端口扫描主要有经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。此外还有间接扫描和秘密扫描等。 全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect()扫描和TCP反向ident扫描等。其中TCP connect()扫描的实现原理如下:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接将
23、建立成功;否则,返回1则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。,5.3 扫描技术,2端口扫描技术若端口扫描没有完成一个完整的TCP连接,则在扫描主机和目标主机的指定端口建立连接时只会完成前两次握手,在第三步时,扫描主机中断了本次连接,使得连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描等。 Tcpsyn扫描:向目标主机的特定端口发送一个SYN包,如果端口没开放就不会返回syn+a
24、ck,这时会给你一个rst,停止建立连接。,5.3 扫描技术,3漏洞扫描技术1) 漏洞扫描技术的原理漏洞扫描主要通过以下两种方法来检查目标主机是否存在漏洞:在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在;通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等。若模拟攻击成功,则表明目标主机系统存在安全漏洞。,5.3 扫描技术,3漏洞扫描技术2) 漏洞扫描技术的分类和实现方法基于网络系统漏洞库,漏洞扫描大体包括CGI漏洞扫描、POP3漏洞扫描、FTP漏洞扫描、SSH漏洞扫描、
25、HTTP漏洞扫描等。这些漏洞扫描是基于漏洞库,将扫描结果与漏洞库相关数据匹配比较得到漏洞信息;没有相应漏洞库的各种扫描,比如Unicode遍历目录漏洞探测、FTP弱密码探测、OPENRelay邮件转发漏洞探测等,这些扫描通过模拟攻击,测试出目标主机的漏洞信息。下面就这两种扫描的实现方法进行讨论。,5.3 扫描技术,3漏洞扫描技术2) 漏洞扫描技术的分类和实现方法(1) 漏洞库的匹配方法:基于网络系统漏洞库的漏洞扫描的关键部分就是它所使用的漏洞库。根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后再在此基础之上构成相
26、应的匹配规则,由扫描程序自动进行漏洞扫描的工作。漏洞库信息的完整性和有效性决定了漏洞扫描系统的性能,漏洞库的修订和更新的性能也会影响漏洞扫描系统运行的时间。因此,漏洞库的编制不仅要对每个存在安全隐患的网络服务建立对应的漏洞库文件,而且应当能满足前面所提出的性能要求。,5.3 扫描技术,3漏洞扫描技术2) 漏洞扫描技术的分类和实现方法(2) 插件(功能模块技术)技术:插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。插件编写规范化后,用户自己可以用perl、C或自行设计的脚本语言编
27、写的插件来扩充漏洞扫描软件的功能。这种技术使漏洞扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的编程工作,使漏洞扫描软件具有很强的扩展性。,5.3 扫描技术,3漏洞扫描技术3) 漏洞扫描中的问题及完善建议现有的安全隐患扫描系统基本上是采用上述两种方法来完成对漏洞的扫描,但是这两种方法在不同程度上也各有不足之处。下面将说明这两种方法中存在的问题,并针对这些问题给出相应的完善建议。,5.3 扫描技术,3漏洞扫描技术3) 漏洞扫描中的问题及完善建议(1) 系统配置规则库问题。网络系统漏洞库是基于漏洞库的漏洞扫描的灵魂所在,而系统漏洞的确认是以系统配置规则库为基础的。但是,这样
28、的系统配置规则库存在其局限性: * 如果规则库设计的不准确,预报的准确度就无从谈起; * 它是根据已知的安全漏洞进行安排和策划的,而对网络系统的很多危险的威胁却是来自未知的漏洞,这样,如果规则库更新不及时,预报准确度也会逐渐降低;* 受漏洞库覆盖范围的限制,部分系统漏洞也可能不会触发任何一个规则,从而不被检测到。,5.3 扫描技术,3漏洞扫描技术3) 漏洞扫描中的问题及完善建议(2) 漏洞库信息要求。漏洞库信息是基于网络系统漏洞库的漏洞扫描的主要判断依据。如果漏洞库信息不全面或得不到及时的更新,不但不能发挥漏洞扫描的作用,还会给系统管理员以错误的引导,从而对系统的安全隐患不能采取有效措施并及时消除。因此,漏洞库信息不但应具备完整性和有效性,也应具有简易性的特点,这样即使是用户自己也易于对漏洞库进行添加配置,从而实现对漏洞库的及时更新。比如漏洞库在设计时可以基于某种标准(如CVE标准)来建立,这样便于扫描者的理解和信息交互,使漏洞库具有比较强的扩充性,更有利于以后对漏洞库的更新升级。,习 题,5.1 黑客常用的入侵方法有哪些?这些方法的入侵原理是什么?5.2 黑客入侵的一般步骤有哪些阶段?5.3 常用的扫描技术有哪些?,