《Metasploit渗透测试手册》—第8章8.3节常用的漏洞利用代码mixins

8.3 常用的漏洞利用代码mixins
Metasploit渗透测试手册
Mixins是Ruby语言中应用广泛的一种机制,其作用是将一些功能放置到模块中,并使得Ruby这种单继承语言具备多继承的能力。在漏洞利用代码模块中使用mixins,有助于调用该漏洞利用代码所需的不同函数。在本节中,我们将学习一些重要的Metasploit exploit mixins。

怎样实现
下面快速浏览一些常用的exploit mixins,然后在现有的漏洞利用代码模块中了解其实现机理。

Exploit::Remote::TCP:该mixin为模块提供了TCP相关功能,可用于建立TCP连接。connect()函数与disconnect()函数分别负责建立和终止连接,此外还需要一些不同的参数,例如RHOST、RPORT、SSL等。

Exploit::Remote::UDP:该mixin用于为模块提供UDP相关功能,UDP通常被视为比TCP更快的连接模式,因此也是一个方便的选项,该mixin还进一步地包含了Rex::Socket::UDP,从而不必担心无法与目标建立socket连接的问题。

Exploit::Remote::DCERPC:该mixin提供了与远程机器上的DCE/RPC服务进行交互的工具和方法,其中方法通常适用在攻击渗透的语境中。该mixin还扩展了TCP mixin。dcerpc_call()、dcerpc_bind()等函数是DCE/RPC mixin提供的。

Exploit::Remote::SMB:该mixin定义了有助于和远程目标主机SMB服务进行通信的函数,例如smb_login()、smb_create()等,都是该mixin提供的有用函数。

Exploit::BruteTargets:该mixin用于对目标机器进行暴力破解,使用exploit_target(target) 函数接受目标主机IP并执行暴力破解,该mixin可以很容易地在不同的暴力破解代码中进行扩展和使用。

Exploit::Remote::Ftp:该mixin用于攻击渗透远程目标上的FTP服务,其中包含了用于与远程目标主机建立连接的Remote::TCP,并使用connect()函数与远程系统上的FTP服务器建立连接,该函数可接受的参数值是RHOST与RPORT。

Exploit::Remote::MSSQL:该mixin有助于查询远程数据库,其中Mssql_ping()函数用于查询数据库的可用性并将ping命令的返回信息保存为hash形式,Mssql_xpcmdshell()函数则使用xp_cmdshell执行系统命令。在使用与MS SQL相关的漏洞利用代码时,该mixin是非常便利的。

Exploit::Capture:该mixin有助于截获网络中的数据包,其中open_pcap()函数用于建立网络设备并捕获流经该设备的数据包。该mixin需要安装pcap。inject(pkt="", pcap=self.capture) 和inject_reply()是其中两个重要的函数,前者用于向网络设备中注入数据包,后者用于根据注入的数据包报告注入后产生的数据包。

上面展示了一些漏洞利用代码mixins,在Metasploit框架内使用漏洞利用代码模块时,这些mixins会带来很大便利,使用mixins可避免重复使用相同模块。促进代码重用,也正是模块式结构灵活的原因。

怎样工作
如前面所说,mixins用于在Ruby这种单继承语言中提供多继承机制,这里的含义是,可以根据实际需要在任意模块中调用不同的功能。例如,如果需要在漏洞利用代码模块中建立TCP连接,并不需要专门为其定义一个完整的函数,而是可以简单地在模块中调用Exploit::Remote::TCP这一mixin,就可以使用其中提供的各种功能。

更多
更多的mixins
除了前面提及的mixins之外,框架中还有很多重要的mixins,包括fileformat、imap、java、smtp、she等,可以在lib/msf/core/exploit目录中找到。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-16 04:50:30

《Metasploit渗透测试手册》—第8章8.3节常用的漏洞利用代码mixins的相关文章

《Metasploit渗透测试手册》—第3章3.6节Windows 7 Server 2008 R2 SMB客户端无限循环漏洞

3.6 Windows 7 Server 2008 R2 SMB客户端无限循环漏洞Metasploit渗透测试手册针对Windows 7和Windows Server 2008的漏洞利用代码非常少,SMB客户端无限循环漏洞是其中的一项,可以导致目标系统崩溃.该漏洞不会产生会话或shell连接,但也仍然值得讨论.在第3.8节中,将对Windows 7中的DLL注入漏洞进行分析. Windows Server 2008 R2与Windows 7中的SMB客户端中存在漏洞,间接攻击者和远程SMB服务器

《Metasploit渗透测试手册》—第8章8.1节介绍

第8章 使用漏洞利用代码 Metasploit渗透测试手册 本章讲解下述内容: 探索模块结构: 常用的漏洞利用代码mixins: 使用msfvenom: 将漏洞利用代码转换为Metasploit模块: 移植并测试新的漏洞利用代码模块: 使用Metasploit进行模糊测试: 编写FileZilla FTP模糊测试器. 8.1 介绍 Metasploit渗透测试手册 首先介绍漏洞利用代码.漏洞利用代码(Exploit)是指利用某个软件中的漏洞或bug执行攻击者意图指令的软件代码.数据块或指令序列.

《Metasploit渗透测试手册》目录—导读

版权声明 Metasploit渗透测试手册 Copyright Packt Publishing 2012. First published in the English language under the title Advanced Penetration Testing for Highly-Secured Environments: The Ultimate Security Guide. All Rights Reserved. 本书由英国Packt Publishing公司授权人民

《Metasploit渗透测试手册》—第1章1.1节介绍

第1章 给安全专业人员的Metasploit快速提示 Metasploit渗透测试手册 本章讲解下述内容: 在Windows系统中配置Metasploit 在Ubuntu系统中配置Metasploit: BackTrack 5与Metasploit 终极组合: 在单机上构建渗透测试环境: 在带有SSH连接的虚拟机上构建Metasploit环境: 从界面开始--Metasploit的"Hello World": 在Metasploit框架中建立数据库: 使用数据库存储渗透测试结果: 分析

《Metasploit渗透测试手册》—第8章8.4节使用msfvenom

8.4 使用msfvenomMetasploit渗透测试手册在第4章中,我们曾提及过msfencode和msfpayload.现在简单回顾一下,msfpayload用于从攻击载荷中生成二进制文件,msfencode则用于使用不同编码技术对该二进制文件进行编码.现在要讨论的另一个Metasploit工具则结合了二者的功能,并在生成可隐蔽执行漏洞利用代码方面发挥重要作用. 准备要使用msfvenom,首先启动终端提示符窗口,键入msfvenom –h 命令. 怎样实现观察有哪些不同的可用选项. ro

《Metasploit渗透测试手册》—第8章8.2节 探索模块结构

8.2 探索模块结构Metasploit渗透测试手册理解漏洞利用模块的结构是非常重要的,因为这有助于对不同漏洞利用模块的正确分析.由于Metasploit框架是一个开源项目,其开发依赖于来自研究团体的贡献.来自全球的开发者们将各种漏洞利用代码的概念验证代码转换为Metasploit模块,以便为其他用户使用.读者也可以将新发现漏洞的利用代码转换为Metasploit模块,从而为Metasploit开发贡献力量.还有些时候需要利用不在Metasploit框架中的特定漏洞利用代码.掌握漏洞利用代码模块

《Metasploit渗透测试手册》—第3章3.1节介绍

第3章 操作系统漏洞评估与利用Metasploit渗透测试手册本章讲解下述内容: Exploit用法快速提示: 在Windows XP SP2上进行渗透测试: 绑定远程访问目标机器的shell: 在Windows 2003 Server上进行渗透测试: Windows 7/Server 2008 R2客户端无限循环漏洞: 对Linux(Ubuntu)机器进行攻击渗透: 理解Windows DLL注入漏洞. 3.1 介绍Metasploit渗透测试手册上章着重介绍了对目标机器的信息收集,包括目标I

《Metasploit渗透测试手册》—第1章1.8节在Metasploit框架中建立数据库

1.8 在Metasploit框架中建立数据库 Metasploit渗透测试手册 Metasploit的重要特点是包括用于存储渗透测试结果的数据库.渗透测试涉及大量信息,并且持续数天,因此存储中间结果是必要的.因此,好的渗透测试工具应该正确地整合数据库,以便快速高效地存储结果. 准备 默认情况下,Metasploit将自带的PostgreSQL作为基础数据库.在BackTrack上,还有另外一种选择,也就是MySQL数据库.用户可以使用这两种数据库中的任一种.我们先来看一下PostgreSQL数

《Metasploit渗透测试手册》—第8章8.6节移植并测试新的漏洞利用代码模块

8.6 移植并测试新的漏洞利用代码模块 Metasploit渗透测试手册 在上节中学习了怎样使用可用的概念验证代码开发完整的Metasploit模块,本节中将把该模块保存到合适的位置,并测试其是否正常运转. 准备 了解漏洞利用代码模块要存储的文件夹位置是非常重要的,有助于追踪不同模块所在位置,同时也有助于Metasploit框架理解模块的基本用法.完整的模块脚本构建完成之后,在合适的位置将其保存. 怎样实现 由于上面开发的是漏洞利用代码模块,针对的目标是Windows操作系统,影响的是特定的文件