Получаем пароль из NTLM после обновлений KB2973351
Всем привет ранее я рассказывал как получить пароль доменного администратора с помощью утилиты mimikatz. Время идет и компания мелкософт все таки закрыла часть данной уязвимости NTLM аутентификации, и выпустила обновления про них я еще расскажу, и при попытке получить пароль вы видели Password : (null), что пароля нет. Сегодня я расскажу, как это исправить, все проделанное предоставляется исключительно в обучающих целях, чтобы понимать, как защититься.
Вот как выглядит теперь вывод команды утилиты mimikatz. Как видите вместо пароля у вас Password : (null). Можете конечно попытаться расшифровать NTLM хэш брутфорсом. Но для примера чтобы ломануть пароль из 9 символов потребуется потратить при условии, что в нем есть
- Большие буквы
- Маленькие буквы
- Цифры
- Спецсимволы
79 дней, ну это еще у меня конечно не самая быстра видео карточка, но минимум месяц вам придется не выключать компьютер, если конечно вы не объедините кучу видеокарт в кластер. Так, что брут форс это не наш метод, в данном случае, им хорошо ломаются пароли роутеров и обычных пользователей, но системные администраторы в большинстве случаев ставят хорошие пароли.
Вся проблема заключается теперь вот в таких обновлениях вышедших не так давно.
- 2973351 (для w 8.1 и 2012r2)
- 2975625 (для w 8.1 и 2012r2)
- 2871997 (для w7, w8, 2008r2 и 2012)
- 2973351 (для w7, w8, 2008r2 и 2012)
- 2982378 (для w7, w8, 2008r2 и 2012)
Давайте рассмотрим как ранее работала аутентификация по удаленному рабочему столу и утилита mimikatz, Ранее когда вы логинились по rdp сессии, то ваш пароль хранился в памяти процесса LSA, после появления Windows, 8.1 введен параметр реестра, который позволяет отключить хранение входа учетных данных пользователя в текстовом формате для WDigest поставщиков.
Вот параметр реестра который они добавили
Хотя запись не появляется в реестре 8.1, система ставит для этого значения параметра DWORD в 8.1 по умолчанию "0" означает, что 8.1 не сохраняет учетные данные для входа в текстовом виде в памяти LSA для этого поставщика общих служб.
При установке KB2871997 устанавливает параметр реестр для более ранних версий Windows. При установке исправления, параметр реестра также не будет отображаться в более ранних версиях. Так что же происходит на Windows 8.1 системе, когда мы пытаемся получить пароль открытым текстом через meterpreter оболочки с использованием mimikatz, напоминаю Password : (null). Но если у вас есть админский доступ, то проблем нет, вы всегда можете создать нужный параметр реестра.
Первый способ, в ручную откройте командную строку от имени администратора и введите вот такую строчку
В итоге у вас создаться параметр UseLogonCredential со значением 1, означающим хранить пароль в виде текста в памяти LSA.
Далее в идеале перезагрузить компьютер или разлогинить пользователя. С обновлением реестра, теперь мы должны быть в состоянии захватить четкий текстовый пароль из памяти LSA. А как быть если у вас сотни компьютеров и жертва может залогиниться на любом из них, тут нам поможет, групповая политика в Active Directory.
Через групповую политику
Открываем оснастку групповая политика и создаем новую политику или меняем существующую. Переходим в раздел Конфигурация компьютера > Настройка > конфигурация Windows > Реестр. Нажимаем создать > Элемент реестра.
В поле
- Действия выбираем Создать
- В кусте выбираем HKEY_LOCAL_MACHINE\
- Путь раздела ставим HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest
- Имя параметра UseLogonCredential
- Тип параметра Reg_DWORD
- Значение 1
переходим еще во вкладку Общие параметры и ставим галку Применить один раз и не применять повторно.
И еще небольшая фишка это обновить всем политику щелкаем по нужной OU правым кликом, и выбираем Обновление групповой политики.
Все теперь можете собирать пряники :).