2

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

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

或者

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

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

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

1 回答 1

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​​ 文件读取来从中提取文本。(想想配置文件)

希望这有帮助!

穆比克斯

于 2014-10-09T14:22:34.710 回答