|
|
Новости |
|
|
|
| |
17 Октября, 2008
Обновление для Windows Mail Password
Recovery.
17 Сентября, 2008
Новая версия Network Password Recovery Wizard.
28 Августа, 2008
Новые статьи в разделе 'Документы'.
|
|
|
|
|
ЕЩЕ
 |
|
|
Навигация |
|
|
|
| |
Для быстрой навигации можно воспользоваться
картой сайта
Мы всегда рады и открыты для критики, комментариев и
пожеланий в адрес этого сайта и любой из программ.
|
| Есть вопросы? Добро пожаловать на наш форум, посвященный
паролям и вопросам безопасности. |
| |
|
|
|
|
|
|
|
|
| |
Восстановление паролей пользователя из кэшированных записей домена
Введение
Кэширование паролей в Windows NT
Установка опций кэширования
Безопасность кэширования паролей домена
Потенциальные атаки на кэшированные пароли домена
Кэширование паролей домена изнутри
Практическое руководство по восстановлению паролей
пользователей из кэшированных записей домена
Заключение
Приложения
Введение
Вам, наверное, должно быть известно, что операционные системы на базе Windows NT сохраняют, а точнее
кэшируют, пароли пользователя на локальной машине. Это сделано для того, чтобы иметь возможность подключаться к серверу
даже если логон сервер по каким-либо причинам недоступен. В этом случае, пользователь будет иметь доступ к сетевым
ресурсам, которые не требуют доменной проверки.
Кэширование паролей в Windows NT
Говоря в общем и целом, операционные системы Windows NT используют два вида кэширования паролей:
- Общее кэширование
- Кэширование на уровне домена
Нас в данном случае, интересует последнее. Кэширование на уровне домена обеспечивает как минимум две
функциональности:
-
доступ к ресурсам машины когда контроллер домена недоступен. К примеру, некий пользователь
лэптопа использует учетную запись домена для входа в лэптоп, который присоединен к домену. Затем, пользователь
перемещает свой лэптоп в такое место, где домен становится недоступен. В этом случае, Windows использует
кэшированные данные для локального входа в систему и обеспечения доступа к локальным ресурсам компьютера.
-
Single Sign-On (SSO) - функциональность, которая обеспечивает единократную сетевую
аутентификацию, используя данные, полученные при первом интерактивном входе, и исключая их повторное введение.
Если кэширование домена отключено, то при попытке входа на сервер будет выдано сообщение:
The system can not log you on now because the domain DOMAIN_NAME
is not available
Если контроллер домена недоступен и информация пользователя, необходимая для входа, сохранена в кэше, пользователь
увидит диалог со следующим приглашением:
A domain controller for your domain could not be contacted. You have been logged on using cached account information.
Changes to your profile since you last logged on may not be available.
Установка опций кэширования
Количество кэшируемых записей, хранящихся на стороне клиента
Редактируя реестр, можно самому устанавливать необходимое количество предыдущих попыток входа, которые будут
кэшироваться операционной системой. Это значение может варьироваться от 0 до 50. Причем если задать 0, то кэширование
будет отключено. По умолчанию Windows запоминает 10 предыдущих входов. Кэширование контролируется следующим ключом
реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Winlogon
ValueName: CachedLogonsCount
Data Type: REG_SZ
Values: 0 - 50 |
|
Уведомление о входе при использовании кэшированных записей
Если вы попытаетесь подключиться к домену (используя рабочую станцию на базе Windows) и контроллер домена будет
недоступен, вы не увидите сообщений об ошибке, поэтому, возможно, не заметите, что вошли используя кэш домена.
Если вы хотите настроить Windows так, чтобы каждый раз при входе с кэшированными паролями показывалось соответствующее
предупреждение, установите следующие два ключа реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows NT\CurrentVersion\Winlogon
ValueName: ReportControllerMissing
Data Type: REG_SZ
Values: TRUE |
|
Затем, для каждого пользователя системы:
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
ValueName: ReportDC
Data Type: REG_DWORD
Values: 1 |
|
Безопасность кэширования паролей домена
Термин 'кэшированные паролей домена' не
отражает в полной мере того, как Windows кэширует и хранит приватную информацию. Начиная с Windows 2000, имя
пользователя и пароль не хранятся в явном виде. Напротив, система хранит хэш пароля, слегка модифицированный при помощи
соли (т.е. salted hash), которая в свою очередь генерируется на основе имени пользователя в формате юникод.
Если потенциальный хакер попытается проделать простейший криптоанализ, то, по утверждению Microsoft, из данного
алгоритма шифрования можно вывести следующие выводы:
- предварительные таблицы (precompiled tables) должны быть созданы для каждой соли.
- хэш не может быть использован для входа в другую систему.
Если подойти к этому с другой стороны, то может оказаться что:
- можно создать предварительные таблицы для алиасов, т.е. для уже известных имен, например для встроенного
администратора или гостя. С другой стороны, это, возможно, будет пустой тратой времени, потому что кэшированные
записи встроенного админа, как бы это сказать, встречаются не часто.
- чтобы в полной мере исключить возможность входа в другую систему, необходимо было пароль наряду с именем
пользователя, посолить еще и именем домена.
Потенциальные атаки на кэшированные пароли домена
Потенциальный злоумышленник для доступа к компьютеру может добавить новый или переписать хэш своим
собственным значением. Процедура подразумевает физический доступ к компьютеру. Единственная утилита на сегодняшний день,
которая позволяет переписывать или менять хэш на свое собственное значение, - Network
Password Recovery Wizard.
Однако, простое переписавание/замена кэшированного пароля не дает потенциальному злоумышленнику доступ к данным других
пользователей, к Encrypting File System, к приватным данным, зашифрованным при помощи DPAPI (например, пароли IE,
Outlook, Windows Mail, WPA и т.д.).
Кэширование паролей домена - взгляд изнутри
Кэшированные записи домена хранятся в зашифрованном виде в реестре Windows в ветке реестра
HKEY_LOCAL_MACHINE\SECURITY\Cache. Двоичное значение с именем NL$х - соответствуют одной кэшированной записи.
Где х - номер записи. Доступ к этой вестке реестра имеет только система. Каждая запись содержит:
- расширенную информацию о пользователе. А именно: его краткое и полное имя,последнее время доступа, идентификатор
в системе, имя омена, имя днс домена, домен входа, скрипт, путь к профилю пользователя, домашний каталог, диск
домашнего каталога, членство в группах и др.
- приватную информацию, которая состоит и хэша пароля, дополнительных секретах и счетчика итераций Pbkdf2 (для
Windows Vista и, возможно, более поздних операционных систем)
В шифровании кэшируемых записей домена принимает участие LSA секрет с именем NL$KM, который
хранит в себе 64 байтный мастер ключ, привязанный к локальному компьютеру. NL$KM располагается в файле реестра
SECURITY и в свою очередь тоже зашифрован при помощи SYSKEY.
Таким образом, общая схема расшифровки записи домена выглядит так:
- SYSKEY + LSA Master Key + NL$KM = DCP Master Key
- DCP Master Key + NL$x entry = Decrypted DCP entry
После расшифровки кэшированной записи домена мы получаем доступ к хэшу пользователя.
Вкратце, алгоритм шифрования пароля можно описать вот таки образом.
Для Windows 2000-2003: hash = MD4 ( MD4(user password) + lowercase(user name) )
Начиная с Windows Vista алгоритм свертки пароля немного изменился. Теперь он поставлен в многотысячный цикл и скорость
перебора должна быть даже меньше, чем у WPA-PSK:
h = MD4 ( MD4(user password) + lowercase(user name) )
hash = PBKDF2_SHA( h, iterations )
По умолчанию, значение iterations равно 10240. Заметьте, что количество SHA проходов будет в несколько раз больше
этого значения.
Практическое руководство по восстановлению
паролей пользователей из кэшированных записей домена
Для работы нам потребуется лишь один инструмент - программа Network Password
Recovery Wizard в последней версии которой добавилась
поддержка восстановления кэшированных записей. Разобьем условно всю работу на три части:
- Расшифровка кэшированных записей домена
- Анализ полученных данных
- Восстановление пароля выбранной записи
Итак, приступим.
1. Расшифровка кэшированных записей домена
Запускаем программу и из выпадающего меню выбираем, что мы хотим восстановить: Domain Cached Passwords. Если
кэшированные записи находятся на локальном компьютере, смело выставляем автоматический режим и вперед.

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

Нажимем 'Далее' и ждем результатов обработки.
2. Анализ полученных данных
При удачной расшифровке или импорте данных, пользователю будет предложен список расшифрованных записей. Каждая запись
имеет несколько полей. Например, имя пользователя, сервер, членство в группах и т.д.
Вызов контекстного меню правой кнопкой мыши позволяет задейстовать расширенные возможности программы. Для всего списка:
скопировать, сохранить, просмотреть отчет или экспортировать весь список. Для отдельной записи: сменить пароль, удалить
запись, проверить пароль,
угадать пароль, перебирая простейшие и часто встречаемые комбинации, или запустить полноценную атаку.

Перед запуском атаки на пароль выбранной записи, обратите внимание на два поля. Это поле 'Password'
и 'Hash type'. Иногда кэшированный пароль можно найти не
прибегая к полной атаке. В этом случае, если программа нашла пароль записи, он будет находиться в поле
'Password', а сама запись помечена соответствующей иконкой

Поле 'Hash type' содержит тип хэша пароля, который может быть
'NT compatible instant' - мгновенная расшифровка,
'Win2K compatible fast' - быстрое восстановление со скоростью
несколько миллионов паролей в секунду или 'Vista, slow' -
скорость восстановления всего лишь несколько сот паролей в секунду на современном компьютере.
3. Восстановление пароля выбранной записи
Итак, для начала восстановления пароля выбранной записи, щелкаем на ней правой кнопкой мыши и из контекстного меню
выбираем 'Decrypt password hash'. Появится диалог с выбором
метода расшифровки, стандартный для всех программ Passcape Software. Нет смысла описывать все типы атак, более подробную
информацию можно найти на страницах, посвященных расшифровке паролей Opera или Мастер Пароля Firefox.
Неискушенный пользователь может задаться вполне справедливым и логичным вопром: "100% гарантии восстановления нет,
методов много, с какой атаки лучше начать для повышения вероятности ее успешного завершения?".
Для выбора типа и последовательности атак, рекомендуем использовать следующий алгоритм, который применим в большинстве
случаев ко всем типам паролей:
Во-первых, включите опцию предварительной атаки, если она есть. Она поможет
восстановить простые и часто встречающиеся комбинации.
Во-вторых, если вам известно что-либо об искомом пароле, лучше вначале запустить атаку по
маске, либо атаку по ключевому слову. Причем, если вам известна часть пароля, лучше
использовать атаку по маске. Если вы знаете базовую составляющую пароля или, к примеру, знаете слово пароля, но забыли
последовательность заглавных и строчных букв, то вам в первую очередь подойдет атака по ключевому слову.
Если никакой информации об искомом пароле нет, а так чаще всего и бывает, руководствуйтесь следующей последовательностью
действий:
- запуск атаки по словарю без включенной опции мутации
- запуск атаки по словарю с включенной опции мутации, степень мутации зависит от наличия свободного
времени и скорости атаки. Для поиска паролей, набранных в национальной раскладке, необходимо выставить опцию сильной
мутации.
- выбор и загрузка онлайн словарей и повтор шагов 1 - 2
- запуск атаки по фразе без включенной опции мутации
- запуск атаки по фразе с включенной опции мутации, установленной на максимальную эффективность. Это
позволит найти пароли, набранные в национальной раскладке клавиатуры.
- выбор и загрузка онлайн словарей фраз и повтор шагов 4 - 5
- запуск комбинированной атаки по словарям с заданными
правилами генерации фраз
- выбор и загрузка онлайн словарей для комбинированной атаки повтор шага 7
- выбор чарсета для атаки полным перебором, запуск перебора
- при необходимости, выбор нового или дополнение старого набора символов и повтор атаки грубой силой,
т.е. шага 9.
Шаги 1-3 - поиск паролей, состоящих из одного слова.
Шаги 4-8 - поиск паролей, состоящих из нескольких слов.
Шаги 9-10 - полный перебор.
Заключение
Конечно, если скорость атаки составляет миллионы паролей в секунду, как в случае с Windows 2000
совместимыми паролями домена (помните поле 'Hash type' в
списке кэшированных записей?), можно воспользоваться преимуществами всех видов атак в полной мере. Однако, при переборе
хэшей от Windows Vista, со скоростью всего лишь в пару сотен паролей, трудно всерьез рассчитывать на что-то, кроме атаки
по словарю.
Давайте посмотрим на примере, сколько потребуется времени для проведения атаки перебором и нахождения простейшего
восьмисимвольного пароля в том и другом случае. Итак, чтобы перебрать весь диапазон символов a..z, нам потребуется
проверить ни много ни мало - 217 180 147 158 паролей.
Теперь смотрим тайминги.
Восстановление кэшированных хэшей Windows 2000, XP, 2003

Восстановление кэшированных хэшей Windows Vista

Выводы, наверное, вы сделаете сами.
Приложения
Алгоритм проверки хэша пароля кэшированной записи в Windows 2000, XP, 2003:
BOOL CheckCachedDomainPassword(LPCTSTR
cszUserName, LPCTSTR cszPassword, BYTE
pCheckHash[0x10])
{
WCHAR wsz[256];
BYTE pHash[0x10];
INT iLen;
iLen=strlen(cszPassword);
MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,cszPassword,iLen,wsz,256);
Md4Init();
Md4Update((LPBYTE)wsz,iLen*2);
Md4Final(pHash);
iLen=strlen(cszUserName);
MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,cszUserName,iLen,wsz,256);
CharLowerW(wsz);
Md4Init();
Md4Update(pHash,0x10);
Md4Update((LPBYTE)wsz,iLen*2);
Md4Final(pHash);
return (
memcmp(pCheckHash,pHash,0x10)==0 );
} |
|
О программе Network Password Recovery Wizard
Обсудить сатью в форуме
Документ доступен для свободного распространения и
перепечатки с обязательной ссылкой на первоисточник.
(с) 2008 Passcape Software. All rights reserved.
http://www.passcape.com
|