MSF(Metasploit Framework)框架详解

Metasploit 简介

Metasploit 是一个开源的渗透测试开源软件,也是一个逐步发展成熟的漏洞研究与渗透测试代码开发平台,此外也将成为支持整个渗透测试过程的安全技术集成开发与应用环境。

诞生与发展

Metasploit项目最初是由HD Moore在2003年夏季创立,目标是成为渗透攻击研究与代码开发的一个开放资源。

HD Moore在2003年的10月发布了他的第一个基于Perl 语言(pl)的Metasploit版本,当时一共集成了11个渗透攻击模块。

在Spoonm的帮助下,完全重写了Metasploit 的代码,并在2004年4月发布了Metasploit v2.0,版本中已经包含了18个渗透攻击模块和27个攻击载荷(payload) ,并提供了控制台终端,命令行和web 三个使用接口。

在2004年8月,HD和Spoonm带着最新发布的Metasploit v2.2并在拉斯维加斯举办的BlackHat全球黑客大会上进行了演讲。听众被Metasploit的强大之处所折服,并一致认为:Metasploit 时代已经到来。更多的黑客加入Metasploit核心开发团队与贡献渗透攻击、载荷与辅助模块代码。

在2005年的CanSecwest黑客会议上,HD和Spoonm指出了Metasploit v2体系框架中的一些难以解决的难题,包括:

  • 缺乏跨平台支持,特别是不能很好地运行在windows系统上。
  • 很难支持自动化渗透攻击过程。
  • Perl语言的复杂性和缺点使得外部贡献者与用户规模增长不相适应。
  • Perl语言对一些复杂特性的支持能力较弱等。

而且v2版本是完全围绕着渗透攻击而设计的,对信息搜集与后渗透攻击阶段无法提供有效支持。经过18个月的时间,Metasploit团队使用Ruby语言完全重写了Metasploit ,并在2007年5月发布了v3.0版本,其中包含177个渗透攻击模块、104个攻击载荷模块以及30个新引入的辅助模块。

Metasploit v3.0的发布使得Metasploit不再限于用作渗透攻击软件,而真正成为一个事实上的渗透测试技术研究与开发平台。

2009年10月,Metasploit项目被一家渗透测试技术领域的知名安全公司Rapid7所收购。Rapid7公司随后与2010年10月推出了Metasploit Express 和Pro商业版本。

Metasploit v4.0在2011年8 月发布。v4.0版本在渗透攻击、攻击载荷与辅助模块的数量上都有显著的扩展,此外还引入一种新的模块类型—后渗透攻击模块,以支持在渗透攻击环节中进行敏感信息搜集、内网拓展等一系列的攻击测试。

Metasploit v5.0在2019年1月份发布。Metasploit 5.0使用了新的数据库,并提供了一种新的数据服务。新版本引入了新的规避机制( evasion apabilities),支持多项语言,框架建立在不断增长的世界级攻击性内容库的框架基础上。另外,此次更新还包括了可用性改进和大规模开发的支持,数据库和自动化API的改进等。

技术架构

辅助模块

Metasploit为渗透测试的信息搜集环节提供了大量的辅助模块支持,包括针对各种网络服务的扫描与查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。

辅助模块能够帮助渗透测试者在渗透攻击之前取得目标系统丰富的情报信息。

渗透攻击模块

渗透攻击模块是利用发现的安全漏洞或配置弱点对目标系统进行攻击,以植入和运行攻击载荷,从而获取对远程目标系统访问权的代码组件。

主动渗透攻击所利用的安全漏洞位于网络服务端软件与服务承载的上层应用程序之中,由于这些服务通常是在主机上开启一些监听端口并等待客户端连接,因此针对它们的渗透攻击可以主动发起,通过连接目标系统网络服务,注入一些特殊构造的包含"邪恶"攻击数据的网络请求内容,触发安全漏洞,并使得远程服务进程执行在"邪恶"数据中包含攻击载荷,从而获取目标系统的控制会话。

被动渗透攻击利用的漏洞位于客户端软件中,如浏览器、浏览器插件、电子邮件客户端、Office与Adobe等各种文档阅读与编辑软件。对于这类存在于客户端软件的安全漏洞,我们无法主动地将数据从远程输入到客户端软件中,因此只能采用被动渗透攻击的方式,即构造出"邪恶"的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务、发送邮件附件、结合社会工程学分发并诱骗目标用户打开、结合网络欺骗和劫持技术等方式,等目标系统上的用户访问到这些邪恶的内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的Shell会话。

攻击载荷模块

攻击载荷是在渗透攻击成功后使目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目
标系统上的控制会话连接。

空指令模块

空指令(NOP)是一些对程序运行状态不会造成任何实质影响的空操作或者无关操作指令,最典型的空指令就是空操作,在x86 CPU体系架构平台上的操作码是0x90。

编码器模块

攻击载荷模块与空指令模块组装完成一个指令序列后,在这段指令被渗透攻击模块加入“邪恶”数据缓冲区交由目标系统运行之前,Metasploit框架还需要完成一道非常 重要的工序—编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值