|
|||||||||||||||||||
|
Hacker-Friendly авторизацияПредыдущая страница Истина где-то
рядом… Способ преодоления этого барьера впервые предложил Тодд Сабин (Todd A. Sabin). Вместо того, чтобы вытаскивать хэши напрямую из реестра, их можно взять сразу из памяти, где они находятся уже в расшифрованном виде. Способ был назван pwdump2, реализован в одноименной программе и в дальнейшем лег в основу других программ (pwdump3, LC+4). Однако использование
этих методов требует прав на отладку программ. Как быть, если их нет?
Можно воспользоваться утилитой PWSEX от Elcomsoft. При наличии файлов
SAM и SYSTEM (располагается в том же каталоге) она способна восстановить
пароли даже при активной SYSKEY. По адресу %Системная_директория%\system32\
находится файл logon.scr. Это хранитель экрана, запускаемый при отсутствии
авторизации в течение пятнадцати (Windows NT 4.0/2000) или десяти минут
(Windows XP)8.
Заменим его на выполняемый файл (cmd.exe, как вариант), загрузившись
из-под другой ОС. Затем перезагрузимся в Windows NT/2K/XP, бросим лукавый
взгляд на экран приветствия и пойдем пить чай. Когда бублики закончатся,
у нас будут права системы. От многопроцессорных конфигураций можно ожидать ускорения процедуры в разы, а от распределенных вычислительных сетей — на порядок-другой. Удобства ради примем скорость перебора равной 1010 паролей в секунду. Тогда на перебор всех паролей множества F нам потребуется 1,16х106 секунд, или тринадцать с половиной суток. Поскольку пароль может быть равновероятно найден как в первой, так и во второй части множества F, то, введя математическое ожидание 50%, логично предположить, что пароль длиной менее 14 символов может быть найден в результате аудита LM-хэша за срок вдвое меньший — примерно за неделю. Но стоит помнить,
что ограничить множество паролей (за счет отсекания паролей длиннее
восьми символов) мы можем только в том случае, когда речь идет о сетевой
аутентификации с 32-байтным хэшем. Если же для сетевой аутентификации
используются протоколы NTLM, NTLMv2 или Kerberos, то определить, что
пароль короче восьми символов, уже невозможно. Для локальной аутентификации
это тоже неактуально. Способ первый, ласковый. Обычно администратор (или кто-то из пользователей) создает штатными средствами операционной системы дискету сброса пароля. Отыскиваете таковую, вставляете в дисковод и пытаетесь авторизоваться. После сообщения о неправильном пароле появится диалоговое окно «Забыли пароль?», в котором вам предложат его сбросить. Соглашайтесь! Способ второй, грубый. Пошутили и хватит. Предыдущий абзац имеет мало общего с жизненными реалиями. Вряд ли дискета сброса паролей будет открыто лежать на столе… хотя всякое бывает. Чтобы не надеяться на случай, лучше подстраховаться и запастись утилитами заранее. Например, такой, как бесплатная Offline NT Password & Registry Editor10. Она запускается с загрузочной дискеты с ОС Linux, позволяет менять пароль любому пользователю и записывать измененный файл SAM обратно на винчестер. Есть и другие подобные программы, но большая часть из них стоит немалых денег. Еще один вариант основан на замене динамической библиотеки MSV1_0.DLL (с помощью которой осуществляется процедура проверки пароля) ее модифицированным (пропатченным) вариантом. Для разных версий WinNT давно созданы готовые патчи, которые вы без труда найдете в Сети, равно как и «готовые к употреблению» библиотеки. Здесь я их не публикую, дабы не утомлять читателя строками HEX-кодов и ассемблерным языком. После замены (все тем же способом) оригинальной MSV1_0.DLL на пропатченную вход в систему будет возможен под любым пользователем (вплоть до администратора) и паролем. SYSKEY здесь уже не играет никакой роли. Если ОС Windows 9х/Me позиционировались как «user-friendly» (дружественные к пользователю), то серия NT именовалась «administrator-friendly» (дружественной к администратору). На самом деле, и те и другие получились «hacker-friendly». Для тех, кто поспешит обвинить меня в пропаганде хакерства, я приготовил очередную отговорку: все упомянутые способы и утилиты могут быть использованы для законных целей. Например, к LC+4 и PWSEX прибегают администраторы локальных сетей для аудита паролей пользователей. Таким образом выявляются уязвимые (короткие или словарные) пароли, которые вовремя заменяются более стойкими. Кроме того, описание различных методов атак позволяет знать на детальном уровне о существующих угрозах и принимать соответствующие меры по их предотвращению. Редакция и автор выражают благодарность исполнительному директору компании Elcomsoft (www.elcomsoft.ru ) Владимиру Каталову за помощь в подготовке этой статьи. 7
Если я сам нигде не ошибся в рассуждениях, то, думаю, разногласия существуют
потому, что Крис Касперски считал количество вариантов для WinNT 4.0
с ее ограничениями на допустимые в пароле символы; другие же просто
копировали его текст при объяснении расчетов для WinNT более поздних
версий (5.0 и 5.1 или 2000 и XP соответственно), в которых количество
допустимых символов стало неограниченным в пределах 256-значной матрицы
ASCII. |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил