Расширение привилегий
John-потрошитель
John – это программа взлома паролей с использованием словаря. Ее можно получить по адресу http://www.false.com. Первоначально эта утилита командной строки была создана для взлома файлов паролей системы UNIX, а теперь ее можно использовать для подбора хэш-кодов LanMan системы Windows NT. Помимо того, что John совместима с несколькими платформами и позволяет применять несколько разных алгоритмов шифрования, эта утилита отличается также высокой скоростью работы и тем, что распространяется бесплатно. С другой стороны, ее широкие возможности и, соответственно, большой набор параметров командной строки, делают эту утилиту более сложной в освоении, чем L0phtcrack. Кроме того, поскольку утилита John может взламывать лишь пароли LanMan, то полученные результаты необходимо проверять на соответствие прописных и строчных букв (пароли LanMan всегда переводятся в верхний регистр, тогда как в паролях NT используются как прописные, так и строчные буквы).
Crack 5 с расширением для NT
Утилита crack, написанная Алеком Маффетом (Alec Muffet), изначально предназначалась для взлома файлов паролей системы UNIX. Однако со временем для нее было создано расширение, которое позволило использовать эту утилиту и для взлома паролей NT (http://www.sun.rhbnc.ac.uk/~phacl07/c50a-nt-0.20.tgz). Самое большое преимущество использования утилиты crack состоит в очень широком разнообразии проверяемых ею вариаций возможных паролей (включая более 200 вариантов, основанных на имени пользователя). Однако все преимущества утилиты crack будут сведены на нет, если у вас отсутствует опыт работы в системе UNIX, необходимый для ее установки и запуска.
Контрмеры: защита от взлома пароля
Строгие правила выбора пароля
Никакие технические средства не смогут обеспечить гарантированную защиту от взлома пароля. Они необходимы для создания эффективной защиты, но одних лишь технических средств недостаточно. Самым эффективным и вместе с тем трудно реализуемым средством был и остается правильный выбор пароля. Пользователи, выбирающие легко угадываемые пароли или записывающие их на обратной стороне клавиатуры, по-видимому, еще долго будут оставаться источником головной боли администраторов. Надеемся, что приведенное ниже описание некоторых скрытых недостатков, имеющихся в алгоритмах защиты паролей NT, сможет помочь вам в разъяснении пользователям необходимости строгого соблюдения ваших требований.
Как мы уже неоднократно упоминали, в системе NT применяется два разных алгоритма шифрования пользовательских паролей: совместимый с LanManager (LMH – LanManager Hash) и созданный специально для NT (NTH – NT Hash). Оба представления зашифрованного с помощью этих алгоритмов пароля хранятся в базе данных SAM. Как уже упоминалось, значение LMH вычисляется с помощью алгоритма, имеющего внутренние недостатки (в данном случае не стоит ругать Microsoft – алгоритм LanManager изначально был разработан компанией IBM).
Самым большим недостатком алгоритма LMH является разделение пароля на две части, каждая из которых состоит из семи символов. Другими словами, пароль, имеющий длину 8 символов разделяется на два пароля, первый из которых состоит из 7 символов, а второй – из 1 символа. Подобные утилите L0phtcrack средства используют этот недостаток, проверяя одновременно обе половины пароля именно так, как если бы они были независимыми друг от друга паролями. Рассмотрим, например, 12-символьный пароль, который полностью соответствует требованиям библиотеки Passfilt – l23456Qwerty. Во-первых, когда пароль шифруется по алгоритму LM, его символы преобразуются в верхний регистр– 123456QWERTY. Затем к паролю добавляются нулевые символы (т.е. символы с кодом 0, чтобы получить строку, состоящую из 14 символов): 123456QWERTY_. Перед шифрованием эта строка делится на две части – 123456Q и WERTY_. После этого каждая строка шифруется независимо от другой, а полученные результаты объединяются. Зашифрованное значение для 123456Q – 6BF11E04AFAB197F, а для WERTY_– 1E9FFDCC75-575В15. Таким образом, полученный в результате хэш-код будет иметь следующее значение: 6BF11E04AFAB197F1E9FFDCC75575B15.
Поскольку первая половина пароля, представленного хэш-кодом, содержит и буквы, и цифры, то на ее взлом путем перебора всех возможных вариантов с помощью утилиты L0phtcrack уйдут сутки или около того, в зависимости от вычислительной мощности используемого компьютера. Однако вторая половина пароля содержит только символы, поэтому на ее взлом понадобится всего лишь 60 секунд при использовании компьютера с процессором Pentium. На рис. 5.7 показано, как за считанные секунды с использованием утилиты L0phtcrack была взломана вторая половина пароля пользователя waldo (полный пароль – строка 123456qwerty).
Рис. 5.7. Утилита LOphtcrack взломала половину пароля пользователя waldo менее чем за минуту на компьютере с процессором Pentium