Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #48, НОЯБРЬ 2004 г.

Пошаговая имперсонализация

Полуэктов Александр

Спецвыпуск: Хакер, номер #048, стр. 048-020-3


Итак, начинаем анализ. Самый продуктивный алгоритм восстановления паролей - перебор нескольких методик по возрастанию их времени работы, ориентируясь на планируемую сложность паролей.

1. Видно, что в паролях есть цифры, поэтому начнем с перебора по цифрам.

Устанавливаем перебор по LM-хэшам, алфавит - только цифры, очищаем начальный пароль (поле "Пароль") и запускаем перебор.

Через несколько секунд восстановился один пароль, полностью состоящий из цифр - 111222333. Неплохо.

2. Теперь начинаем перебор по словарю. Для этого нужно скачать словарь с www.insidepro.com/download/dictionary.zip, добавив в его список, и запустить перебор. Не забываем включить флажки для проверки паролей, состоящих из двойных паролей и из паролей с обратным порядком букв. Через несколько минут мы получим результат.

3. Пробуем на зуб пароль пользователя neo. Как видно, пароль заканчивается на комбинацию 567890, начало же неизвестно. Но можно предположить, что первая половина пароля заканчивается на 4 или даже 34. А можно сразу попробовать 1234 :). Открываем настройки атаки по маске и вводим маску.

Ура! Пароль найден - neo1234567890. Если бы мы не нашли пароль, то имело бы смысл попробовать окончание пароля на 4, 34 или 234. Или запустить перебор с символами A...Z и 0...9.

4. Остался пароль администратора. По LM-хэшам его восстановить не получится - только по NT-хэшам. А это практически бесполезное дело, так как NT-пароль регистрозависимый и даже для анализа паролей только из латиницы придется использовать два алфавита: A...Z и a...z. Но напоследок попробуем гибридную атаку. Укажем, что к паролям из словаря нужно добавлять до 2 символов справа и слева (при этом флажки для сдвоенных паролей и паролей с обратным порядком букв снимаем -мты их уже проверили). Запускаем программу и идем за пивом, так как гибридная атака - процесс длительный. Через некоторое время мы увидим, что пароль все-таки найден - administrator$$.

В итоге, мы имеем 100% восстановленных паролей. Конечно, данные пароли приведены лишь для примера, но, как показывает практика, до 95-98% паролей восстановить все-таки можно. Лучше всего применять поочередно различные виды атак и словари большего объема. А при наличии любой предварительной информации о пароле использовать ее максимально эффективно! Конечно, пароли вида lb&z(4VMmcx{`j[P% восстановить практически невозможно, но ведь есть еще и человеческий фактор, социальная инженерия и т.п. Так что иногда можно узнать пароль и без SAM-базы.

Очевидно, что восстановление паролей - процесс творческий и требует хорошей интуиции. Любое окончание пароля (если он длиннее 7 символов, но короче 14 символов), будучи найденным в первую очередь, дает обильную пищу для размышлений. Алгоритмов, по которым пользователи формируют свои пароли, на самом деле не так уж и много. Так что анализ, анализ и еще раз анализ!

Хранение паролей

Статей об основах хранения паролей в Windows 2000/XP и о SAM-базе в сети лежит куча, поэтому не будем подробно на этом останавливаться. Напомним лишь, что в Windows NT+SP3/2000/XP/2003 используется системный ключ SYSKEY, с помощью которого дополнительно шифруются уже зашифрованные хэши. Фактически в SAM-базе хранятся не хэши паролей, а хэши хэшей паролей. Ключ SYSKEY - это 16 байт из определенных четырех ключей реестра, расположенных в файле SYSTEM (который, как и SAM, является частью реестра Windows). Для входа в Windows используется два типа паролей: LM-пароль и NT-пароль, зашифрованные разными алгоритмами.

Назад на стр. 048-020-2  Содержание  Вперед на стр. 048-020-4