Расширение привилегий
У вас может возникнуть вопрос: "Стоит ли читать, что может произойти, когда кто-то получит права администратора на моем компьютере? И так все ясно!" Не спешите с выводами – отформатировать жесткий диск и переустановить систему с установочных дисков вы всегда успеете. Гораздо важнее попытаться установить, какие ресурсы были использованы взломщиком и как далеко ему удалось продвинуться. Взломщик мог назначить привилегии администратора локальной системы какому-нибудь пользователю, не имеющему практически никаких прав для доступа к другим компьютерам сети. Поэтому ему, скорее всего, понадобится установить в сети дополнительные средства, с помощью которых он мог бы расширить свои полномочия. Выявить взломщика на этом этапе и остановить его проникновение не только возможно, но и жизненно необходимо. В данном разделе вы найдете подробное описание некоторых основных средств и методов, используемых в этой чрезвычайно важном "финальном поединке" взломщика и системного администратора.
Взлом базы данных SAM
Получив привилегии администратора, взломщик, скорее всего, сразу же направится к диспетчеру SAM системы NT (SAM – Security Accounts Manager). В базе данных SAM содержатся имена и зашифрованные пароли всех пользователей локального узла или домена, если взламываемая система является контроллером. Поэтому данные SAM – наиболее вожделенная цель для нанесения завершающего удара, подобная файлу /etc/passwd из мира UNIX. Даже если база данных SAM получена с автономной станции NT, существует шанс получения с ее помощью доступа к контроллеру домена. Таким образом, взлом диспетчера SAM – это один из наиболее мощных методов расширения привилегий и использования доверительных отношений.
Стоп, скажет внимательный читатель, а как же зашифрованные пароли? Неужели шифрование не сможет свести на нет все попытки хакеров? Теоретически – да, однако на практике дела обстоят не совсем так. К сожалению, для обеспечения обратной совместимости компания Microsoft значительно ослабила безопасность SAM, используя алгоритм хэширования (одностороннего шифрования), оставшийся в наследство NT от сетей Lan Manager. Хотя поддерживается и новый алгоритм NT, операционная система вынуждена хранить вместе с новым хэш-кодом и хэш-код, вычисляемый по старому алгоритму LanManager, чтобы обеспечить совместимость с клиентами Windows 9х и Windows for Workgroups.
Более простой алгоритм хэширования LanManager уже давно был изучен, поэтому в большинстве случаев пароли сервера NT можно получить достаточно просто. Все зависит лишь от их длины и набора символов. Например, 10phcrack, одна из самых популярных утилит взлома файлов SAM, позволяет взломать любой буквенно-цифровой пароль за 24 часа на компьютере с процессором Pentium II 450 МГц (версия 2.5; подробнее см. http://www.IOpht.com/IOphtcrack). Техническое обоснование слабости подхода, применяемого при хэшировании паролей в NT, приведено по адресу http://www.IOpht.com/IOphtcrack/rant.html, а также содержится ниже в разделе "Строгие Правила Выбора Пароля" этой главы.
Утилиты взлома паролей, несмотря на кажущуюся сложность решаемой ими задачи, на самом деле не что иное, как быстрые и оптимизированные инструменты автоматизированного подбора паролей. Сначала по заданным входным данным (список слов из словаря или случайным образом генерируемые строки) и с использованием алгоритма шифрования они получают результат, а затем сравнивают его с хэш-кодом пользовательского пароля. Если оба значения совпадают, значит, пароль угадан, т.е. "взломан". Данный процесс обычно выполняется в автономном режиме с использованием перехваченного файла паролей, поэтому блокировки учетной записи в таких случаях вообще не возникает, а процесс подбора пароля может продолжаться сколь угодно долго.
Как правило обработка зашифрованных данных оказывается весьма ресурсоемким процессом. Однако, как мы уже упоминали, знание тех или иных недостатков взламываемой системы, к каким, например, относится хорошо изученный алгоритм хэширования LanMan, позволяет значительно ускорить этот процесс. Таким образом, получение пароля – это лишь вопрос производительности процессора и размера словаря (некоторые примеры словарей и списков слов можно найти по адресу http://coast.cs.purdue.edu).
He хотите ли воспользоваться этими инструментами, чтобы проверить, насколько хороши выбранные вашими пользователями пароли? Что ж, тогда приступим.
Получение базы данных SAM
При осуществлении любых попыток взлома первый этап состоит в получении файла паролей, который в случае NT называется файлом данных SAM.
Система NT хранит данные SAM в файле с именем (ни за что не догадаетесь!) SAM, который содержится в каталоге %systemroot%\system32\config (во время работы операционной системы доступ к этому файлу заблокирован). Файл SAM является одним из пяти основных ульев системного реестра NT и представляет собой физическое место хранения данных из группы параметров системного реестра HKEY_LOCAL_MACHINE\SAM. Эта группа параметров недоступна для изменения, даже после регистрации в качестве администратора. (Однако, используя некоторые хитрости и службу Schedule, это все же можно осуществить. Для получения об этом более подробной информации читайте раздел "Аудит Доступа К Базе Данных SAM?" ниже в этой главе).
Существует четыре способа получения данных SAM: перезагрузка компьютера с помощью дискеты с альтернативной операционной системой и последующее копирование файла SAM на съемный носитель; копирование резервной копии файла SAM, созданной утилитой восстановления системы NT; извлечение хэшированных паролей непосредственно из SAM. Четвертый метод основывается на перехвате данных об именах пользователей и паролях, передаваемых по сети (такой подход уже рассматривался в разделе "Перехват паролей, передаваемых по сети" выше в этой главе).