Как кэшированные учетные данные Windows хранятся на локальном компьютере?

Как кэшированные учетные данные домена Active Directory хранятся на клиенте Windows? Хранятся ли они в локальной базе данных SAM, что делает их восприимчивыми к тем же атакам радужных таблиц, к которым подвержены учетные записи локальных пользователей, или они хранятся по-другому? Обратите внимание, что я понимаю, что они соленые и хэшированные, чтобы не быть сохраненными в виде простого текста, но хешируются ли они так же, как локальные учетные записи, и хранятся ли они в одном месте?

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

3 ответа

Решение

"Кэшированные учетные данные"

Кэшированные учетные данные для домена AD на самом деле представляют собой двойные хэши паролей с солью и хранятся в кусте HKLM\Security. Расположение файла улья: %systemroot%\System32\config\SECURITY

Только системный пользователь имеет доступ к разделам реестра:
HKLM\Security\Cache\NL$n где n является индексом от 1 до максимального количества кэшированных учетных данных.

Восприимчивость к атакам

WinNT to WinXP использовали хэши "Lan Manager" для локальных учетных записей, которые легко ломаются на современном оборудовании. Взлом обычно занимает несколько минут (я недавно сделал 3 пароля в 00:08:06) только с обычным настольным компьютером. Хэши Lan Manager не засолены, поэтому есть общедоступные радужные таблицы.

Vista и более поздние версии используют NT-хэши для локальных учетных записей. Windows 2000 и более поздние версии используют NT-хэши и для учетных записей домена. NT-хэши - это соленые двойные хэши MD4. Соль для каждой записи предотвращает использование радужных таблиц, но MD4 может выполняться очень быстро на современном оборудовании: около 6 вычислительных лет для 60-битного пароля. При удаче и кластере с 6 GPU взломщик может взломать пароль такого типа за ~6 месяцев. Принимая это к облаку, около $35 тыс. На Amazon EC2 GPU - в зависимости от доступности, это могут быть часы.

Они обрабатываются диспетчером учетных данных, для которого существует API диспетчера учетных данных. Соленые хэши хранятся на диске в некоторой степени надежно и доступны через HKLM\Security. (К которому может обратиться только LocalSystem по умолчанию, но его легко обойти, например, с помощью psexec -i -s regedit.exe.)

Однако в работающей системе Windows ситуация более тяжелая, поскольку недавно использованные учетные данные можно легко перевести и преобразовать в обычный текст, подключив DLL к Lsass. (См. Мимикац.)

Так что да, вы найдете какой-нибудь хеш (или хеш хэша, или "верификатор", или как вы хотите его называть) в HKLM\Security\Cache на клиенте. Но я не думаю, что есть какой-либо реальный способ атаковать хэш на диске. Это не тот старый хэш NTLM, который можно атаковать.

Учетные данные фактически не кэшируются на локальном компьютере. Смотрите этот отрывок из MS:

Безопасность кэшированных учетных данных домена

Термин кэшированные учетные данные не совсем точно описывает, как Windows кэширует информацию о входе в систему для входа в домен. В Windows 2000 и более поздних версиях Windows имя пользователя и пароль не кэшируются. Вместо этого система хранит зашифрованный верификатор пароля. Этот верификатор представляет собой соленый хеш MD4, который вычисляется два раза. Двойное вычисление фактически делает верификатор хэшем хеша пароля пользователя. Это поведение отличается от поведения Microsoft Windows NT 4.0 и более ранних версий Windows NT.

http://support.microsoft.com/kb/913485

Другие вопросы по тегам