1.1.1 渗透测试标准
目前国内外最认同的渗透测试标准全称为渗透测试执行标准(Penetration Testing Execution Standard,PTES),其是由安全行业的领军人物及行业专家共同发起并制定的,旨在为全球非安全企业或组织与安全服务提供商设计并定制一套用来实施渗透测试的全球通用描述准则,您也可以在它的公益官网上查询到更多的相关信息。
PTES渗透测试阶段共分为:前期交互、信息搜集、威胁建模、漏洞分析、渗透攻击、后渗透攻击、渗透报告七个阶段。
在前期交互过程中渗透测试团队要与客户(被渗透方)展开充分的交流及讨论,确认在本次测试过程中的渗透测试目标、渗透测试范围、渗透测试条件限制、服务合同细节等。在进行一系列协商沟通后,就本次渗透测试服务达成一致并签订对应的合同,拿到渗透测试授权,一切未经资产所有者授权而开展的未授权测试均是不合法的。
在前期交互结束之后,渗透测试人员便可以正式展开渗透测试工作,接下来渗透测试人员要进行渗透测试过程中至关重要的一个环节:信息收集,渗透测试人员收集到的信息越多、越全面,对之后的渗透测试越有利。渗透测试人员可以通过使用开源情报(OSINT)、Google Hacking、资产测绘平台(如Sumap、Shodan、Fofa等)、资产扫描工具(如Goby、资产灯塔等)进行信息收集。在此过程中渗透测试人员不需要局限于上文中的这几种信息收集方法,可以从各个角度出发搜集一切有价值的信息,其中能收集的主流信息类别作者整理如下,仅供读者参考。信息搜集维度如图1-1所示。
图1-1 信息搜集维度
当渗透测试人员搜集到足够全面的渗透信息资料时,就可以开启威胁建模的阶段。渗透测试团队需要对在信息收集环境所收集到的信息进行整理和分析,并进行综合考虑制定出攻击的规划,确定最高效、最有效的渗透测试攻击方案。
结合攻击方案及已知的信息,渗透测试人员需要展开漏洞分析的操作,需要挖掘当前渗透测试项目中可以用的已知漏洞来获取对应存在漏洞的服务器的访问权限。例如,渗透测试人员在渗透测试某企业的过程中发现对应企业的管理系统是使用ThinkPHP5.0构建,而这个框架存在任意命令执行漏洞,渗透测试人员便可以在网上寻找相关的利用方式,或者根据相关的漏洞披露资料来编写对应的漏洞利用脚本。
在漏洞分析阶段结束之后,渗透测试人员才会最终开始最具有“危害性”的渗透攻击阶段。在渗透攻击阶段中,渗透测试人员将会利用之前已经编写好的漏洞利用脚本或者使用响应的渗透测试攻击手法来对目标服务器发起不同程度的有效攻击,最终目标是拿下尽可能多的系统及服务器权限。当然在渗透测试攻击过程中,渗透测试人员还需不断调整自己的攻击方式及漏洞,利用Payload来规避防火墙的屏蔽及APT预警平台、蜜罐平台等的检测,避免因触发系统后台告警等而被发现。
当渗透攻击全部完毕后,渗透测试人员便顺势来到了后渗透攻击环节,在此环节中渗透测试团队需要根据被渗透方的安全防御特点、业务管理模式、资产保护流程等识别出被渗透方的核心设备及对被渗透方最有价值的信息及资产,最终规划出能够对客户组织造成最大化影响的攻击途径及方式。
结束渗透攻击和后渗透攻击后,渗透测试人员便要编写渗透报告了。在一份完整的渗透测试报告中需涵盖:目标关键情报信息、渗透测试出的漏洞详情、成功渗透的攻击过程、造成业务影响的攻击途径,并从安全维护方的角度告知被渗透组织或企业其在安全防御体系中存在的薄弱点及风险,并给予专业的修复和改善建议。作者会在后面的章节中单独且详细地为大家介绍如何编写一份全面的渗透测试报告。
最后渗透测试人员可以根据图1-2所示的渗透测试总体思路来进行渗透总结环境,并最终结束本次渗透测试活动。
图1-2 渗透测试总体思路