Kali Linux的设计目的是渗透测试。不管渗透测试者的起点是白盒测试、黑盒测试,还是灰盒测试,在用Kali或其它工具进行渗透测试时,总要遵循一些步骤。
第一步:侦察阶段
在发动攻击之前,渗透测试者应当尽量多地了解目标环境和系统的特点。渗透测试者找到的目标信息越多,就越有更好的机会确认最容易和最快的成功方法。与白盒测试相比,黑盒测试要求进行更多的侦察,因为测试者并没有获得太多的数据。侦察服务可能包括调查目标的互联网足迹、监视资源、监视人员、过程等,扫描网络信息(如IP地址和系统类型),社会工程的公共服务(如帮助台等途径)。
不管渗透测试者是确认目标系统的已知信息,还是查找已知的情报,侦察都是渗透测试的首要一步。侦察的时候,必须根据工作领域来定义目标环境。一旦目标确定,就要执行调查来收集目标的情报,例如哪些端口用于通信,目标托管于哪里,它为客户提供哪些服务,等等。这种数据可以制定一个计划,看看用什么最佳方法可以获得所期望的结果。侦察过程后应带来的结果包括:所有目标资产的清单、与资产有关联的应用程序有哪些、使用的服务、可能的资产所有者。
Kali Linux提供了一个标有“Information Gathering(信息收集)”的类别,这就是一种侦察资源。工具包括一些调查网络、数据中心、无线网络、主机系统的工具。
下面是侦察目标的清单:
确认目标
定义应用程序和业务的使用
确认系统类型
确认可用端口
确认正在运行的服务
被动的社会工程信息
文档发现
第二步:目标评估
在通过侦察确认并调查了目标之后,下一步就是评估目标的漏洞了。在这一点上,渗透测试人员应当足够地了解目标,只有这样才能选择如何分析可能的漏洞或弱点。正所谓,没有调查就没有发言权。测试漏洞的范围可能包括:Web应用程序如何运行、有哪些服务、有哪些通信端口等等。漏洞评估和安全审计往往是在目标评估过程这个阶段之后才能得出结论。
通过侦察来获得信息可以提高发现潜在漏洞的准确性,缩短评估目标服务的时间,并有助于避开已有的安全。例如,针对Web应用服务器运行普通的漏洞扫描器有可能向资产所有者发出警告,只生成关于系统和应用的一般细节。根据侦察阶段所获得的数据,扫描服务器的特定漏洞对于资产所有者来说可能更难一些,不妨提供一种容易利用的漏洞,并且花点时间来执行。
评估目标的漏洞可采用人工方式或通过工具的自动方式。在Kali Linux中有一组工具称为漏洞分析(Vulnerability Analysis)。这些工具的功能涉及从评估网络设备到数据库的多个方面。
下面这个清单列示的是评估目标:
评估目标系统的弱点;
确定有漏洞系统的优先次序;
将有漏洞的系统映射到资产所有者;
记录发现的问题。
第三步:利用漏洞
这一步利用所发现的漏洞验证这些漏洞是否真实,并且验证可能获得哪些访问或访问权。利用漏洞将渗透测试服务与被动服务(如漏洞评估和审计)分离开。漏洞利用和所有的后续步骤都可以无需目标系统的所有者授权,而获得合法的结果。
这一步的成功主要依赖的是以前的工作。多数漏洞利用程序都是针对特定的漏洞而开发的,并且如果执行不正确的话有可能引起不可预料的结果。最佳方法是确认几个漏洞,然后针对最容易被利用的漏洞制定攻击策略。
利用目标系统的漏洞的过程可能是人工的,或者是自动化的,其依据是最终目标。有些情况是运行SQL注入来获得Web应用程序的管理员访问权,或者是通过社会工程手段,使服务台的人员提供管理员的登录凭据。Kali Linux提供了一类称为“Exploitation Tools(漏洞利用工具)”专用工具来利用目标的漏洞,其涉及的范围从利用特定服务的漏洞到社会工程软件包。
下面列示的是一些漏洞利用的目标:
利用漏洞;
获得访问权;
捕获未授权数据;
积极实施社会工程;
攻击其它系统或应用程序;
记录发现的结果。
第四步:特权提升
访问目标并不能保证可以完成渗透任务。在很多情况下,利用一个有漏洞的系统可能需要访问受限制的数据和资源。攻击者必须提升特权才能获得关键数据(敏感数据、关键的基础架构)的访问。
特权提升可能包括确认和破解口令、用户账户、未获得授权的IT空间等。例如,攻击者可以实现受限的用户访问,确认包含管理员登录凭据的影子文件,通过口令破解获得管理员的口令,并通过管理员的访问权访问内部的应用系统。
Kali Linux的口令攻击和漏洞利用工具目录提供了很多有助于获得特权提升的工具。由于其中的多数工具包括了获得初始访问和特权提升的方法,所以这些工具是根据工具集来分组的。
下面列示的是特权提升目标:
获得访问系统和网络的更高特权;
揭示其它的用户账户信息;
通过提升特权访问其它系统;
记录所发现的结果。
第五步:保持立足点
最后一步是通过建立进入目标的其它登录点来保持访问,如果有可能,还要覆盖渗透的证据。渗透过程有可能触发防御机制,这最终有助于确保渗透测试人员访问网络时的安全性。最佳方法是建立访问目标的其它手段,以此作为主要路径被关闭后的保证。可选择的访问方法可以是后门、新的管理员账户、加密通道、新的网络访问通道等。
在目标系统中建立立足点的另一个重要方面就是清除渗透的证据。这可以使检测攻击更困难,因而可以减少安全防御的反应。清除证据包括删除用户日志、掩盖已有的访问通道、清除破坏的痕迹(例如由渗透过程引起的错误消息)。
Kali Linux包括一个题为“维持访问(Maintaining Access)”的目录,其目标就是在目标系统上保持一个立足点。为了在目标系统中建立各种形式的后门,需要使用工具。
在目标系统上建立立足点的目标列示如下:
在目标网络上建立多个访问点;
清除已经获得授权访问的证据;
修复漏洞的利用影响到的系统;
如果有需要,就注入虚假数据;
通过加密和其它手段隐藏通信方法;
记录发现的结果。