渗透测试(penetration test)
- 为什么要进行渗透测试
渗透测试则是能够识别出系统弱点与不足之处的一种最为有效的技术方式。通过尝试挫败安全控制措施、绕开防御机制,渗透测试能够找出攻击者可能攻陷企业安全计划、并对企业带来严重破坏后果的方法。
渗透测试并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
我们认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。
- 测试分类
渗透测试的类型大致分为以下三大类:
1 黑盒测试
定义:渗透测试人员除了知道被测试的目标之外,其余与目标相关的信息一无所知。
特点:这种类型的渗透测试属于外部渗透测试。在前期需要对目标进行大量的信息收集,耗时较长。但是这种类型的渗透测试更有利于挖掘出系统潜在的漏洞、以及脆弱环节、薄弱点等。
2 白盒测试
定义:渗透测试人员可以通过正常渠道向被测试单位取得各种资料,包括网络拓扑结构图、员工资料甚至网站程序的代码片段,也可以和单位其他员工进行面对面沟通。
特点:这种类型的渗透测试在前期已经对目标系统有了一个初步的了解。这类测试的地点可以分为“从组织内部”与“从组织外部”两种大环境。在这种测试下可以充分发挥“社会工程学的力量”,对企业内部雇员的越权操作进行测试。
3 灰盒测试
定义:灰盒测试介于白盒测试与黑盒测试之间
特点:属于较为隐秘的测试。在测试当中,被测试单位只有少数人知晓测试的存在,因此能够较好的检验单位中的信息安全事件监控、响应等是否到位。
- 渗透测试标准:PTES
PTES标准空中的渗透测试阶段是用来定义渗透测试过程,并确保客户组织能够以一种标准化的方式来扩张的一次渗透测试,而无论是由谁来执行这种类型的评估。该标准将渗透测试过程分为七个阶段,并在每个阶段中定义不同的扩展级别,而选择那种级别则由被攻击测试的客户组织所决定。
1 前期交互阶段:
前期交互阶段通常是由渗透测试人员与客户组织进行讨论,来确定渗透测试的范围与目标。这个阶段最为关键的是需要客户组织明确清晰的了解渗透测试将涉及哪些目标。而这个阶段也为你提供了机会,来说服客户走出全范围渗透测试的理想化愿景,选择更加现实可行的渗透测试目标来进行实际实施。
2 情报收集阶段:
在情报收集阶段,你需要采用各种可能的方法来收集将要攻击的客户组织的所有信息,包括使用社交媒体网络、Google Hacking技术、目标系统踩点等等。而作为渗透测试这你最为重要的一项技能就是对目标系统的侦查能力,包括获知它的行为模式、运行机理,以及最终可以如何被攻击。对目标系统所搜集到的信息将会帮助你准确地了解到目标系统所部署的安全控制措施。
3 威胁建模阶段:
威胁建模主要使用你在情报收集阶段所获到的信息,来标志出目标系统中可能存在的安全漏洞与弱点,在进行维系建模时,你将确定最为搞笑的攻击方法、你所需要进一步获取到的信息,以及从哪里攻破目标系统。在威胁建模阶段,你通常需要将客户组织作为敌手来看待,然后以攻击者的视角和思维来尝试利用目标系统的弱点。
4 渗透攻击阶段:
渗透攻击可能是在渗透测试过程中最具魅力的环节,然而在实际情况下往往没有你所预想的那样“一帆风顺”,而往往是“曲径通幽”。建议最好是在你基本上能够确信特定渗透测试攻击会成功的时候,才真正对目标系统实施此次渗透攻击,当然在目标系统中很可能会存在着一些你没有想到的安全防护措施,使得你在这次渗透攻击无法成功。进行大量漫无目的的渗透尝试之后期待奇迹般的出现一个shell根本是痴心妄想,这种方式会引起各种大量的报警,也不会为渗透测试人员或者客户组织提供任何帮助。所以在进行渗透测试攻击之前要对测试目标有深入的了解。
5 后渗透攻击阶段:
后渗透攻击阶段是指攻击者已经攻陷了客户组织的一些系统或取得了域管理权限之后开始,但是离你最终的目标还有非常长的距离。
后渗透攻击阶段在任何一次渗透测试过程中都是一个关键环节,而这也是最能够体现以为渗透测试工程师技术的时刻。在这个阶段需要渗透测试人员以特定的业务系统作为目标识别出关键的技术设施,并且寻找客户组织最具价值和尝试进行安全保护的信息和资产,当你从一个系统攻入另外一个系统时,你需要演示出能够对客户组织造成最重要业务影响的攻击途径。
在后渗透测试阶段你要更加的像一个“邪恶的攻击者”那样去思考,具有创新意识,能够迅速地反应,并依赖于你的智慧与经验,而不是使用那些自动化的工具。
6 报告阶段:
报告阶段是渗透测试最为重要的阶段,你将要使用报告文档来交流你在渗透测试过程中做了哪些,如何做的,以及最为重要的——客户组织如何修复你所发现的安全漏洞与弱点。
在报告阶段你需要对目标系统的脆弱性、潜在的安全风险、可能造成的经济损失等进行详细的说明,同时对这些存在风险的层面给予安全建议。而且文档的撰写也要符合标准规范。。
注意
其他渗透测试标准和方法学有:OSSTMM,NIST SP800-42,OWASP TOP 10,WASC-TC等。
常用工具
在渗透测试的各阶段都有比较丰富的工具,通常使用kali linux作为渗透测试平台,集成了常用渗透软件。
也可以在其他linux系统甚至windows中搭建渗透测试平台,但是相对要费时间。
- 情报收集
whois,netcraft,nslookup,dig,nmap,Metasploit auxiliary/scanner/discovery,auxiliary/scanner/portscan,Google-hacking
- 漏洞扫描
openvas,nessus,Metasploit auxiliary/scanner
- 渗透攻击
Metasploit,burpsuite,w3af
以上列表持续补充中。
参考
版权声明:本文为博主原创文章,转载请注明出处。 旭日酒馆