Saturday, June 2, 2012

Mimikatz/WCE1.3 vs. MS Digest/WDigest

Много шума наделал выход утилиты/утилит, вытаскивающей пароли из памяти "lsass.exe" в открытом виде. Не будем говорить много о том, как это плохо и, что, в целом, можно придумать схему, когда чистый пароль хранить не надо, а можно обойтись хешем, а посмотрим что на эту тему пишут официальные документы.

Из первоначальной RFC26117 следует, что "by design" использование аутентификации Digest требует "знание" сервером оригинала пароля. Это просто понять, если посмотреть на формулы в Википедии. Ну и Бог бы с ним, все-таки 1999 год, да и цель свою - не передавать пароль в открытом виде по сети, в отличие от Basic (хотя, при использовании SSL/TLS получается даже безопаснее, поскольку для Basic серверу достаточно знание хеша пароля) - протокол реализует.

Как отключить все эти пережитки прошлого (допустим, что я готов к последствиям), я так и не нашел. Однако, в technet-е , указано, что фичу хранения пароля в открытом виде можно отключить. Цитата:
"Digest authentication is successful only if the domain controller has a reversibly encrypted (plaintext) copy of the requesting user's password stored in Active Directory. To allow passwords to be stored in plaintext, you need to activate the Store password using the reversible encryption setting on the Account tab of the user in Active Directory. Alternatively, you can set group policy to enable this capability. After making this setting, you need to set a new password in order to activate this feature because the old password cannot be determined. "

Как этот параметр ставить и где он есть написано здесь.

Я игрался с WCE. На моей, полностью запатченной и забезопашеной Win7 wce1.3beta работала на раз: пароли доменных учеток дампились в открытом виде. Причем ее x64-версия даже не палилась антивирусом.  Единственная проблема - если в пароле есть русские буквы, пароль не показывается, пишется "<contains-non-printable-chars>" => ищу (может не так целенаправленно) исходники, готов поправить.

Важно отметить, что параметр "Store password using the reversible encryption", по-русски это выглядит так (кое-что пришлось замулевать):

 Отключен. Если я правильно понимаю что написано:

то не должен пароль дампиться, а все работает.....

Какие у кого есть предложения? Как можно обезопаситься?

4 comments:

pushkinist said...

не, этот параметр не влияет.
отключить это никак нельзя, микрософт считает ситуацию нормой и просто советует давать пользователям минимальные права, без привилегий дебаг (хотя такие рекомендации - просто смехота).

Sergey Soldatov said...

Да, только в их доках написано, что параметр влияет! Дайте ссылку, где MS считает это нормой. Спасибо.

pushkinist said...

параметр про обратимое шифрование касается постоянного хранения паролей, а мимикац извлекает пароли из оперативной памяти (это не хранение).

ссылки нет, я в переписке интересовался у ИБ-спецов местного микрософта.
также автор мимикаца на слайде благодарностей в презентации упоминает МС за то, что они не видят в этом проблемы.

Sergey Soldatov said...

Что стало известно, после небольшого эксперимента:
1. Дампятся только пароли недавно вводимые ("недавно" длится крайне долго - до выхода). Проверял так: сделал пользователя net user-ом. Его пароль стал дампиться только когда я им зашел (использовал runas)

2. По ходу фича действительно не отключается.

Спасибо за исправления!