首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行meterpreter时ruby脚本出错

运行meterpreter时ruby脚本出错
EN

Stack Overflow用户
提问于 2011-04-12 21:45:03
回答 1查看 355关注 0票数 0

我喜欢这个网站,它通过别人的问题帮了我很多,现在我加入了这个网站,这样我就可以在可能的情况下互相帮助。

我这里有个问题。在VM中运行meterpreter (来自metasploit套件)时,我尝试了一个脚本,该脚本中继受损计算机中的所有端口,并在您的本地计算机中创建一个虚拟接口。但是我得到了一个错误

Undefined method: each

在转到代码时:

代码语言:javascript
复制
def discovery()
  ip_port = []
  # Alive hosts discovery
  temphosts = []
  hosts = []
  ## oldstdout = $stdout ## Trick for capturing stdout
  $stdout = StringIO.new
  client.run_cmd('run landiscovery')
  temphosts = $stdout.string
  $stdout = oldstdout
  print_status "Alive Hosts:"
  temphosts.each do |x|
    if x.match(/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/)
      y = x.chomp
      hosts << y
      print " - #{y}\n"
    end
  end
end

我认为这与我用##包围的那条线有某种关系。它必须是nil,所以temphosts也是nil,我得到了each错误。

谁能给我指个好方向?

谢谢,非常感谢。

PS:如果有人感兴趣,脚本在这里:http://tools.pentester.es/multirelay

再次感谢!

EN

回答 1

Stack Overflow用户

发布于 2011-04-13 02:00:33

代码语言:javascript
复制
$stdout.string

此行将返回一个字符串对象,其中包含输出的所有行,并包含\n个字符。String对象没有任何each方法。

也许你想得到一个字符串的列表,代表你的输出行的列表。在这种情况下,您应该首先拆分字符串:

代码语言:javascript
复制
temphosts.split("\n").each do |x|
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5636207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档