如何将参数传递给msfconsole -r resource.rc <arg1> <arg2> </arg2> </arg1>

时间:2014-10-08 07:31:21

标签: ruby command-line-arguments metasploit

所以一切都在标题中。 有没有办法可以将参数传递给:

msf> resource path/to/resource.rc <arg1> <arg2>

或者

msfconsole -r resource.rc <arg1> <arg2>

这些参数将传递给ruby资源代码,如下所示:

<ruby>
 ip   = ARGV[1]
 port = ARGV[2]
...
...
</ruby>

1 个答案:

答案 0 :(得分:2)

不幸的是,资源文件不接受参数,但它们确实接受ruby块。所以你可以用一点技巧来做到这一点。创建一个如下所示的资源文件:

使用ruby ENV命令引入环境变量“DSTIP”

metasploit-framework [git:master]$ cat /tmp/test.rc
<ruby>
run_single("set RHOST #{ENV['DSTIP']}")
</ruby>

现在当我运行msfconsole时,我可以设置该DSTIP变量,当我启动MSF到该环境变量中的任何内容时,它将设置RHOST:

metasploit-framework [git:master]$ DSTIP=192.168.1.1 ./msfconsole -r /tmp/test.rc -Lq
[*] Processing /tmp/test.rc for ERB directives.
[*] resource (/tmp/test.rc)> Ruby Code (40 bytes)
RHOST => 192.168.1.1

您可以根据需要使用尽可能多的环境变量。现在,如果你想从MSFCONSOLE中运行它,我尝试在运行msfconsole之后更改环境变量,但没有运气。我确信有一种方法可以让一个胡子的linux主人不得不这样做但是我不抱歉。

旁注:您还可以使用ruby文件读取来从中提取文本。 (想一想配置文件)

希望这有帮助!

mubix