Восстановление паролей: устойчивость паролей к взлому методами подбора по словарю и перебором

Основным рубежом аутентификации сегодня является система парольной защиты, которая имеется во всех современных программных продуктах. В соответствии с установившейся практикой, перед началом работы с операционной системой пользователь обязан зарегистрироваться, сообщив ей свое имя и пароль. Имя требуется для идентификации пользователя, а пароль подтверждает правильность произведенной идентификации. Информация, введенная пользователем в диалоговом режиме, сравнивается с той, что имеется в распоряжении операционной системы. Если проверка дает положительный результат, то пользователю становятся доступны все ресурсы операционной системы, связанные с его учетной записью.

В данной статье речь пойдет об устойчивости паролей к взлому методами подбора по словарю и brute force ("грубой силы", перебором). Предположим, вам на исследование попал чужой компьютер, работающий под Windows. Вам нужно извлечь пароли данного пользователя. Как быть? Можно вначале сделать посекторную копию жесткого диска (чтобы не испортить что-то на оригинале). Теперь давайте посмотрим, что же представляет собой программное обеспечение для восстановления (взлома) парольной защиты.


Что такое парольный взломщик?

Наиболее эффективным является метод взлома парольной защиты операционной системы, при котором атаке подвергается системный файл, содержащий информацию о легальных пользователях и их паролях. Однако любая современная операционная система стремится надежно защитить пользовательские пароли, которые хранятся в этом файле, при помощи хеширования. Хеширование в криптографии - необратимый процесс, то есть, имея хеш, вычисленный на основе некоторых данных, злоумышленник не может восстановить исходные данные никаким другим способом, кроме атаки методом полного перебора. Кроме того, доступ к таким файлам, как правило, по умолчанию запрещен даже для системных администраторов, не говоря уже о рядовых пользователях операционной системы. Тем не менее в ряде случаев злоумышленнику удается путем различных ухищрений получить в свое распоряжение файл с именами пользователей и их зашифрованными паролями. И тогда на помощь приходят так называемые парольные взломщики - специализированные программы, служащие для взлома паролей операционных систем.


Как работает парольный взломщик?

Криптографические алгоритмы, применяемые для хеширования паролей пользователей в современных операционных системах, являются слишком стойкими, чтобы можно было надеяться отыскать методы обратного преобразования их хеш-функций (так называемый поиск прообраза для хеш-функции), которые окажутся более эффективными, чем тривиальный перебор возможных вариантов. Поэтому парольные взломщики иногда просто хешируют все пароли с использованием того же самого криптографического алгоритма, который применяется для их засекречивания в атакуемой операционной системе. Для Windows такие способы существуют - например Rainbow Tables. "Радужная таблица" (Rainbow Table) - специальный вариант таблиц поиска, который использует механизм уменьшения времени поиска за счет увеличения занимаемой памяти (time-memory tradeoff). Такие таблицы используются для вскрытия паролей, преобразованных при помощи необратимой хеш-функции.

Радужная таблица создается путем построения цепочек возможных паролей. Каждая цепочка начинается со случайного возможного пароля, затем подвергается действию хеш-функции и функции редукции. Данная функция преобразует результат хеш-функции в некоторый возможный пароль. Промежуточные пароли в цепочке отбрасываются, и в таблицу записывается только первый и последний элементы цепочек. Создание таблиц требует времени и памяти (вплоть до сотен гигабайтов), но они позволяют очень быстро (по сравнению с обычными методами) восстановить исходный пароль.

Для восстановления пароля данное значение хеш-функции подвергается функции редукции и ищется в таблице. Если совпадение не обнаружено, то снова применяется хеш-функция и функция редукции. Данная операция продолжается, пока не будет найдено совпадение. Когда совпадение найдено, цепочка, содержащая его, восстанавливается для нахождения отброшенного значения, которое и будет искомым паролем. В итоге получается таблица, которая может с высокой вероятностью восстановить пароль за короткое время.

Таблицы могут взламывать только ту хеш-функцию, для которой они создавались, то есть таблицы для MD5 могут взломать исключительно хеш MD5. Теория данной технологии была разработана Philippe Oechslin как быстрый вариант методики time-memory tradeoff. Впервые эта технология использовалась в программе Ophcrack для взлома хешей LanMan, применяемых в Microsoft Windows. Позже была разработана другая программа, RainbowCrack, которая может работать с большим количеством хешей, например LanMan, MD5 и SHA1.

Результаты хеширования сравниваются с тем, что записано в системном файле, где находятся хеши паролей пользователей данной системы. При этом в качестве вариантов паролей парольные взломщики используют символьные последовательности, автоматически генерируемые из некоторого набора символов. Данный способ позволяет взломать все пароли, если известно их представление в хешированном виде и они содержат только символы из данного набора.

За счет очень большого числа перебираемых комбинаций такие атаки парольной защиты могут отнимать слишком много времени. Сложность пароля = (количество символов в наборе)^(длина), то есть, пароль длиной 8 символов, состоящий из больших и маленьких букв английского алфавита и цифр от 0 до 9, имеет сложность 628 = 218340105584896 комбинаций. Однако известно, что большинство пользователей операционных систем не утруждают себя выбором стойких паролей, то есть таких, которые трудно взломать. Поэтому для более эффективного подбора паролей взломщики обычно используют специальные словари, которые представляют собой заранее сформированный список слов, часто используемых на практике в качестве паролей. Большой набор словарей можно найти на сайте www.passwords.ru. К каждому слову из словаря парольный взломщик применяет одно или несколько правил, в соответствии с которыми оно видоизменяется и порождает дополнительное множество паролей, например:

  • производится попеременное изменение буквенного регистра, в котором набрано слово;
  • порядок следования букв в слове меняется на обратный;
  • в начало и конец каждого слова приписывается цифра 1;
  • некоторые буквы изменяются на близкие по начертанию цифры.

В результате, например, из слова password получается pa55w0rd. Это повышает вероятность нахождения пароля, поскольку в современных операционных системах, как правило, различаются пароли, набранные заглавными и строчными буквами, а пользователям этих систем настоятельно рекомендуется выбирать такие, в которых буквы чередуются с цифрами. Одни парольные взломщики поочередно проверяют каждое слово из специального словаря, применяя к нему определенный набор правил для генерации дополнительного множества паролей. Другие предварительно обрабатывают весь словарь при помощи этих же правил, получая новый словарь большего размера, из которого затем берут проверяемые пароли. Учитывая, что обычные словари естественных человеческих языков состоят всего из нескольких сотен тысяч слов, а скорость шифрования паролей достаточно высока, парольные взломщики, осуществляющие поиск по словарю, работают очень быстро.

Первый пароль, который вы будете получать, - пароль учетной записи пользователя. Для этого существует масса инструментов. Меня могут спросить - а зачем нам пароль пользователя? Ведь жесткий диск уже у нас, так что мы имеем доступ ко всей хранящейся там информации. Безусловно. Однако не стоит забывать, что зачастую пользователи довольно беспечны, а следовательно, есть вероятность того, что данный пароль будет применяться этим пользователем неоднократно, в том числе, к почте и другим приложениям. Кроме того, стоит помнить, что пользователь мог применить EFS-шифрование, а значит, восстановить пароль пользователя гораздо эффективнее на первом шаге. Для этого вначале вспомним, где же хранятся искомые пароли.


База данных учетных записей пользователей

Одним из основных компонентов системы безопасности Windows XP/Vista/Windows 7 является диспетчер учетных записей пользователей. Он обеспечивает взаимодействие других компонентов системы безопасности, приложений и служб этих версий Windows с базой данных учетных записей пользователей Security Account Management Database (SAM). Эта база обязательно имеется на каждом компьютере с Windows. В ней хранится вся информация, используемая для аутентификации пользователей при интерактивной регистрации в системе и при удаленном доступе к ней по компьютерной сети. База данных SAM представляет собой один из разделов системного реестра Windows. Этот раздел принадлежит ветви HKEY_LOCAL_MACHINE, он называется SAM и располагается в каталоге \winnt_root\System32\Config (winnt_root в данном случае - условное обозначение каталога с системными файлами Windows) в отдельном файле, который тоже называется SAM. Основная часть информации в базе данных SAM хранится в двоичном виде. Доступ к ней обычно осуществляется с помощью диспетчера учетных записей. Изменять записи, хранящиеся в базе данных SAM, при помощи программ, которые напрямую редактируют реестр Windows NT/2000/ХР (REGEDT или REGEDT32), не рекомендуется. По умолчанию этого сделать нельзя, так как доступ к базе данных SAM запрещен для всех без исключения категорий пользователей Windows XP/Vista/7.

Именно в учетных записях базы данных SAM находится информация о пользовательских именах и паролях, которая необходима для идентификации и аутентификации пользователей при интерактивном входе в систему. Как и в любой другой современной многопользовательской операционной системе, эта информация хранится в зашифрованном виде. В базе данных SAM каждый пароль пользователя обычно бывает представлен в виде двух 16-байтовых последовательностей, полученных разными методами (LM и NTLM).


Возможные атаки на базу данных SAM

Обычно основным объектом атаки являются административные учетные записи. Их пароли можно получить, узнав в хешированном или символьном виде пароль администратора системы, который хранится в базе данных SAM. Поэтому именно на базу данных SAM бывает направлен главный удар взломщика парольной защиты.

По умолчанию в Windows доступ к файлу \winnt_root\System32\Config\SAM заблокирован для всех пользователей без исключения. Тем не менее, с помощью программы NTBACKUP любой обладатель права резервного копирования файлов и каталогов Windows может перенести этот файл с жесткого диска на магнитную ленту. Резервную копию реестра можно также создать утилитой REGBAK из состава Windows NT Resource Kit. Кроме того, несомненный интерес для любого взломщика представляют резервная копия файла SAM (SAM.SAV) в каталоге \winnt_root\System32\Config и сжатая архивная копия SAM (файл SAM._) в каталоге \winnt_root\Repair.

Также указанный файл можно получить, загрузившись с внешнего носителя. В случае наличия загрузки двух операционных систем процесс копирования файла SAM существенно упрощается. При наличии физической копии файла SAM извлечь хранящуюся в нем информацию не составляет большого труда. Загрузив файл SAM в реестр любого другого компьютера с Windows (например, с помощью команды Load Hive программы REGEDT32), можно детально изучить учетные записи пользователей, чтобы определить их значения PID и шифрованные варианты хешированных паролей. Зная PID пользователя и имея зашифрованную версию его хешированного пароля, компьютерный взломщик может попытаться расшифровать этот пароль, чтобы использовать его для получения сетевого доступа к другому компьютеру. Однако для интерактивной регистрации в системе одного лишь знания хешированного пароля недостаточно. Необходимо получить его символьное представление. Для восстановления пользовательских паролей Windows в символьном виде существуют специальные парольные взломщики. Они выполняют как прямой подбор паролей, так и поиск по словарю, а также применяют комбинированный метод взлома парольной защиты, когда в качестве словаря используется файл с заранее вычисленными хешированными паролями, соответствующими символьным последовательностям, которые часто применяются в качестве паролей пользователей операционных систем.

Для получения хешей паролей учетных записей, используемых на исследуемом компьютере можно воспользоваться программой ElcomSoft System Recovery. При этом вы загрузитесь с предлагаемого компакт-диска и, кроме всего прочего, сможете получить хеши паролей. Сами пароли при этом можно восстановить с помощью утилиты Proactive System Password Recovery.

Окно Proactive System Password Recovery

На самом деле, данная программа предоставляет гораздо больше возможностей, чем обычное восстановление пароля к учетной записи пользователя (как доменного, так и локального).

В частности, мгновенному восстановлению подлежат следующие типы паролей:

  • пароли для регистрации в Windows 95/98/ME (пользователь должен быть авторизован в системе);
  • пароли для регистрации в Windows NT4/2000 (пользователь должен быть авторизован в системе с правами администратора);
  • пароли для автоматической регистрации Windows 95/98/ME/NT4/2000/XP/2003;
  • пароли .NET Passport;
  • ключи шифрования и пароли для беспроводных сетей (WEP и WPA-PSK), хранимые с WZC;
  • хранимые пароли пользователей Windows XP (множественные учетные данные);
  • пароли на экранную заставку;
  • пароли RAS и пароли доступа к интернет-провайдерам (dial-up);
  • пароли на соединения VPN (Virtual Private Network);
  • пароли и права доступа к разделяемым (shared) ресурсам;
  • пароли, скрытые под звездочками;
  • пароли, хранимые на диске сброса паролей;
  • пароли к Remote Desktop Connections.

Быстрому восстановлению подлежат следующие типы паролей:

  • пароли к учетным записям пользователей Windows NT/2000/XP/2003/Vista/2008/Windows 7;
  • пароли на этапе загрузки (SYSKEY);
  • пароли, сохраненные в Domain Cached Credentials;
  • пароли WPA-PSK;
  • пароли к удаленному помощнику Windows;
  • пароли Windows 9x из файлов PWL.

Кроме того, с помощью данной программы можно проводить определенные манипуляции с пользовательскими настройками и файлами реестра.

  • Запуск любой программы с привилегиями другого пользователя.
  • Отображение хешей предыдущих паролей.
  • Чтение и расшифровка хешей паролей непосредственно из файлов реестра (SAM и SYSTEM).
  • Сохранение резервной копии файлов реестра и базы данных Active Directory с локального или удаленного компьютера.
  • Расшифровка сценариев Windows, защищенных при помощи Script Encoder.
  • Отображение списка пользователей, их групп и привилегий.
  • Расшифровка и просмотр защищенного хранилища (Windows Protected Storage), в котором хранятся пароли и строки для автоматического заполнения форм для Internet Explorer, Outlook и Outlook Express.
  • Просмотр записей 'LSA Secrets'.
  • Отображение ключей установки к продуктам Microsoft (Product ID и CD Key для установленных на компьютере экземпляров Windows и Microsoft Office).
  • Полная поддержка Windows 7 (включая пароль HomeGroup, кэшированный пароль для регистрации и кэши предыдущих паролей, использовавшихся в системе).
  • Извлечение сохраненных паролей из Apple Safari (и их использование в движке Intelligent Password Recovery).

(Продолжение следует)

Владимир БЕЗМАЛЫЙ

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!