Получение хэш-кодов паролей Win 2000

Хакеры будут счастливы узнать, что хэш-коды диспетчера локальной сети LanManager (LM) хранится в предлагаемом по умолчанию местоположении Win 2000 для обеспечения совместимости с клиентами других версий (отличными от Windows NT/2000). Это приводит к проблемам, описанным в главе 5, для устранения которых можно использовать предложенные там же решения. Однако, к небольшому разочарованию хакеров, благодаря некоторым новым свойствам Win 2000 и, в первую очередь, алгоритму шифрования SYSKEY, стандартные приемы взлома паролей теперь неприменимы. Однако, как будет видно из следующих разделов, не все обстоит так благополучно.

 Получение базы данных SAM


На контроллерах доменов Win 2000 хэш-коды паролей хранятся в файле службы каталогов Active Directory (%windir%\NTDS\ntds .dit). При стандартной конфигурации этот файл занимает порядка 10 Мбайт и хранится в зашифрованном виде, поэтому взломщики вряд ли смогут заполучить его с целью последующего анализа.
Однако интерес для хакеров может представлять файл диспетчера учетных записей защиты SAM (Security Account Manager), содержащийся на компьютерах, не выступающих в роли контроллеров домена. Получение данных этого файла в операционной системе NT 4 не составляло большого труда. Местоположение файла SAM в новой версии операционной системы по прежнему определяется параметром %systemroot%\system32\config, а доступ к файлу блокируется операционной системой. Поэтому получение данных путем загрузки в режиме DOS по-прежнему возможно даже при использовании пятой версии файловой системы NTFS. Для реализации этой задачи можно воспользоваться утилитой NTFSDOS, расположенной по адресу http://www.sysinternals.com/. Местоположение резервной копии файла SAM определяется параметром %systemroot%\repair (этот файл называется SAM, а не ЗАМ._, как в NT 4). В ней содержится информация обо всех пользователях системы на момент ее установки. В приложение Microsoft Backup v.5 (файл ntbackup.exe) интегрирована утилита rdisk, поэтому с его помощью можно создать аварийный диск. При выборе команды Create Emergency Repair Disk открывается диалоговое окно, в котором нужно указать, следует ли копировать системный реестр в резервный каталог, как показано ниже.
При выборе этого режима весь системный реестр, включая улей SAM, копируется в папку %windir%\ repair\RegBack. Члены группы Users обладают правом чтения информации из этой папки, а члены группы Power Users — правом ее модификации, если диск отформатирован для использования файловой системы NTFS. Следовательно, только члены группы Power Users имеют расширенный доступ к этому файлу, а не все пользователи. Атаки, направленные на получение резервной копии файла SAM, также несколько осложняются тем, что этот файл зашифрован с использованием нового алгоритма шифрования SYSKEY, а на сегодняшний день механизм расшифровки таких файлов (отличный от pwdump2) неизвестен.


Фаил SAM в Win 2000 по умолчанию кодируется с использованием SYSKEY и восстанавливается с помощью средства pwdump2.

Не забывайте очищать каталог Repair \RegBack


Не оставляйте взломщикам никаких шансов — переносите файлы каталога Repair\RegBack на съемный диск или в другое безопасное место. А еще лучше — при запуске утилиты создания диска аварийного восстановления не выбирайте опцию архивации системного реестра.

Загрузка хэш-кодов чо, с с помощью pwdump2


В операционной системе Win 2000 по умолчанию применяется кодировка SYSKEY (более подробная информация об этом содержится в разделе Q143475 базы знаний и в главе 5). Поэтому с помощью средства pwdump нельзя корректно расшифровать хэш-коды паролей из системного реестра Win 2000. Для решения этой задачи надо использовать pwdump2 (более подробно о pwdump, pwdump2, а также о том, почему для расшифровки SYSKEY не подходит pwdump, читайте в главе 5). Более того, для локальной загрузки хэш-кодов с контроллера домена требуется обновленная версия утилиты pwdump2 (доступная по адресу http://razor.bindview.com), поскольку теперь хранение паролей организовано на базе Active Directory, а не в соответствии с традиционными принципами файла SAM.

Контрмеры против загрузки хэш-кодов с помощью pwdump2


Поскольку принципы подключения динамических библиотек в Windows не изменились, то против утилиты pwdump2 не существует никакой зашиты. Слабым утешением служит лишь тот факт, что эта утилита работает локально и для ее запуска требуются привилегии администратора. Если же хакеру удалось получить эти привилегии, то он сможет получить практически любую информацию о локальной системе (другой вопрос, как можно использовать данные SAM для новых атак).

Добавление хэш-кодов в файл SAM с помощью chntpw


Если хакер получил физический доступ к системе и у него достаточно времени для загрузки другой операционной системы, то он может реализовать сложную атаку, описанную Питером Нордалом-Хагеном (Fetter Nordahl-Hagen). В ряде статей, содержащихся на этом узле, Питер приводит поразительные факты. Например, по его словам, хэш-коды паролей можно добавить в файл SAM в автономном режиме и таким образом изменить пароль любого пользователя системы.
Но это еще не все! Далее Питер предлагает программу изменения паролей в операционной системе NT chntpw, а также загрузочную дискету с операционной системой Linux, которую можно использовать для входа в систему NT/2000, изменения пароля администратора (даже если он был переименован), перезагрузки системы и регистрации в ней с новым паролем.
Дальше больше, Питер утверждает, что этот метод работает даже при использовании шифрования SYSKEY и даже в режиме защиты ключа SYSKEY паролем или его хранения на гибком диске.
"Минуточку ,— возразит читатель, — средство SYSKEY использует второй, 128-разрядный тип шифрования паролей на основе уникального ключа, который можно хранить в реестре, защитить паролем или записать на гибкий диск (см. главу 5). Как же можно изменить пароль, не зная системного ключа для его создания?"
Для таких читателей Питер рассказывает, как отключить режим SYSKEY. Более того, он обнаружил, что взломщику это не понадобится: при добавлении в файл SAM хэш-кодов старого образца (не использующих кодировку SYSKEY) они автоматически кодируются с помощью ключа SYSKEY после перезагрузки системы. Такой глубокий анализ достоин восхищения. Браво Питеру!
Питер отключает SYSKEY следующим образом (хотя можно этого и не делать).
1. Устанавливает для параметра HKLM\System\CurrentControlSet\Control\LsaXSecureBoot значение 0 (этот параметр может принимать следующие значения: 0 — системный ключ отключен, 1 — ключ хранится в реестре в открытом виде, 2 — ключ хранится в реестре и защищен паролем, 3 — ключ хранится на гибком диске).
2. Сбрасывает соответствующий флаг в бинарной структуре HKLM\SAM\Domains\AccountXF. Этот параметр недоступен в процессе работы операционной системы.
3. В Win 2000 задает для параметра HKLM\security\Policy\PolSecretEncryption Key\<default> значение 0.
Питер утверждает, что изменение значения лишь одного из двух первых параметров в операционной системе NT 4 даже при наличии сервисных пакетов вплоть до SP6 приводит к появлению предупреждения о несовместимости файла SAM с системными параметрами при завершении загрузки и повторному включению ключа SYSKEY. В Win 2000 в случае несовместимости значений трех перечисленных параметров сразу же выполняется перезагрузка и значение параметров изменяется на наиболее типичное.

Применение этих приемов может привести к повреждению файла SAM. Испытывайте их только на тестовых компьютерах с системой NT/2000 и будьте готовы к возможному отказу операционной системы. В частности, не выбирайте опцию Disable SYSKEY программы chntpw в Win 2000. По отзывам, это может привести к непредсказуемым результатам и даже необходимости полной переустановки системы. Описанный выше прием не позволяет изменять пароли пользователей на контроллере домена Win 2000, а относится лишь к изменению файлов SAM. Напомним, что на контроллере домена хэш-коды паролей хранятся в Active Directory, а не в файле SAM.

Контрмеры против chntpw


Если хакеры могут получить неограниченный физический доступ к системе, то противостоять им практически невозможно. Одна из слабых контрмер состоит в такой настройке параметров, при которой требуется привлечение ключа SYSKEY при каждой загрузке. Этого можно добиться, установив режим защиты системного ключа паролем или хранения его на гибком диске (в главе 5 описаны три модели использования ключа SYSKEY). Тогда даже после изменения пароля администратора для загрузки системы хакер должен будет ввести пароль SYSKEY. Конечно же, с помощью программы chntpw хакер может полностью отключить системный ключ, но тогда он рискует вывести из строя операционную систему, если это Win 2000.
С помощью готовой программы chntpw можно лишь полностью отключить SYSKEY. Спрашивается, а что если параметр SecureBoot будет принимать значение 1, а не 0, для локального хранения системного ключа? Это значение позволит отключить защиту SYSKEY паролем и режим его хранения на гибком диске, сводя на нет эти контрмеры. Исходный код программы chntpw можно найти на узле Питера. Можно также воспользоваться существующей утилитой chntpw в режиме редактирования реестра.
В условиях отсутствия надежной защиты ключа SYSKEY необходимо полагаться на традиционные методы защиты, такие как обеспечение физической безопасности важных систем, установки паролей на BIOS или отключения режима загрузки системы с гибкого диска.

Удаление пароля администратора, вместе с файлом SAM


25 июля 1999 года Джеймс Дж. Ерейс (James J. Grace) и Томас С.В. Бартлетт III (Thomas S. V. Bartlett III) опубликовали потрясающую статью о том, как удалить пароль администратора, загрузившись в другой операционной системе и удалив файл SAM http://www.deepquest.pf. Имея неограниченный физический доступ к компьютеру и средства для записи информации в разделы NTFS (например, утилиту NTFSDOS Pro, доступную по адресу http://www.sysinternals.com), с помощью этого средства можно легко обойти всю локальную систему зашиты NT/2000.
Хотя описанная в статье процедура предполагает установку второй копии операционной системы NT или 2000 наряду с исходной, это требование не является обязательным, если взломщик преследует лишь цель удаления пароля учетной записи администратора. Можно просто удалить файл SAM.
Эта атака может иметь серьезные последствия при использовании шифрования файловой системы, описанные в следующем разделе.

Контроллеры доменов Win 2000 не пострадают от удаления файла SAM, поскольку на этих машинах хэш-коды паролей хранятся в Active Directory. Однако в указанной статье приводится механизм достижения аналогичного результата на контроллере домена, предполагающий установку второй копии Win 2000.

Предотвращение удаления файла SAM


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