【问题标题】:Ruby Undefined Method, MetasploitRuby 未定义方法,Metasploit
【发布时间】:2017-08-09 13:42:07
【问题描述】:

我一直在尝试在 Windows Meterpreter 会话中获取凭据哈希,但每次运行“run post/windows/gather/hashdump”时都会出现以下错误:

发布失败:NoMethodError 未定义方法unpack' for nil:NilClass Call stack: /usr/share/metasploit-framework/modules/post/windows/gather/hashdump.rb:42:inrun'

在所有 hashdump.rb 脚本中都使用了 unpack() 方法,但正如 Meterpeter 会话所说,它没有被定义。

我以前从未使用过 ruby​​,所以我不知道它是预定义的方法还是应该定义它,也不知道该怎么做。

感谢任何帮助。 谢谢。

【问题讨论】:

  • 首先如果你想使用metasploit我强烈建议你先学习ruby。 (脚本小子通常不赞成):)。其次,capture_boot_key(第 39 行相同的文件)正在返回 nil,其中预期 String #unpackString 方法,在这种情况下,它试图获取捕获的“启动密钥”并将其解压缩为十六进制(高半字节优先)。如果这些都不再有意义,我建议先了解你在做什么
  • 感谢您的回复。我试图寻找函数来尝试改变它的返回类型,但是在脚本上找不到它,我只找到了 capture_hboot_key() 是不是 C# 没有像 ToString() 这样的内置方法。跨度>
  • Msf::Post::Windows::Priv#capture_book_key。此外,是的,ruby 确实有 to_s,但 ruby 通常不依赖返回类型,而是使用鸭子类型来实现更动态的实现。
  • 您的问题不是它本身不返回String,而是capture_boot_key 找不到(和/或访问权限)适当的注册表项在以下位置之一“System\\CurrentControlSet\\Control\\Lsa\\JD”、“System\\CurrentControlSet\\Control\\Lsa\\Skew1”、“System\\CurrentControlSet\\Control\\Lsa\ \GBG","System\\CurrentControlSet\\Control\\Lsa\\Data"
  • 那么根据你的话,我无能为力吗?

标签: ruby metasploit


【解决方案1】:

看起来hashdump 无法从系统注册表中检索启动密钥。我最好的猜测是你试图在没有系统权限的情况下运行hashdump

由于访问权限不足,脚本会返回 nil 而不是启动密钥,然后尝试解压 nil,这会导致相当无用的 NoMethodError。

在运行 hashdump 之前尝试运行 getsystem

【讨论】:

  • 我已经尝试了所有的提权方法,都不行
  • @Shedreth 啊,那完全是一个不同的问题!不过,stackoverflow 并不是真正适合它的地方。您可能想前往the security stackexchange 询问有关权限升级的问题。但请记住,有些攻击之所以失败,是因为有些机器根本不容易受到攻击。
猜你喜欢
  • 1970-01-01
  • 2019-01-09
  • 2019-12-25
  • 2012-03-13
  • 2010-10-15
  • 1970-01-01
  • 2013-03-07
  • 2018-05-16
  • 1970-01-01
相关资源
最近更新 更多