第 1 章 渗透测试概要及环境配置
许多提供安全服务的机构会使用一些术语,如安全审计(security audit)、网络或风险评估(network or risk accessment),以及渗透测试(penetration testing)。这些术语在含义上有一些重叠。从定义上来看,审计是对系统或应用的量化的技术评估。安全评估意为对风险的评测,是指用以发现系统、应用和过程中存在的漏洞的服务。
渗透测试 的含义则不只是评估,它会用已发现的漏洞来进行测试,以验证该漏洞是真实存在还是只是虚惊一场(假阳性)。举个例子,审计或评估利用的是扫描工具。这些工具会显示多个系统上的数百个可能的漏洞。而渗透测试则会采用恶意黑客的惯用手段来尝试对这些漏洞进行攻击。这样可以验证哪些漏洞真实存在,从而可以将实际的系统漏洞数降至少量。最有效的渗透测试是那些针对特定系统的有特定目标的测试。质胜于量,这才是检验成功渗透测试的标准。在目标性攻击中,相比大范围攻击,对单个系统进行枚举攻击更能真实反映系统安全中的问题以及处理突发情况的响应时间。只要仔细选取重要的目标,渗透测试人员就可以确定整体的安全基础架构及跟重要资产相关的风险。
渗透测试并不能使网络更安全!
这里存在一种常见的误解,我们应该跟潜在客户解释一下。渗透测试评估的是既有安全系统的有效性。如果客户的安全工作本身做得比较一般,那么渗透测试也帮不了大忙。作为咨询师,我们建议将渗透测试服务作为验证既有系统安全性的一种手段。只要用户认为自己已经尽了最大努力来保障这些系统的安全,并且已经准备好评估确保系统安全的措施中有没有漏洞,就可以规划渗透测试了。
在商定渗透测试服务时,确定合理的工作范围非常重要。工作范围决定了哪些系统和应用应该放入目标列表,以及会用哪些工具来利用已发现的漏洞。最好的方法是在设计环节跟客户一起拟定一个可接受的、不对结果的价值造成影响的工作范围。
本书会一步步教你如何发现和利用Web应用的漏洞。其中,Kali Linux是BackTrack 的进化版。本书介绍的内容包括对目标进行调查、识别和利用Web应用及其对应的客户端的漏洞、帮助Web服务防御常见攻击,以及为专业服务活动生成可交付的渗透测试结果。很多读者会因本书受益,无论是新人想成为渗透测试人员、刚开始使用Kali Linux而想了解Kali和BackTrack之间的差别,还是渗透测试的老手来了解新工具和新技术。
本章将逐一介绍支撑各种安全服务的基础知识,并提供专业渗透测试实践所需要的指引。内容包括区分渗透测试和其他服务、渗透测试方法论概述以及如何确立目标Web应用。本章还会简要介绍如何搭建Kali Linux测试环境和真实环境。