Смекни!
smekni.com

Аудит и восстановление паролей в Windows (стр. 2 из 3)

Перехват аутентификационных пакетов в сети

Даже если программа SYSKEY установлена и активизирована, не имеется необходимого доступа к удаленному или локальному компьютеру, существует возможность получения хэшей паролей учетных записей пользователей. Этим способом является перехват аутентификационных пакетов в сети (sniffing (англ.) - вынюхивание). Клиентская машина обменивается с сервером аутентификационными пакетами каждый раз, когда требуется подтверждение прав пользователя. Необходимо, чтобы компьютер находился в сетевом сегменте пользователя или ресурса, к которому он обращается. Программа для перехвата аутентификационных пакетов (sniffer (англ.) - вынюхиватель), встроенная в LC5, работает на машинах с Ethernet-адаптером и в Windows NT/2000/XP/2003, и в Windows 95/98/Me. Программу LC5 в режиме перехвата аутентификационных пакетов нужно оставить запущенной на некоторое время для сбора достаточного количества хэшей паролей. Полученные данные необходимо сохранить в файл, после чего в программе LCP выполнить импорт файла сеанса LC5.

Для препятствования получения хэшей паролей этим способом фирмой Microsoft было разработано расширение существующего механизма аутентификации, называемое NTLMv2. Его использование становится возможным после установки Service Pack, начиная с Service Pack 4 для Windows NT. Подробнее об использовании NTLMv2 можно прочитать в статье KB147706 How to Disable LM Authentication on Windows NT.

Восстановление паролей

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

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

Последовательный перебор комбинаций (brute force (англ.) - грубая сила (дословно), решение "в лоб") использует набор символов и вычисляет хэш для каждого возможного пароля, составленного из этих символов. При использовании этого метода пароль всегда будет определен, если составляющие его символы присутствуют в выбранном наборе. Единственный недостаток этого метода - большое количество времени, которое может потребоваться на определение пароля. Чем большее количество символов содержится в выбранном наборе, тем больше времени может пройти, пока перебор комбинаций не закончится.

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

Для выполнения атаки с предварительно вычисленными хэшами заранее вычисляются хэши и сохраняются пары пароль/хэш для всех возможных комбинаций выбранного набора символов. Имеющиеся хэши паролей ищутся среди предварительно вычисленных хэшей. Преимуществом метода является очень высокая скорость, недостатками - длительное предварительное вычисление хэшей и большое количество дискового пространства, требуемое для их хранения.

После получения хэшей паролей можно начать восстановление паролей. Двумя основными типами файла, содержащими хэши паролей, являются PwDump- (passwords dump (англ.) - дамп паролей) и Sniff-файл.

Каждая строка PwDump-файла имеет следующий формат:

"ИмяПользователя:RID:LM-хэш:NT-хэш:ПолноеИмя,Описание:ДомашнийКаталог:"

Каждая из 7-символьных половин пароля зашифрована независимо от другой в LM-хэш по алгоритму DES (бывший федеральный стандарт США), NT-хэш получается в результате шифрования всего пароля по алгоритму MD4 (фирмы RSA Security, Inc.). LM-хэш содержит информацию о пароле без учета регистра (в верхнем регистре), а NT-хэш - с учетом регистра. После имени пользователя имеется уникальный идентификатор учетной записи RID (relative identifier (англ.) - относительный идентификатор), который для получения хэшей не используется. Идентификатор встроенной учетной записи администратора равен 500, гостевой учетной записи - 501. LM-хэш присутствует для совместимости с другими операционными системами (LAN Manager, Windows for Workgroups, Windows 95/98/Me и т.д.). Его наличие упрощает восстановление паролей. Если длина NT-пароля превышает 14 символов, LM-хэш соответствует пустому паролю. При существовании LM-хэша восстановление сначала осуществляется по LM-хэшу, после нахождения LM-пароля используется NT-хэш для определения NT-пароля.

Каждая строка Sniff-файла имеет следующий формат:

"ИмяПользователя:3:ЗапросСервера:LM-ответ:NT-ответ"

LM-ответ получается в результате шифрования LM-хэша, NT-ответ - в результате шифрования NT-хэша. Шифрование выполняется по алгоритму DES таким образом, что определить LM- и NT-пароль можно только при проверке всего пароля. Кроме того, в каждом случае используется свой запрос сервера. Поэтому на определение паролей по Sniff-файлу потребуется значительно больше времени.

Первой программой, выполняющей восстановление паролей Windows NT, была L0phtCrack (сегодняшнее название - LC5). Авторами L0phtCrack являются Peiter Mudge Zatko и Chris Wysopal из фирмы L0pht Heavy Industries, Inc. (сейчас @stake, Inc.). При использовании нелатинских букв в пароле с помощью программы LC5 пароль может быть не найден, для восстановления паролей рекомендуется использовать LCP.

Изменение паролей пользователей без их восстановления

Если восстановление паролей пользователей Windows NT/2000/XP/2003 не требуется, возможно их изменение при имеющемся доступе к локальному компьютеру. Изменение паролей делается с помощью программы Offline NT Password & Registry Editor (автор Petter Nordahl-Hagen). Выполняется загрузка с дискеты с операционной системой Linux, выбор пользователя для изменения пароля, вычисление хэша пароля и модификация файла SAM на диске с операционной системой. Программа поддерживает Windows NT/2000/XP/2003, в т.ч. с активизированной служебной программой SYSKEY.

Дополнительные возможности получения информации о паролях

Если в сети есть машины с установленными на них операционными системами Windows 3.11, Windows for Workgroups или Windows 95/98/Me, то имеются дополнительные возможности получения информации о паролях.

По умолчанию в этих операционных системах выполняется кэширование паролей пользователей на диск в файлы %WinDir%<ИмяПользователя>.pwl (PassWord List (англ.) - список паролей). Пароли хранятся в зашифрованном виде, причем регистр букв игнорируется (всегда используется верхний регистр). Алгоритм шифрования паролей начиная с Windows 95 OSR2 был изменен, так как была исправлена обнаруженная ошибка, поэтому восстановить пароли из старых PWL-файлов значительно проще. Для этого могут быть применены программы Glide (автор Frank Andrew Stevenson), PWL_Key (автор Артур Иванов), PwlHack (автор Владимир Калашников), PwlTool (авторами являются Vitas Ramanchauskas, Евгений Королев). Для восстановления паролей из новых PWL-файлов можно использовать PwlHack или PwlTool.

При разрешенном кэшировании паролей с момента входа и регистрации пользователя в Windows и до момента выхода пароли можно определить, запустив программу PwlView (авторами являются Vitas Ramanchauskas, Евгений Королев). Показываются кэшируемые пароли на локальной машине для текущего пользователя, используя недокументированные функции Windows API.

Если пользователь Windows NT/2000/XP/2003 является одновременно пользователем Windows 3.11, Windows for Workgroups или Windows 95/98/Me и будет определен его пароль (как пользователя Windows 3.11, Windows for Workgroups или Windows 95/98/Me), в котором, как уже упоминалось ранее, содержатся только символы верхнего регистра, то с помощью LCP пароль Windows NT/2000/XP/2003 может быть легко определен. Необходимо в качестве известных символов пароля указать символы ранее определенного пароля пользователя Windows 3.11, Windows for Workgroups или Windows 95/98/Me.

Рекомендации администратору Windows 3.11, Windows for Workgroups и Windows 95/98/Me

На машинах с Windows 3.11, Windows for Workgroups и Windows 95/98/Me:

* отключить кэширование паролей в Windows 3.11 и Windows for Workgroups. Для этого в файле %WinDir%system.ini добавить следующий параметр:

[NETWORK]

PasswordCaching=no

* отключить кэширование паролей в Windows 95/98/Me. Для этого с помощью редактора реестра найти в реестре двоичный параметр DisablePwdCaching и установить его в 1 (создав его, если он не существовал) в разделе

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesNetwork

* после отключения кэширования паролей удалить все PWL-файлы с диска и перезагрузить операционную систему;

* если конфигурация компьютера удовлетворяет аппаратным требованиям операционных систем Windows NT/2000/XP/2003, перейти на их использование.

Рекомендации администратору Windows NT/2000/XP/2003

На машинах с Windows NT/2000/XP/2003:

* сделать недоступным для вскрытия корпус компьютера для предотвращения возможного отключения жесткого диска с операционной системой или подключения другого диска;

* в Setup разрешить загрузку только с жесткого диска, чтобы не допустить загрузку с другого носителя;

* установить пароль на вход в Setup, не позволяя отменить запрет на загрузку с другого носителя;

* Windows NT/2000/XP/2003 должна быть единственной операционной системой, установленной на машине, что делает невозможным копирование и замену файлов из других операционных систем;