Неопределенный метод Ruby, Metasploit

Я пытался получить хэши учетных данных в сеансе 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'

метод unpack() используется во всем сценарии hashdump.rb, но, как сообщает сеанс metpeter, он не определен.

Я никогда раньше не использовал рубин, поэтому я не знаю, является ли это предопределенным методом или я должен его определить, и как это сделать.

Любая помощь приветствуется. Спасибо.


person Shedreth    schedule 09.08.2017    source источник
comment
Прежде всего, если вы хотите использовать metasploit, я настоятельно рекомендую сначала изучить рубин. (дети сценария обычно не одобряются) :). Во-вторых, capture_boot_key (строка 39 того же файла) возвращает nil, где ожидается String #unpack — это метод String, и в данном случае он пытается взять захваченный загрузочный ключ и распаковать его как шестнадцатеричное (сначала старший полубайт). Если ничего из этого снова не имеет смысла, я бы порекомендовал сначала изучить, что вы делаете.   -  person engineersmnky    schedule 09.08.2017
comment
Спасибо за ваш ответ. Я попытался найти функцию, чтобы попытаться изменить тип возвращаемого значения, но не смог найти ее в сценарии, я нашел только Capture_hboot_key(). Разве нет встроенного метода, такого как ToString() для C #.   -  person Shedreth    schedule 09.08.2017
comment
Msf::Post::Windows::Priv#capture_book_key. Кроме того, да, ruby имеет to_s, но ruby обычно не полагается на возвращаемые типы, а скорее использует утиную типизацию, чтобы обеспечить более динамичную реализацию.   -  person engineersmnky    schedule 09.08.2017
comment
Ваша проблема здесь не в том, что он не возвращает String как таковой, а в том, что capture_boot_key не может найти (и/или получить доступ к привилегиям) соответствующий раздел реестра в одном из следующих мест System\\CurrentControlSet\\ Control\\Lsa\\JD, System\\CurrentControlSet\\Control\\Lsa\\Skew1, System\\CurrentControlSet\\Control\\Lsa\\GBG,System\\CurrentControlSet\\Control\\Lsa\\Data   -  person engineersmnky    schedule 09.08.2017
comment
Значит, судя по твоим словам, я ничего не могу сделать?   -  person Shedreth    schedule 09.08.2017
comment
Не мои слова. Скорее всего, @eiko верен, и у вас нет соответствующих привилегий для доступа к реестру, поскольку маловероятно, что эти ключи будут отсутствовать, поскольку они достаточно обязательны. Чтобы получить доступ к реестру, вам сначала потребуются привилегии системного уровня, поэтому ответ опубликован. Теперь собственно мои слова Пожалуйста, поймите, что вы делаете. Особенно при использовании того, что, по мнению многих, может считаться вредоносным программным обеспечением. Мои комментарии предназначены только для назидания кода, и я не могу оправдывать то, что вы делаете, поскольку вы даже не знаете, что делаете. делают.   -  person engineersmnky    schedule 09.08.2017
comment
пожалуйста, не поймите меня неправильно, когда я сказал, что ничего не могу сделать, я имел в виду модификацию кода, чтобы заставить его работать. Что касается ваших слов, я знаю, что я делаю, так как я тестирую свою виртуальную машину (я стажер в компании информационной безопасности) в образовательных целях, и я могу не знать всего, что нужно знать, но незнание предшествует знанию..   -  person Shedreth    schedule 09.08.2017
comment
Я не имел в виду ничего оскорбительного в своих комментариях. Тот, кто думает, что знает все, вообще ничего не знает. Хотя вы правы, говоря, что незнание предшествует знанию, непонимание (в концептуальном плане) отличается от незнания и делает инструменты гораздо более опасными. Вы не можете учиться без предварительного понимания. Я могу не знать, как пользоваться пистолетом, но я могу понять процесс. (Если я не могу, то пистолет экспоненциально опаснее меня). Поймите и изучите ruby. Поймите и научитесь эксплуатации быть опасным, а не тем, кто в опасности. Удачи   -  person engineersmnky    schedule 09.08.2017


Ответы (1)


Похоже, hashdump не может получить загрузочный ключ из системного реестра. Насколько я понимаю, вы пытаетесь запустить hashdump без системных привилегий.

При недостаточном доступе скрипт возвращает nil вместо загрузочного ключа, а затем пытается распаковать nil, что вызывает довольно бесполезную ошибку NoMethodError.

Попробуйте запустить getsystem перед запуском hashdump.

person eiko    schedule 09.08.2017
comment
я уже перепробовал все способы повышения привилегий, ни один не работает - person Shedreth; 09.08.2017
comment
@Shedreth а, тогда это совсем другая проблема! Однако stackoverflow на самом деле не место для этого. вы можете зайти на биржу безопасности, чтобы узнать о повышении привилегий. но имейте в виду, что некоторые атаки просто терпят неудачу, потому что некоторые машины просто не уязвимы. - person eiko; 09.08.2017