【发布时间】: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#unpack是String方法,在这种情况下,它试图获取捕获的“启动密钥”并将其解压缩为十六进制(高半字节优先)。如果这些都不再有意义,我建议先了解你在做什么 -
感谢您的回复。我试图寻找函数来尝试改变它的返回类型,但是在脚本上找不到它,我只找到了 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