购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 黑客的攻击手段

黑客进行网络攻击是一项系统性很强的工作,其主要工作流程分为如下7步:确定攻击目标、踩点和信息搜集、获得权限、权限提升、实施攻击、留取后门程序、掩盖入侵痕迹。

1.确定攻击目标

攻击者在进行一次完整的攻击之前,首先要确定攻击要达到什么样的目的,即给对方造成什么样的后果。常见的攻击目的有破坏型和入侵型两种。破坏型攻击指的是只破坏攻击目标,使其不能正常工作,而不能随意控制目标系统的运行。要达到破坏型攻击的目的,主要的手段是拒绝服务攻击(Denial of Service,DoS)。另一类常见的攻击目的是入侵攻击目标,这种攻击是通过获得一定的权限来达到控制攻击目标的目的。应该说这种攻击比破坏型攻击更为普遍,威胁性也更大。因为黑客一旦获取攻击目标的管理员权限,就可以对此服务器做任意动作,包括破坏型的攻击。此类攻击一般也是利用服务器操作系统、应用软件或者网络协议存在的漏洞进行的。当然还有另一种造成此种攻击的原因,那就是密码泄露,攻击者靠猜测或者穷举法来得到服务器用户的密码,然后就可以和真正的管理员一样对服务器进行访问。

2.踩点和信息搜集

除了确定攻击目的之外,攻击前最主要的工作就是通过“踩点”收集尽量多的关于攻击目标的信息。这些信息主要包括目标主机的操作系统类型及版本,目标主机提供哪些服务,各服务器程序的类型与版本以及相关的社会信息。

要攻击一台机器,首先要确定它上面正在运行的操作系统是什么,因为对于不同类型的操作系统,其上的系统漏洞有很大的区别,所以攻击的方法也完全不同,甚至同一种操作系统的不同版本的系统漏洞也是不一样的。要确定一台服务器的操作系统,一般是靠经验,有些服务器的某些服务显示信息会泄露其操作系统。还有一种不是很有效的方法,诸如通过查询DNS的主机信息来看登记域名时的申请机器类型和操作系统类型,或者通过社会工程学的方法来获得,以及利用某些主机开放的SNMP的公共组来查询。

另外一种相对比较准确的方法是利用网络操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份。因为不同的操作系统在网络底层协议的各种实现细节上略有不同,可以远程向目标发送特殊的包,然后通过返回的包来确定操作系统类型。例如,通过向目标机发送一个FIN的包(或者是任何没有ACK或SYN标记的包)到目标主机的一个开放端口,然后等待回应。许多系统(如Windows、BSDI、Cisco、HP-UX和IRIX)会返回一个RESET。通过发送一个SYN包,它返回一个含有没有定义的TCP标记的TCP头。那么在Linux系统的回应包中就会包含这个没有定义的标记,而一些别的系统则会在收到SYN+BOGU包之后关闭连接,或是利用寻找初始化序列长度模板与特定的操作系统相匹配的方法。利用它可以对许多系统分类,如较早的UNIX系统是64K长度,一些新的UNIX系统的长度则随机增长。还有就是检查返回包里包含的窗口长度,这项技术根据各个操作系统的不同的初始化窗口大小来唯一确定它们。利用这种技术实现的工具很多,比较著名的有Nmap、CHECKOS、QUESO等。

获知目标提供哪些服务及各服务daemon的类型和版本同样非常重要,因为已知的漏洞一般都是针对某一服务的。这里说的提供服务就是指我们通常提到的端口,例如,一般Telnet在23端口,FTP在21端口,WWW在80端口或8080端口,这只是一般情况,网站管理员完全可以按自己的意愿修改服务所监听的端口号。在不同服务器上提供同一种服务的软件也可以是不同的,我们将这种软件叫做daemon,例如,同样是提供FTP服务,可以使用wuftp、proftp、ncftp等许多不同种类的daemon。确定daemon的类型和版本也有助于黑客利用系统漏洞攻破网站。

另外需要获得的关于系统的信息就是一些与计算机本身没有关系的社会信息,例如,网站所属公司的名称、规模,网络管理员的生活习惯、电话号码等。这些信息看起来与攻击一个网站没有关系,实际上很多黑客就是利用了这类信息攻破网站的。例如,有些网站管理员用自己的电话号码做系统密码,如果掌握了该电话号码,就等于掌握了管理员权限,信息收集可以手动进行,也可以利用工具来完成,完成信息收集的工具叫做扫描器。用扫描器收集信息的优点是速度快,可以一次对多个目标进行扫描。

3.获得权限

当收集到足够的信息之后,攻击者就要开始实施攻击行动了。作为破坏型攻击,只需利用工具发动攻击即可。而作为入侵型攻击,往往要利用收集到的信息,找到其系统漏洞,然后利用该漏洞获取一定的权限。有时获得了一般用户的权限就足以达到修改主页等目的了,但进行一次完整的攻击是要获得系统最高权限的。这不仅是为了达到一定的目的,更重要的是证明攻击者的能力,这也符合黑客的追求。

能够被攻击者所利用的漏洞不仅包括系统软件设计上的安全漏洞,也包括由于管理配置不当而造成的漏洞。前不久,因特网上应用最普遍的著名WWW服务器提供商Apache的主页被黑客攻破,其主页面上的 Powered by Apache图样(羽毛状的图画)被改成了Powered by Microsoft Backoffice的图样,那个攻击者就是利用了管理员对Web Server用数据库的一些不当配置而成功取得最高权限的。

当然大多数攻击之所以成功,还是利用了系统软件本身的漏洞。造成软件漏洞的主要原因在于编制该软件的程序员缺乏安全意识。当攻击者对软件进行非正常的调用时,就会造成缓冲区溢出或者对文件的非法访问。其中利用缓冲区溢出进行的攻击最为普遍,据统计,80%以上成功的攻击都是利用了缓冲区溢出漏洞来获得非法权限的。

4.权限提升

系统漏洞分为远程漏洞和本地漏洞两种,远程漏洞是指黑客可以在别的机器上直接利用该漏洞进行攻击并获取一定的权限。这种漏洞的威胁性相当大,黑客的攻击一般都是从远程漏洞开始的。但是利用远程漏洞获取的不一定是最高权限,而往往只是一个普通用户的权限。这时就需要配合本地漏洞来把获得的权限进行扩大,常常是扩大至系统的管理员权限。只有获得了最高的管理员权限,才可以做诸如网络监听、打扫痕迹之类的事情。要完成权限的扩大,不但可以利用已获得的权限在系统上执行利用本地漏洞的程序,还可以放置一些木马之类的欺骗程序来套取管理员密码,这种木马是放在本地套取最高权限用的,而不能进行远程控制。例如,一个黑客已经在一台机器上获得了一个普通用户的账号和登录权限,那么他就可以在这台机器上放置一个假的su程序。一旦黑客放置了假su程序,当真正的合法用户登录时,运行了su并输入了密码,root密码就会被记录下来,下次黑客再登录时就可以使用了。

5.实施攻击

在获得能够进行攻击和破坏的权限后,攻击者就可以为所欲为地对目标进行攻击了,包括篡改重要文件、窃取信息、破坏系统、上传程序等工作。

6.留取后门程序

一般黑客都会在攻入系统后不止一次地进入该系统,为了使下次再进入系统时方便一点,黑客会留下一个后门,而其中特洛伊木马就是后门的最好范例。Linux和UNIX中留后门的方法有很多种,读者和网络管理员可以查阅相关的工具书进行了解。

7.掩盖入侵痕迹

如果攻击者完成攻击后立刻离开系统而不做任何善后工作,那么他的行踪将很快被系统管理员发现,因为所有的网络操作系统都提供日志记录功能,它会把系统上发生的动作记录下来。所以,为了自身的隐蔽性,黑客一般都会抹掉自己在日志中留下的痕迹。攻击者在获得系统管理员权限之后,就可以随意修改系统上的文件了(只对常规 UNIX系统而言),包括日志文件,所以一般黑客如果想隐藏自己的踪迹,就会对日志进行修改。最简单的方法当然就是删除日志文件了,这样做虽然避免了系统管理员根据IP地址追踪到自己,但也明确无误地告诉管理员系统已经被入侵了。所以最常用的办法是只对日志文件中有关自己的那一部分做修改。关于修改方法的具体细节,不同的操作系统有所区别,网络上有许多具有此类功能的程序,如 zap、wipe等,其主要做法就是清除 utmp、wtmp、Lastlog和 Pacct等日志文件中某一用户的信息,当使用w、who、last等命令查看日志文件时,隐藏此用户的信息。

只修改日志是不够的,因为百密必有一疏,即使自认为修改了所有的日志,但仍然会留下一些蛛丝马迹。例如,如果安装了某些后门程序,运行后也可能被管理员发现。所以,黑客高手一般通过替换一些系统程序的方法来进一步隐藏踪迹。这种用来替换正常系统程序的黑客程序叫做RootKit,这类程序在一些黑客网站可以找到,比较常见的有LinuxRootKit。它可以替换系统的ls、ps、netstat、inetd等一系列重要的系统程序,当替换了ls后,就可以隐藏指定的文件,使得管理员在使用ls命令时无法看到这些文件,从而达到隐藏自己的目的。 H+HXNpKFj6bpsYZmEqny8p1wuL3c52kQMSLa52lmhI/QrFhr+q0ZimF93kFx035T

点击中间区域
呼出菜单
上一章
目录
下一章
×