Коллектив авторов - Защита от хакеров корпоративных сетей
Часто, особенно если доступен список зашифрованных паролей, для расшифровки паролей используется метод «грубой силы». Обычно точное число символов в пароле неизвестно, но в большинстве случаев справедливо полагать, что в пароле от 4 до 16 символов. Одному символу пароля может быть присвоено около 100 значений, поэтому число паролей изменяется от 1004 до 10016. Несмотря на внушительные числа, они конечны, поэтому пароль может быть определен с помощью атаки методом «грубой силы».
Перед обсуждением применения специальных методов «грубой силы» следует кратко пояснить вопросы шифрования паролей. Большинство современных операционных систем в интересах безопасности применяют кэширование паролей. Безопасность систем усиливается в результате того, что пароли никогда не хранятся на сервере в открытом виде. Даже если неавторизованный пользователь получит доступ к списку паролей, то он не сможет немедленно воспользоваться им. Поэтому у администратора всегда будет возможность поменять важные пароли до того, как ими воспользуются в зловредных целях.
Обычно пароли хранятся в формате кэш-величин. После ввода пароля при помощи однонаправленных кэш-функций вычисляется его кэш-величина, например как это реализовано в алгоритме MD5 (Message Digest 5 – дайджест сообщения 5). Вычисленная кэш-величина запоминается. Функции кэширования однонаправлены в том смысле, что по кэш-величине практически невозможно восстановить данные, по которым она была вычислена. Серверу не обязательно знать пароли. Ему достаточно удостовериться, что пользователь знает свой пароль. При установлении подлинности пользователя вычисляется кэш-величина введенного им пароля, которая сравнивается с величиной, хранимой на сервере. При их совпадении подтверждается подлинность пользователя. В противном случае системой попытка подключения отвергается и в журнале регистрации сохраняются необходимые сведения.
Определение паролей методом «грубой силы» обычно сводится к следующему. Крадутся копии имен пользователей и список кэшированных значений паролей. А затем при помощи известной функции кэширования методично вычисляются кэш-величины всевозможных паролей. Пароль считается взломанным при совпадении украденной и вычисленной кэш-величины. Некоторые варианты метода грубой силы предполагают простой перебор всевозможных паролей при попытке подключения через удаленный доступ. Но такие случаи наблюдаются редко из-за предусмотренной в системе блокировки учетной записи и имеющихся в распоряжении системного администратора средств, позволяющих легко определить и отследить подобные попытки (блокировка учетной записи – элемент безопасности Windows NT, блокирующий учетную запись пользователя, если в течение определенного интервала времени было предпринято определенное число неудачных попыток входа в систему). К тому же они слишком медленны.
Правильный выбор пароля уменьшает его шансы оказаться взломанным, но не исключает их совсем. Выбор простых паролей, например осмысленных слов языка, облегчает подбор пароля в результате простой атаки со словарем. В этом типе атак применяются так называемые словарные файлы, в которых хранятся длинные списки слов. Во время атаки в них ищутся слова, совпадающие с паролем. Пароли из букв, цифр и специальных символов более защищены от взлома и требуют применения усовершенствованных методов «грубой силы», в которых предусмотрена проверка всех печатных символов. Их реализация займет значительно больше времени.
Наиболее часто для вскрытия паролей методом «грубой силы» используются программы L0phtcrack для Windows и Crack and John the Ripper для UNIX. Их применяют не только зловредные хакеры. Специалисты в области безопасности считают их полезными при аудите компьютерных систем. Ведь зная, сколько времени потребуется на взлом пароля специалисту в области безопасности, можно приблизительно оценить время, необходимое злоумышленнику для того, чтобы сделать то же самое. Далее будет кратко рассказано о каждой их этих программ. Но помните, что всегда следует получить письменное разрешение системного администратора на их использование до начала применения любой из этих программ.
Программа L0phtcrack
Организация L0pht выпустила в 1997 году программу L0phtCrack – инструментальное средство аудита паролей для Windows NT. В ней реализовано несколько способов восстановления паролей по их кэш-величинам, основанным главным образом на методе «грубой силы». Выбираемый набор символов определяет время и производительность, необходимые для перебора ключевого пространства. Очевидно, что чем больше символов в пароле, тем больше времени уйдет на атаку. Но атаки со словарем, которые для взлома паролей используют слова из базы данных паролей, обычно эффективны и не требуют много времени для вскрытия «слабых» паролей. В таблице 6.1 показана зависимость времени вскрытия паролей программой L0phtcrack 2.5 от выбранного набора символов.
Таблица 6.1.
Время взлома паролей программой L0phtcrack 2.5 в результате атаки методом «грубой силы» на процессоре Quad Xeon 400 МГц
Использовано с разрешения LOpht
L0pht Heavy Industries – разработчик L0phtcrack продала права на программу @stake Security. После покупки @stake Security выпустила программу под названием LC3, которая является преемником L0phtcrack. LC3 – это усовершенствованная версия L0phtcrack 2.5, в которую добавлены возможности распределенного поиска паролей и простое приложение пассивного прослушивания сети, позволяющее перехватывать передаваемые по Ethernet кэши паролей. Дополнительно в состав LC3 включен мастер взлома паролей, помогающий в проведении аудита системных паролей менее квалифицированным пользователям. На рисунке 6.2 представлен отчет атаки со словарем на простые пароли пользователя программной LC3.
Рис. 6.2. Отчет результата простой атаки со словаремВ программе LC3 можно найти ряд усовершенствований программы L0phtcrack 2.5. Перепроектированный пользовательский интерфейс – одно из них. L0phtCrack и LC3 – коммерческие пакеты программ, но 15-дневную пробную версию программы можно получить по адресу www.atstake.com/research/lc3/download.html. Утилита Crack
Одна из самых ранних и широко используемых утилит взлома паролей называется просто Crack. Так ее автор Алек Муффет (Alec Muffett) назвал программу угадывания паролей для UNIX-систем. Crack выполняется в UNIX-системах и взламывает их пароли. В основном работа программы основана на словарях. В последней версии программы Crack7 (v5.0a от 1996 года) автор дополнительно предусмотрел возможность применения метода «грубой силы» в случае неудачи атаки со словарем. В этом подходе наиболее интересным является то, что программа может выявить типовые случаи «улучшения» пользователями своих паролей. Например, вместо пароля «password» кто-то может выбрать вариант «pa55word». Программа Crack поддерживает конфигурируемые пользователем правила перестановки, которые отлавливают подобные варианты. Дополнительные сведения об Алеке Муффетте (Alec Muffett) и его программе Crack можно найти по адресу www.users.dircon.co.uk/~crypto.
Программа John the RipperJohn the Ripper – очередная программа взлома паролей. Она отличается от Crack тем, что работает под управлением UNIX, DOS и Win32. Crack больше подходит для систем старшего поколения, использующих алгоритмы crypt(), а John the Ripper – для современных систем, работающих по алгоритму MD5 и соответствующих ему форматов паролей. В основном John the Ripper используется против паролей UNIX, но выпущены расширения программы, позволяющие взламывать другие типы паролей, например кэш-величины паролей Windows NT LanManager (LANMAN) или пароли сервера Netscape LDAP (Netscape Lightweight Directory Access Protocol – реализация компанией Netscape упрощенного протокола службы каталогов). Программа John the Ripper поддерживает режим запоминания результата (incremental mode): у программы есть полезное свойство автоматически сохранять состояние программы во время взлома. В результате при прерывании работы программы подбор паролей возобновляется с прерванного места даже на другой системе. John the Ripper – часть проекта OpenWall, описание которого можно найти по адресу www.openwall.com/john.
Пример экранной формы программы John the Ripper показан на рис. 6.3, где дана вскрытая простая секция файла паролей в формате OpenBSD. Показанный ниже фрагмент файла паролей – отчет работы программы John the Ripper. На консоль выводится каждый подобранный пароль. Выведенное на консоль время подбора четырех паролей едва превышает 1 мин только потому, что автор поместил действующие пароли в начало списка паролей, используемого программой как словарь паролей. В действительности подбор паролей займет намного больше времени. После взлома файла паролей при помощи опции show его можно отобразить в читаемом виде.
Рис. 6.3. Образeц экранной формы программы John the Ripper