1.3 Kali渗透测试基础
Kali Linux 是参照渗透测试的服务流程而设计的。不管出发点是白盒测试、黑盒测试还是灰盒测试,我们在用Kali或其他工具对目标进行渗透测试时都应遵循一定的步骤。
1.3.1 第一步:侦察
在发起攻击之前,应该了解尽可能多跟目标的环境和系统特征有关的信息。你掌握的能够辨识目标的信息越多,就越有可能找到最简便最快捷完成任务的方式。相比白盒测试,黑盒测试通常需要更多的侦察,因为它们没有提供有关目标的数据。侦察服务包括研究目标在互联网上的踪迹,监测资源、人和过程,扫描网络信息如IP地址和系统类型,对公共服务如服务支援中心和其他途径进行社会工程。
侦察 是渗透测试服务的第一步,不管你是要验证已知信息还是要搜集新的有关目标的情报。侦察通常都是从基于工作范围定义目标环境开始。一旦确认目标,就需要研究如何收集有关目标的情报,比如开放哪些端口用来通信、它托管在哪里、提供给客户的服务类型等。这些数据有助于确立一个采用最简单方法取得期望结果的行动方案。侦察任务的交付内容应该包括需要攻击的所有目标资产清单、跟那些资产关联的应用、使用的服务以及可能的资产所有者。
Kali Linux提供了一个名为“Information Gathering ”的类别作为侦察工作的资源。其中包含的工具可用来研究网络、数据中心、无线环境和主机系统。
下面列出的是侦察任务的目标:
1.3.2 第二步:目标测试
找出目标并且在侦察阶段对其做了研究后,下一步就是对目标进行漏洞测试。这时,渗透测试人员应该已经具备足够的有关目标的信息来选择如何分析潜在的漏洞或薄弱环节。比如要针对薄弱环节进行测试,你需要了解Web应用的运作方式、被识别的服务、通信的端口和其他信息。漏洞评估和安全审计通常都会在对目标进行测试的这个环节后结束。
通过侦察拿到细节信息有助于提高锁定潜在漏洞的精确度、缩短执行目标测试服务的执行时间,并有助于绕过现有的安全部署。举个例子,针对Web应用服务器运行通用漏洞扫描器很可能会引起资产所有者的注意,运行过程还要花费一些时间,并且只能生成一些有关系统和应用的常见信息。基于侦察阶段收集到的数据针对某个特定漏洞对服务器进行扫描,资产所有者可能更难发现,从而提供了不错的可利用潜在漏洞,缩短了执行时间。
针对漏洞进行的目标测试可以是手动的,也可以通过工具做到自动化。在Kali Linux中有一系列工具聚合到了一个名为Vulnerability Analysis 的类别下面。这些工具覆盖的范围从访问网络设备到访问数据库都有。
下面列出的是目标测试的目标:
1.3.3 第三步:漏洞利用
这一步会利用找到的漏洞来验证漏洞是否真实存在,并会验证能获得什么样的信息或是什么样的访问权限。漏洞利用是渗透测试服务和其他被动服务如漏洞评估和安全审计的主要区别。如果没有获得目标的资产所有者授权,漏洞利用和后续步骤都会带来法律后果。
这一步成功与否完全依赖于前面几步的投入。许多漏洞利用技术都是针对特定漏洞开发的。如果没有正确执行,可能会造成意外的后果。最佳实践是找出若干漏洞之后,基于最容易攻击的漏洞制定一个攻击策略。
漏洞利用可以是手动的,也可以是自动的,这要根据最终对象来确定。比如,自动运行SQL注入来获取某个Web应用的管理员访问权限,或是通过对服务支援中心工作人员进行人工的社会工程获取管理员的登录凭据。Kali Linux提供了一个名为Exploitation Tools 的专门工具来进行目标漏洞利用,从对特定服务进行利用的工具到社会工程工具包,应有尽有。
下面列出的是漏洞利用的目标: