目前大多数企业都会花费较多的资金来维护其关键的基础设施,防止数据外泄。而渗透测试则是能够识别出这些安全计划中系统弱点与不足之处的一种最为有效的技术方式。通过尝试挫败安全控制措施、绕开防御机制,渗透测试师能够找出攻击者可能攻陷企业安全计划、并对企业带来严重破坏后果的方法。
Metasploit是一款安全测试工具软件,它是为自动化第实施经典的、常规的、或复杂新颖的攻击提供基础设施支持的一个完整的框架平台。它可以使得你将精力集中在渗透测试过程中那些独特的方面上,以及如何识别信息安全计划的脆弱点上。
Metasploit是渗透测试师必备的一款利器。
PTES标准空中的渗透测试阶段是用来定义渗透测试过程,并确保客户组织能够以一种标准化的方式来扩张的一次渗透测试,而无论是由谁来执行这种类型的评估。该标准将渗透测试过程分为七个阶段,并在每个阶段中定义不同的扩展级别,而选择那种级别则由被攻击测试的客户组织所决定。
前期交互阶段:
前期交互阶段通常是由渗透测试人员与客户组织进行讨论,来确定渗透测试的范围与目标。这个阶段最为关键的是需要客户组织明确清晰的了解渗透测试将涉及哪些目标。而这个阶段也为你提供了机会,来说服客户走出全范围渗透测试的理想化愿景,选择更加现实可行的渗透测试目标来进行实际实施。
情报收集阶段:
在情报收集阶段,你需要采用各种可能的方法来收集将要攻击的客户组织的所有信息,包括使用社交媒体网络、Google Hacking技术、目标系统踩点等等。而作为渗透测试这你最为重要的一项技能就是对目标系统的侦查能力,包括获知它的行为模式、运行机理,以及最终可以如何被攻击。对目标系统所搜集到的信息将会帮助你准确地了解到目标系统所部署的安全控制措施。
威胁建模阶段:
威胁建模主要使用你在情报收集阶段所获到的信息,来标志出目标系统中可能存在的安全漏洞与弱点,在进行维系建模时,你将确定最为搞笑的攻击方法、你所需要进一步获取到的信息,以及从哪里攻破目标系统。在威胁建模阶段,你通常需要将客户组织作为敌手来看待,然后以攻击者的视角和思维来尝试利用目标系统的弱点。
渗透攻击阶段:
渗透攻击可能是在渗透测试过程中最具魅力的环节,然而在实际情况下往往没有你所预想的那样“一帆风顺”,而往往是“曲径通幽”。建议最好是在你基本上能够确信特定渗透测试攻击会成功的时候,才真正对目标系统实施此次渗透攻击,当然在目标系统中很可能会存在着一些你没有想到的安全防护措施,使得你在这次渗透攻击无法成功。进行大量漫无目的的渗透尝试之后期待奇迹般的出现一个shell根本是痴心妄想,这种方式会引起各种大量的报警,也不会为渗透测试人员或者客户组织提供任何帮助。所以在进行渗透测试攻击之前要对测试目标有深入的了解。
后渗透攻击阶段:
后渗透攻击阶段是指攻击者已经攻陷了客户组织的一些系统或取得了域管理权限之后开始,但是离你最终的目标还有非常长的距离。
后渗透攻击阶段在任何一次渗透测试过程中都是一个关键环节,而这也是最能够体现以为渗透测试工程师技术的时刻。在这个阶段需要渗透测试人员以特定的业务系统作为目标识别出关键的技术设施,并且寻找客户组织最具价值和尝试进行安全保护的信息和资产,当你从一个系统攻入另外一个系统时,你需要演示出能够对客户组织造成最重要业务影响的攻击途径。
在后渗透测试阶段你要更加的像一个“邪恶的攻击者”那样去思考,具有创新意识,能够迅速地反应,并依赖于你的智慧与经验,而不是使用那些自动化的工具。
报告阶段:
报告阶段是渗透测试最为重要的阶段,你将要使用报告文档来交流你在渗透测试过程中做了哪些,如何做的,以及最为重要的——客户组织如何修复你所发现的安全漏洞与弱点。
在报告阶段你需要对目标系统的脆弱性、潜在的安全风险、可能造成的经济损失等进行详细的说明,同时对这些存在风险的层面给予安全建议。而且文档的撰写也要符合标准规范。
渗透测试的类型可以大致分为以下三大类:
黑盒测试
定义:渗透测试人员除了知道被测试的目标之外,其余与目标相关的信息一无所知。
特点:这种类型的渗透测试属于外部渗透测试。在前期需要对目标进行大量的信息收集,耗时较长。但是这种类型的渗透测试更有利于挖掘出系统潜在的漏洞、以及脆弱环节、薄弱点等。
白盒测试
定义:渗透测试人员可以通过正常渠道向被测试单位取得各种资料,包括网络拓扑结构图、员工资料甚至网站程序的代码片段,也可以和单位其他员工进行面对面沟通。
特点:这种类型的渗透测试在前期已经对目标系统有了一个初步的了解。这类测试的地点可以分为“从组织内部”与“从组织外部”两种大环境。在这种测试下可以充分发挥“社会工程学的力量”,对企业内部雇员的越权操作进行测试。
灰盒测试
定义:灰盒测试介于白盒测试与黑盒测试之间
特点:属于较为隐秘的测试。在测试当中,被测试单位只有少数人知晓测试的存在,因此能够较好的检验单位中的信息安全事件监控、响应等是否到位。
漏洞扫描器是用来找出指定系统或应用中安全漏洞的自动化工具。漏洞扫描器通常通过获取目标系统的操作系统指纹信息来判断其类型与版本,以及上面所运行的各种服务,一旦以及获取目标系统的操作系统与服务类型,你就可以使用漏洞扫描器来执行一些特定的检查,来确定那些安全漏洞。当然,这些检查历程的质量取决于他们的开发者,而且与任何完全自动化的解决方案一样,他们在很多时候回漏掉或错误标识系统上的安全漏洞。
在大多数情况下,当你成为一名资深的渗透测试工程师之后,你将会很少使用漏洞扫描器,而是依靠你自己的知识和专业技能来攻破系统。