基于Metasploit框架的渗透测试研究

发表于:2017-11-03 13:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:大商所行业测试中心    来源:51Testing软件测试网采编

  渗透测试是目前信息安全领域最主流的一种主动攻击的安全测试技术,渗透测试技术最核心的内容是利用目标系统中的安全漏洞,模拟黑客的方式挫败目标系统安全控制措施,从而取得访问控制权。本文基于专业的开源渗透测试框架Metasploit对渗透测试技术进行研究,详细介绍了Metasploit的架构、测试方法和应用场景,希望对证券期货行业内的渗透测试爱好者有借鉴意义。 
  一、渗透测试
  (一) 渗透测试概念 
  渗透测试(Penetration Testing,Pentest)就是通过模拟恶意黑客的攻击方法,挫败目标系统安全控制措施,取得访问控制权,来评估计算机网络系统安全的一种安全测试与评估方式。
  (二) 渗透测试分类 
  渗透测试类型包括3种:黑盒测试白盒测试和灰盒测试。
  1. 黑盒测试 
  黑盒测试(Black-box Testing)也称为外部测试(External Testing)。采用这种方式时,渗透测试人员将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信息,他们完全模拟真实网络环境中的外部攻击者,采用流行的攻击技术与工具,有步骤地对目标系统进行逐步的渗透与入侵,揭示目标网络中一些已知或未知的安全漏洞,并评估这些漏洞能否被利用获取控制权或造成业务资产的损失。
  2. 白盒测试 
  白盒测试(White-box Testing)也称为内部测试(Internal Testing)。进行白盒测试的人员将可以了解到关于目标环境的所有内部与底层知识,因此这可以让渗透测试者以最小的代价发现和验证系统中最严重的安全漏洞。白盒测试能够比黑盒测试消除更多的目标基础设施环境中的安全漏洞与弱点,从而给组织带来更大的价值。
  3. 灰盒测试 
  以上两种渗透测试基本类型的组合可以提供对目标系统更加深入和全面的安全审查,这就是灰盒测试(Grey-box Testing),组合之后的好处就是能够同时发挥两种基本类型渗透测试方法的各自优势。灰盒测试需要渗透测试者能够根据对目标系统所掌握的有限知识与信息,来选择评估整体安全性的最佳途径。在采用灰盒测试方法的外部渗透场景中,渗透测试者也类似地需要从外部逐步渗透进入目标网络,但他所拥有的目标网络底层拓扑与架构将有助于更好地决策攻击途径与方法,从而达到更好的渗透测试效果。
  (三) 渗透测试流程 
  PTES渗透测试执行标准是由安全业界多家领军企业技术专家所共同发起的,期望为企业组织与安全服务提供商设计并制定用来实施渗透测试的通用描述准则。PTES标准中定义的渗透测试过程环节基本上反映了安全业界的普遍认同,具体如图1所示包括以下7个阶段。
  二、Metasploit 架构
  (一) Metasploit简介
  Metasploit Framework(MSF)是一个为渗透测试、shellcode编写和漏洞研究的平台,同时也是创建安全工具和漏洞研究的开发平台,它集成了各平台上常见的溢出漏洞和流行的攻击代码,并且不断更新,目前它收集了上千个实用的溢出攻击程序及一些辅助工具,操作简单,易用性好。
  (二) Metasploit架构
  MetasploitFramework的总体架构如图2所示,它包含Exploit、Auxiliary、Payload等多个模块:
  图2 Metasploit Framework整体架构
  1、TOOLS:集成了各种实用工具,多数为收集的其它软件,如Nmap等;
  2、PLUGINS:各种插件多数为收集的其它软件,直接调用其API,但只能在console模式下工作;
  3、MODULES:目前的Metasploit Framework 的各个模块;
  4、MSF CORE:表示Metasploit Framework core 提供基本的API,并且定义了MSF的框架。并将各个子系统集成在一起,不建议更改;
  5、MSF BASE:提供了一些扩展的、易用的API以供调用,允许更改;
  6、Rex LIBRARIES:Metasploit Framework中所包含的各种库,是类、方法和模块的集合;
  7、CLI:表示命令行界面;
  8、GUI:图形用户界面;
  9、Console:控制台用户界面;
  10、Web:网页界面,目前已不再支持;
  11、Exploit:是渗透攻击模块,基本上目前所有的操作系统在Metasploit Framework上均有对应的攻击模块;
  12、Auxiliary:是辅助模块,用途非常广泛,它可以作为扫描器、拒绝服务攻击工具、Fuzz测试器,以及其他类型的工具;
  13、Payload:是在目标系统被攻陷之后执行的代码,如添加用户账号,获取shell交互权限等;
  14、Nops:是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令;
  15、Encoders:重新进行编码,用以实现反检测功能等。
  (三) Metasploit使用案例
  内网渗透测试的最终目的就是获取域管理员帐户。本节通过一个案例简介如何通过一个普通的webshell权限一步步的获得域管理员权限,从而掌控整个企业内网。
  我们获取的是位于DMZ区一台Web服务器上的一个普通权限的webshell,首先尝试利用本地溢出漏洞提权,即使用metasploit里的本地漏洞的利用程序(local exploit) 来获取Web服务器的系统权限。把这台Web服务器作为跳板机,添加路由直通内网。通过这台位于DMZ区的跳板机,使用auxiliary/scanner/里面的检测插件,对服务器区和办公区的内网进行弱点扫描,获取位于内网AD域中一台机器的权限。对获取的域内机器进行密码抓取,捕获域管理员密码。使用域管理员密码控制位于服务器区的域控机器,最终达成渗透测试目标。
  (四) 常用渗透测试框架对比
  目前比较流行的渗透测试框架除了Metasploit还有Immunity CANVAS、Core Impact等。Immunity Canvas、Core Impact等。Immunity CANVAS是美国Aitel’s ImmunitySec公司出品的渗透测试工具,包含操作系统、应用软件等大量的安全漏洞利用;Core Impact是美国Core Security公司出品的渗透测试工具可以评估网络系统、站点、邮件用户和Web应用安全。本节从用户界面、支持平台、渗透测试和报表几个方面横向对比了三款框架,如图3所示:
  图3 常用渗透测试框架对比 
  三、总结
  Metasploit框架由于其良好的结构和开放源码的特性,为渗透测试、shellcode编写和漏洞研究提供了一个可靠环境,大大方便了研究人员在其基础上进行有效的渗透测试研究和开发。因此安全专家以及业余安全爱好者都应该掌握 Metasploit,因为它提供了丰富的扫描功能、攻击脚本及二次开发的平台,使安全漏洞检测变得相对容易。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号