【问题标题】:Pass arguments in ruby file for meterpreter?在 ruby​​ 文件中为meterpreter传递参数?
【发布时间】:2016-12-31 06:57:34
【问题描述】:

我有这个带有命令的 .rb 文件:

cd /users/someusername/documents

问题是我想获取目标电脑的实际用户名而不是“someusername”(这是我自己用于渗透测试的电脑)。

更新: 澄清一下:我正在使用来自我的meterpreter 会话的 :resource: 命令运行资源脚本。我想这与运行meterpreter脚本不同,因为我这样做的方式是将文件中的每一行作为meterpreter命令运行。 知道如何从文件中获取目标的用户名吗?我的意思是 ENV 似乎不适用于这种方法。我愿意接受所有建议!

谢谢!非常感谢!

【问题讨论】:

  • 它在ENV 变量中(试试ENV['USER'] 或ENV['USERNAME'])
  • 谢谢你!你能用我的 cd 命令给我一个例子吗?我真的不知道如何设置它。 :))
  • 因为这似乎不起作用:cd /users/ENV['USER']/documents
  • 我不知道你的代码是什么样的,但你可以试试这个:"cd /users/#{ENV['USER']}/documents"
  • 感谢您的宝贵时间。我有一个 .rb 文件,当我在 metasploit 中运行它时,它只运行 rb 文件中给出的命令,并且每个命令都由行分隔。然后我尝试在文件中写入“cd /users/#{ENV['USER']}/documents”,但是当我在meterpreter会话中执行“resource cdfile.rb”时,它试图 cd“users/#{ ENV['USER']}/documents" 而不是应该从 ENV 返回的用户名?

标签: ruby metasploit


【解决方案1】:

直接快捷方式(如果可用)

如果someusername 是当前用户名,您可以使用:

cd ~/documents

环境变量(如果有)

current_user = ENV['USER']
cmd = "cd /users/#{current_user}/documents"

获取带有 id 的用户名

这个command 可以帮助你:

current_user = %x(id -un).chomp
cmd = "cd /users/#{current_user}/documents"

再试一次

根据这个post,资源文件似乎是ERB 文件。 所以你可以写:

cd /users/<%= ENV['USER'] %>/documents
# or
cd /users/<%= %x(id -un).chomp %>/documents

【讨论】:

  • 是的,我知道这是 Mac 上的快捷方式,但是当我尝试从 Meterpreter 执行此操作时,会发生这种情况:那不存在?
  • 非常感谢!但是这些东西可以在使用 :resource: 来自meterpreter的命令调用的 .rb 文件中使用吗?谢谢!
  • 嗯,它对我不起作用...由于 rb 文件是从资源命令中调用的,因此它将每一行作为命令运行,这可能也是您的答案不起作用的原因我..有什么建议吗?
  • 文档在资源文件中到处都是,没有明确说明什么是可能的以及预期的 Ruby 语法是什么。我添加了另一种可能性
  • 哇,我真的很感谢你的时间!但它说:“stdapi_fs_chdir:操作失败:1”:(
猜你喜欢
  • 2020-01-19
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 2014-01-12
相关资源
最近更新 更多