|
|||||||||||||||||||
|
Hacker-Friendly авторизацияРано или поздно рядовому пользователю приходится заниматься взломом. Причины различны — от банального склероза (забыл пароль) до желания нормально работать в какой-нибудь локальной сети, не ограничиваясь правами гостя. На большинстве компьютеров сейчас установлена та или иная версия Windows NT (4.0/5.0/5.1), что делает задачу довольно легко разрешимой. Рассмотрим способы взлома этих операционных систем при условии наличия физического доступа к атакуемому компьютеру. Мы можем оказаться в одной из двух ситуаций: - Нужно узнать пароль в системе. Казалось бы, зачем узнавать пароль, если существуют
способы авторизоваться и без него? Во-первых, зная пароль, не придется
заметать следы взлома. Вы просто входите от имени другого пользователя
(или администратора) и работаете из-под его учетной записи. Во-вторых,
не имея оригинального пароля (сбросив его, заменив своим или пустым),
вы не сможете получить доступ к файлам, которые пользователь зашифровал
посредством EFS1.
То же самое касается личных ключей из сертификатов2. Заполучив файл SAM, можно приступать к отысканию паролей доступа. Однако невозможно провести обратную процедуру и вычислить исходный пароль на основании его хэша, поскольку хэширование — однонаправленное преобразование. Для решения этой задачи используется метод подбора пароля различными способами. Суть его в том, что каждый пароль, который может быть использован в системе, хэшируется по алгоритму LM или NT, после чего сравниваются два хэша: проверяемого пароля и хранящегося в файле SAM. Если они совпадают, то считается, что пароль найден. Если нет, перебор продолжается. Поскольку LM-хэш менее надежный, то для получения несанкционированного доступа пароли подбирают, сравнивая именно LM-, а не NT-хэши, хотя никто не запрещает работать и с NT-хэшами, а в некоторых случаях (см. далее) сравнение NT-хэшей вообще единственный способ подобрать пароль. LM- и NT-хэши имеют фиксированную длину в 16 байт независимо от длины вводимого пароля и его структуры. Windows NT версии 5.0 (2000) и старше разрешают использовать в качестве парольного символа любой из 256 кодов ASCII, а длина пароля ограничивается 127 символами. Перед хэшированием по алгоритму LM все буквенные символы в пароле приводятся к верхнему регистру. Таким образом, 26 символов строчных букв латинского алфавита и 33 русского надо исключить из 256 вариантов ASCII-символов. Отсюда следует, что в локализованной версии Windows NT для создания пароля доступны 256 – (26+33) = 197 символов. При длине пароля более 14 символов (предел для WinNT 4.0) алгоритм подготовки паролей к LM-хэшированию не может быть выполнен корректно. Происходит ошибка, в результате которой LM-хэш всегда принимает значение, соответствующее нулевому паролю. C NT-хэшем таких проблем нет. Из-за этой ошибки подбор пароля длиной более 14 символов путем сравнения LM-хэшей невозможен в принципе. Придется считать и сравнивать NT-хэши, что займет гораздо больше времени. В то же время, если длина пароля превышает 14 символов, это можно определить сразу — лишь взглянув на LM-хэш. При хэшировании пароля по алгоритму NT различаются регистры букв — следовательно, любой из 256 кодов ASCII не просто допустим, а обрабатывается уникально и потому имеет реальный вес. Непосредственным перебором пароль длиной более 14 символов в Windows NT 5.0/5.1 пришлось бы искать среди примерно 7,05х10305 вариантов5. В тоже время число возможных NT-хэшей гораздо меньше — 2128=25616 »3,4х1038 вариантов. Иными словами, смысла делать пароль длиннее 16 символов нет. Все равно хэш получится шестнадцатибайтным с теми же 256 вариантами допустимых значений для каждого байта. При длине пароля от 17 до 127 символов его хэш будет совпадать с одним из хэшей другого пароля, длиной до 16 символов включительно. Внушительное количество возможных комбинаций (3,4х1038) являлось бы реальной характеристикой стойкости пароля только в том случае, если каждый бит хэша равновероятно может быть как единицей, так и нулём. На самом деле это не так. Хэш формируется на основе пароля, а в качестве символов последнего обычно используют буквы, реже цифры, еще реже — специальные символы. Поэтому вероятность одних паролей (и следовательно хэшей) гораздо выше, чем других. До сих пор избирательная атака по словарю и её комбинированный вариант позволяют вскрыть большую часть паролей сколь угодно криптографических стойких систем. Нет особой разницы между практической надежностью 64- и 1024-битного ключа, если ваш пароль key или 123. Такой пароль вскроют прежде, чем вы дочитаете это предложение до конца. Атака по словарю представляет собой перебор в качестве паролей слов из предварительно составленного списка. Комбинированный вариант использует не только слова из списка, но и их вариации. Например, пароли, набранные транслитом, без согласных, с замененной раскладкой, дважды подряд, в обратном порядке и т.д. Пароли до 14 символов включительно вскрываются сравнением LM-хэшей. Тут все несколько проще: длина хэша также всегда равна шестнадцати байтам (либо дополняется до двадцати одного байта при сетевой аутентификации), а каждый символ пароля может принимать одно из 197 значений. Однако для нахождения пароля вовсе не обязательно перебирать весь диапазон вариантов (5,15х1036). Дело в том, что в результате подготовки пароля к хэшированию по алгоритму LM он претерпевает ряд изменений6: - В зависимости от длины введенный пароль
усекается либо дополняется нулями так, чтобы из него получилась строка
в 14 байт. Если пароль был короче восьми символов, то байты от 15-го до 21-го включительно (третья часть 21-байтного хэша) всегда равны 0х04ЕЕ0000000000. Таким образом, можно сразу определить, что пароль короче восьми символов. 1
Encrypting File System — возможность файловой системы NTFS хранить данные
в зашифрованном виде. Следующая страница |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил