Главная » Пентест » Атака Pass the Hash с помощью Metasploit и модуля PsExec

Атака Pass the Hash с помощью Metasploit и модуля PsExec

pass the hash

В сегодняшней статье мы научимся использовать хэши для аутентификации в системе на базе Windows и реализуем атаку Pass the Hash. Напомню, что мы уже рассказывали про атаку Pass the hash Pass the ticket.

Пароли в операционной системы Windows хранятся в виде хэшей и в некоторых ситуациях могут быть устойчивы к взлому. Но порой можно обойтись без пароля в чистом виде и использовать только хэш. В особенности интересны случаи, когда доступен хэш административной учетки, потому что впоследствии можно заполучить более высокие привилегии, реализовав атаку Pass the Hash.

Статья написана в образовательных целях. Ни автор, ни редакция сайта «www.spy-soft.net» не несут ответственности за любой возможный вред, причиненный материалами данной статье.

Сначала мы попробуем извлечь хэш в ОС Windows 7 и затем перейдем к серверу Windows Server 2016. Юзер, чей хэш мы будем получать, должен иметь привилегии админа и быть авторизованным на обеих машинах. Рабочей средой будет секюрити дистрибутив Kali Linux.

Атака Pass the Hash (PtH)

Для понимания атаки Pass the Hash стоит для начала разобраться, как устроен хэш. В операционной системе Windows типичный хэш выглядит приблизительно так:

Строка выше состоит из четырех секций, разделенных двоеточиями.

  • 1-ая часть – имя пользователя
  • 2-ая – условный числовой идентификатор
  • 3-я часть представляет собой LM хэш, прекративший использоваться, начиная с Windows Vista/Server 2008. На сегодняшний день вы вряд ли встретите где-либо подобный тип, если только в стареньких ОС. В случае если вы столкнетесь с подобными ситуациями, считайте, что вам крупно повезло, так как эти хэши с легкостью взламываются.
  • 4-ая часть представляет собой NTLM хэш (иногда именуемый NTHash). С новой версией, используемой в сегодняшних системах Windows и более стойкой ко взломам, мы и будем работать в нашем примере атаки Pass the Hash.

Наш план основан на эксплуатации схемы хранения / передачи паролей и механизма аутентификации. Пароли не передаются по сети в обычном открытом виде, а шифруются при создании.

Во процессе аутентификации пароль шифруется сразу же после ввода. Учитывая вышесказанное, следует заключить, что комп не видит различия между паролем и хэшем, и мы можем во время аутентификации использовать хэш, вместо пароля в чистом виде.

Картина становится интересней, когда известно имя пользователя с админ правами и хэш.

Получение хэша в целевой системе

Для начала необходимо скомпрометировать первую цель. При реализации данного сценария мы имеем дело с типичной рабочей станцией на базе ОС Windows 7. Метод можно использовать любой, но мы предполагаем, что система уязвима к эксплоиту EternalBlue.

Эксплуатацию уязвимости будем выполнять с помощью популярного фреймворка Metasploit.

Начинаем:

Запускаем модуль «eternalblue». Для более детального ознакомления с данным модулем, рекомендую прочитать статью про эксплуатации EternalBlue на Windows-сервере.

В пейлоаде Meterpreter имеется полезная команда hashdump, которая позволяет выгрузить любые NTLM или LM хэши в целевой системе:

По результатам выгрузки предпологаем, что у пользователя «admin2» административные привилегии. Этот хэш мы будем использовать для подключения к другой машине.

Предположим, что другой комп тоже находится в сети, например, в роли сервера и, вполне возможно, в качестве контроллера домена на базе Windows Server 2016. Если получить доступ к этой машине, то будет возможным получить контроль над всей сетью и любым компом домена.

Атака Pass the Hash с помощью модуля PsExec

Полученным хэшем привилегированного пользователя можно воспользоваться для аутентификации на сервере Windows Server 2016 без наличия пароля. Будем использовать модуль psexec (там же в Metasploit).

PsExec — это утилита, которая позволяет работать из командной строки, для запуска команд и программ на удаленных системах. Тулза полезна системным администраторам, так как интегрирована с консольными приложениями и утилитами с целью удобного перенаправления входных и выходных данных. Но тут мы снова сталкиваемся с компромиссом между удобством и безопасность, так как PsExec может использоваться хакерами для выполнения вредоносных команд или выступать в качестве RAT.

В Metasploit имеется измененная версия PsExec, позволяющая с легкостью подключаться к удаленным машинам. Для поиска этого модуля используем команду search:

Psexec зарекомендовал себя неоднократно. Загружаем этот модуль при помощи команды use.

Смотрим текущие настройки, используя команду options:

Вначале нужно установить IP-адрес цели (то есть сервера, к которому мы хотим подключиться):

Затем мы можем указать имя пользователя и пароль, используя полученный ранее хэш вместо обычного пароля.

Теперь указываем полезную нагрузку. Будем использоваться классический Reverse TCP из Meterpreter:

Также указываем IP-адрес локальной машины и желаемый порт:

Остальные опции оставляем по умолчанию. Запускаем команду run:

У нас появилась meterpreter-сессия. Для подтверждения вводим команды getuid / sysinfo и получаем информацию о целевой системе.

Прекрасно. Без знания пароля нам удалось получить доступ к серверу. По сути, у нас полный контроль над системой.

Защита от атаки Pass the Hash

В целом, довольно сложно защититься от подобного рода атак, поскольку мы используем стандартные механизмы аутентификации. Единственный надежный вариант – реализовать комплекс мероприятий для заблаговременного предотвращения неприятных последствий.

Также следование принципу минимальных привилегий сократит или даже исключит вероятный ущерб в случае, если злоумышленник получит хоть какой-то доступ к сети. Кроме того, нужно предпринимать и другие стандартные меры, как, например, фаервол и системы IDS/IPS для мониторинга и предотвращения любой вредоносной активности.

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

Заключение

В этом руководстве мы научились использовать хэши для аутентификации в системе на базе Windows и реализовали атаку Pass the Hash. После компрометирования первоначальной цели, не очень высокого уровня, был получен список хэшей, среди которых оказалась учетная запись с административными правами. Далее при помощи Metasploit был получен системный доступ к серверу.

Еще по теме: Повышение привилегий в Windows

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *