Metasploit 的基础介绍

Mr.R0boter 于 2020-09-04 发布

结构

  1. 基础库文件:分为 Rex(Ruby Extension)、framework-core、framework-base

    1. Rex 是 Metasploit 框架所依赖的最基础的组件,为 Metasploit 开发者进行框架和模块开发提供基础功能支持,如包装的网络套接字、网络应用协议客户端和服务端的实现、日志子系统、渗透攻击支持例程、PostgreSQL 及 MySQL 数据库支持
    2. framework-core 库负责实现所有与各种类型的上层模块及插件的交互接口
    3. framework-base 库扩展了 framework-core,提供更简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口和功能程序调用框架本身功能及框架内的集成模块
  2. 模块:通过 Metasploit 框架装载、集成并对外提供最核心的渗透测试功能的实现代码。分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(Payloads)、空指令模块(Nops)、编码器模块(Encoders)

  3. 插件:插件可以集成现有的一些外部安全工具,如 Nessus、OpenVAS

  4. 接口:Metasploit 框架提供多种用户使用接口,包括 msfconsole 控制台终端、msfgui 图形化界面、armitage 图形化界面、msfapi 远程调用接口

  5. 功能程序:用来支持渗透测试者快速利用 Metasploit 框架内部能力完成特定任务的程序,如 msfpayload、msfencode、msfvenom 可以将攻击载荷封装为可执行文件、C 语言、JavaScript 语言等多种形式,并可以进行各种类型的编码。而 msf*scan 系列功能程序提供了在 PE、ELF 等各种类型文件中搜索指定指令的功能,用于定位指令地址。

模块详解

  1. 辅助模块:为渗透测试的信息收集提供支持,包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜解、敏感信息嗅探、探查敏感信息泄露、Fuzz 测试发掘漏洞、实施网络协议欺骗等。此外还包含一些无须加载的攻击载荷,如拒绝服务攻击

  2. 渗透攻击模块:利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问器的代码组件。Metasploit 是以目标系统的操作系统平台以及所针对的网络服务或应用程序类型来对渗透攻击模块进行分类。其支持的有 Windows、Linux、Apple iOS、Mac OS X、UNIX(包括 AIX、BSDi、FreeBSD、HPUX、IRIX、Solaris 等)、NetWare 等不同操作系统平台其中最多的有 Windows、UNIX、Linux、Mac OS X,而 Multi 平台类中包含一些跨平台的网络服务或应用程序中存在的安全漏洞。如 Samba、Tomcat、Firefox。而 Metasploit 中的渗透攻击模块可以按照所利用的安全漏洞所在位置分为主动渗透攻击和被动渗透攻击两大类

    1. 主动渗透攻击:利用的安全漏洞位于网络服务端软件与服务承载的上层应用程序之中,这些服务通常是在主机上监听端口并等待客户端的连接,因此可以主动发起渗透攻击。主动渗透攻击属于传统的渗透攻击,在 Metasploit 中占主流位置
    2. 被动渗透攻击:利用的安全漏洞位于客户端软件中,如浏览器、浏览器插件、电子邮件客户端、Office 与 Adobe 等各种文档阅读与编辑软件。通过构造恶意的网页、电子邮件、文档文件,并通过架设包含此类恶意内容的服务端、发送邮件附件、结合社会工程学分发和诱骗用户打开、结合网络欺骗和劫持技术等方式使目标系统上的用户触发此类安全漏洞。被动渗透通常可以绕过网络边界防护措施,如防火墙等。常见的两类被动渗透攻击为浏览器软件漏洞攻击和文件格式类漏洞攻击
  3. 攻击载荷模块: