Metasploit渗透测试指南

来源:互联网 发布:淘宝如何搜索小口栓 编辑:程序博客网 时间:2024/05/08 15:15
Metasploit渗透测试指南

1.1 PTES标准中的渗透测试阶段

PTES标准中的渗透测试阶段是用来定义渗透测试过程,并确保客户组织
能够以一种标准化的方式来扩展一次渗透测试,而无论是由谁来执行这
种类型的评估。该标准将渗透测试过程分为七个阶段,并在每个阶段中
定义不同的扩展级别,而选择哪种级别则由被攻击测试的客户组织所决
定。现在设想你就是一名渗透测试者,让我们带领你了解一下在每个渗
透测试阶段都需要完成哪些任务。

1.1.1 前期交互阶段
前期交互阶段通常是由你与客户组织进行讨论,来确定渗透测试的范围
和目标。这个阶段最为关键的是需要让客户组织明确清晰地了解渗透测
试将涉及哪些目标。而这个阶段也为你提供了机会,来说服客户走出全
范围渗透测试的理想化愿景,选择更加现实可行的渗透测试目标来进行
实际实施。

1.1.2 情报搜集阶段
在情报收集阶段,你需要采用各种可能的方法来搜集将要攻击的客户组
织的所有信息,包括使用社交网络,Google Hacking技术,目标系统踩
点等等。而作为渗透测试者,你最为重要的一项技能就是对目标系统的
探查能力,包括获知它的行为模式,运行机理,以及最终可以如何被攻
击。对目标系统所搜集的信息将帮助你准确地掌握目标系统所部属的安
全控制措施。在情报搜集阶段中,你将试图通过逐步深入的测试,来确
定在目标系统中实施了哪些安全防御机制。举例来说,一个组织在对外
开放的网络设备上经常设置端口过滤,只允许接收发往特定端口集合的
网络流量,而一旦你在白名单之外的端口访问这些设备时,那么你就会
被加入黑名单进行阻断。通常针对这种阻断行为的一个好方法是先从你
所控制的其他IP地址来进行初始探测,而这IP地址是你预期就会被阻断
或者检测到的。当你在探测WEB应用程序时,这个方法也是非常适用的,
因为一些保护WEB应用程序的WEB应用防火墙通常也会在你的探测请求数
量超过一定阀值后对你的IP进行阻断,使得你无法再使用这个IP发起任
何的请求。为了使得在做这种类型时保证不被检测到,你可以从那些无
法回溯到你或你的团队的IP地址范围来进行初始化扫描。在通常情况下
,在互联网上可远程访问的目标系统每天都会遭遇到一些攻击,而你的
初始扫描探测一般会落入那些背景噪声中而不会被发现。

提示: 你可以使用一个与你要发起主要攻击行为处于完全不同范围的IP
地址,来进行非常“喧闹”的扫描,这样可以帮助你确定客户组织时候能
够很好的检测和响应你所使用的攻击工具和技术。


1.1.3 威胁建模阶段
威胁建模主要使用你在情报搜集阶段所获取的信息,来识别出目标系统
上可能存在的安全漏洞与弱点。在进行威胁建模时,你将确定最为高效
的攻击方法,你所需要进一步获取到的信息,以及从哪里攻破目标系统
。在威胁建模阶段,你通常需要将客户组织作为敌手看待,然后以攻击
者的视角和思维来尝试利用目标系统的弱点。

1.1.4 漏洞分析阶段
一旦确定最为可行的攻击方法之后,你需要考虑你该如何取得目标系统
的访问权。在漏洞分析阶段,你将综合从前面的几个环节中获取到的信
息,并从中分析和理解哪些攻击途径会是可行的。特别是需要重点分析
端口和漏洞扫描结果,攫取到的服务“旗帜”信息,以及在情报搜集环节
中得到的其他关键信息。

1.1.5 渗透攻击阶段
渗透攻击可能是在渗透测试过程中最具魅力的环节,然而在实际情况下
往往没有你所预想的那么“一帆风顺”,而往往是“曲径通幽”。最好是在
你基本上能够确信特定渗透攻击会成功的时候,才真正对目标系统实施
这次渗透攻击。但是要记住的是,在你尝试要触发一个漏洞时,你应该
清晰地了解在目标系统上存在这个漏洞。进行大量漫无目的的渗透尝试
之后期待奇迹般地出现一个shell根本是痴心妄想,这种方式将会造成大
量喧闹的报警,也不会为身为渗透测试者的你以及你的客户组织提供任
何帮助。请先做好功课,然后再针对目标系统实施已经经过了深入研究
和测试的渗透攻击,这样才有可能取得成功。

1.1.6 后渗透攻击阶段
后渗透攻击阶段从你已经攻陷了客户组织的一些系统或取得域管理员权
限之后开始,但离你搞定手工还有很多事情要做。
后渗透攻击阶段在任何一次渗透测试过程中都是一个关键环节,而这也
是最能够体现你和那些平庸的骇客小子们的区别,真正从你的渗透测试
中为客户提供有价值信息的地方。后渗透攻击阶段将以特定的业务系统
作为目标,识别出关键的基础设施,并寻找客户组织最具价值和尝试进
行安全保护的信息和资产,当你从一个系统攻入另一个系统时,你需要
演示出能够对客户组织造成最重要业务影响的攻击途径。
在后渗透攻击阶段进行系统攻击时,你需要投入更多的时间来确定各种
不同的用途,以及他们中不同的用户角色,举例来说,设想你已经攻陷
了一个域管理服务器,现在你已经获取企业管理员帐户,或拥有域管理
员一级的权限,你或许已经成为整个域的统治者,但你是否知道与活动
目录服务器进行通信的这些系统是干什么用的呢?用来支付客户组织雇
员薪水的关键财务系统在哪里运行呢?你能够攻破这台系统,并在下一
轮发薪时,将公司所有的薪水都转移到一个海外的银行账户上呢?你能
找出客户组织的知识产权都在哪里吗?
设想你的客户组织是一家大型的软件开发外包企业,主营业务是定制开
发一些应用软件,然后发往他们的客户并在一些客户的生产环境中使用
。你能否在他们开发的源代码中植入后门,并最终能攻陷他们的所有客
户企业吗?这样是否能够大大损害他们的品牌信誉呢?
在后渗透测试阶段中,就需要你在这些难以处理的场景中寻找可用信息
,激发灵感,并达成你自己所设置的攻击目标。从攻击者的角度,一个
普通的攻击者往往在攻陷系统后将他的大部分时间用于千篇一律的操作
,然而作为一名职业的渗透测试者,你需要像一个恶意攻击者那样去思
考,具有创新意识,能够迅速得反应,并依赖于你的智慧和经验,而不
是使用那些自动化的攻击工具。


1.1.7 报告阶段
报告是渗透测试过程中最为重要的因素,你将使用报告文档来交流你在
渗透测试过程中做了哪些,如何做的,以及最为重要的----客户端组织
如何修复你所发现的安全漏洞与弱点。
在进行渗透测试时,你是从一个攻击者的角度来进行工作的,这些工作
一般客户组织会很少看到,而你在渗透测试过程中所获取的信息是增强
客户组织的信息安全措施以成功防御未来攻击的关键所在。当你在编写
和报告你的发现时,你需要站在客户组织的角度上,来分析如何利用你
的发现来提升安全意识,修补发现的问题,以及提升整体的安全水平,
而并不仅仅是对发现的安全漏洞打打上补丁。
你所撰写的报告至少应该分为摘要,过程展示和技术发现这几部分,技
术发现部分将会被你的客户组织用来修补安全漏洞,但这也是渗透测试
过程真正价值的体现位置。例如,你在客户组织的Web应用程序中找出来
一个SQL注入漏洞,你会在报告的技术发现部分来建议你的客户对所有的
用户输入进行检查过滤,使用参数化的SQL查询语句,在一个受限的用户
帐户上运行SQL语句,以及使用定制的出错消息。当你的客户实现了你的
建议修补了这个特定的SQL注入漏洞之后,那么他们就能够抵御SQL注入
攻击了吗?不是的!一个最可能导致SQL注入漏洞的根本原因是使用了
未能确保安全性的第三方应用,而在你的报告中也应该充分地考虑这些
因素,并建议客户组织进行细致检查并消除这些漏洞。


##############################################################

1.2 渗透测试类型
到现在为止,你已经对渗透测试的基本技术流程与环节有了一个初步的了
解,那接下来让我们来看看渗透测试的两种基本类型:白盒测试与黑盒测
试。白盒测试,有时也被称为“白帽测试”,是指渗透测试在拥有客户组织
所有知识的情况下所进行的测试;而黑盒测试则设计为模拟一个对客户组
织一无所知的攻击者的渗透攻击。两种测试方法都拥有他们自己的优势和
弱点。

1.2.1 白盒测试
使用白盒测试,你需要和客户组织一起工作,来识别出潜在的安全风险,
客户组织的IT支持和安全团队将会向你展示他们的系统与网络环境。白盒
测试的最大好处是你将拥有所有的内部知识,并可以在不需要害怕被阻断
的情况下任意地实施攻击。而白盒测试的最大问题在于无法有效的测试客
户组织的应急响应程序,也无法判断出他们的安全防护计划对检测特定攻
击的效率。如果时间有限,或是特定的渗透测试环节如情报搜集并不在范
围之内的话,那么饱和测试可能是你最好的选项。


1.2.2 黑盒测试
与白盒测试不同的是,经过授权的黑盒测试是设计成为模拟攻击者的入侵
行为,并在不了解客户组织大部分信息和知识的情况下实施的。黑盒测试
可以用来测试内部安全团队检测和应对一次攻击的能力。
黑盒测试是比较费时费力的,同时需要渗透测试者具备更强的技术能力。
在安全业界的渗透测试者眼中,黑盒测试通常是更受推崇的,因为他更逼
真地模拟量一次真正的攻击过程。黑盒测试依靠你的能力通过探测获取目
标系统的信息,因此,作为一次黑盒测试的渗透测试者,你通常并不需要
找出目标系统的所有安全漏洞,而只需要尝试找出并利用可以获取目标系
统访问权代价最小的攻击路径,并保证不被检测到。


##############################################################
1.3 漏洞扫描器

漏洞扫描器是用来找出指定系统或应用中安全漏洞的自动化工具。漏洞扫
描器通常通过获取目标系统的操作系统指纹信息来判断其类型与版本,以
及上面所运行的所有服务,一旦已经获取目标系统的操作系统与服务类型
,你就可以使用漏洞扫描器执行一些特定的检查,来确定存在哪些安全漏
洞。当然这些检查例程的质量取决于他们的开发者,而且与任何完全自动
化的解决方案一样,他们在很多时候会漏掉或是错误标识系统上的安全漏
洞。
最新的漏洞扫描器在降低误报率方面已经取得了非常好的效果,一些组织
经常使用他们来找出已公开的系统漏洞,或是一些潜在的新漏洞,避免被
攻击者所利用。漏洞扫描器在渗透测试中也起到了一个非常关键的作用,
特别是在允许你同时发起多次攻击而无须考虑如何躲避测试的白盒测试场
景中。从漏洞扫描器中获取到的知识可能是非常有价值的,但小心不要过
分得依赖他们。渗透测试的美妙之处在于它不是一个千篇一律的自动化过
程,成功地攻击系统通常需要你掌握更多的知识和技能。在大多数情况下
,当你成为一名资深的渗透测试师之后,你将很少使用漏洞扫描器,而是
依靠你自己的知识和专业技能来攻破系统。


##############################################################
1.4 小结

如果你刚刚涉足渗透测试领域,或者还未了解一个标准化的方法体系,请
学习一下渗透测试执行标准PTES。在进行任何实验,执行一次渗透测试时
,请确信你拥有一个细化的,可实施的技术流程,而且还应该是可以重复
的。作为一名渗透测试者,你需要确保不断的修炼情报搜集与漏洞分析技
能,并尽可能到达精通的水平,这些技能在渗透测试过程中将是你面对各
种攻击场景时的力量之源。

http://www.pentest-standard.org/index.php/Main_Page

0 0