所以一切都在标题中。 有没有办法可以将参数传递给:
msf> resource path/to/resource.rc <arg1> <arg2>
或者
msfconsole -r resource.rc <arg1> <arg2>
这些参数将传递给ruby资源代码,如下所示:
<ruby>
ip = ARGV[1]
port = ARGV[2]
...
...
</ruby>
答案 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