Основным рубежом аутентификации сегодня является система парольной защиты, которая имеется во всех современных программных продуктах. В соответствии с установившейся практикой, перед началом работы с операционной системой пользователь обязан зарегистрироваться, сообщив ей свое имя и пароль. Имя требуется для идентификации пользователя, а пароль подтверждает правильность произведенной идентификации. Информация, введенная пользователем в диалоговом режиме, сравнивается с той, что имеется в распоряжении операционной системы. Если проверка дает положительный результат, то пользователю становятся доступны все ресурсы операционной системы, связанные с его учетной записью.
. Предположим, вам на исследование попал чужой компьютер, работающий под Windows. Вам нужно извлечь пароли данного пользователя. Как быть? Можно вначале сделать посекторную копию жесткого диска (чтобы не испортить что-то на оригинале). Теперь давайте посмотрим, что же представляет собой программное обеспечение для восстановления (взлома) парольной защиты.
Что такое парольный взломщик?
Наиболее эффективным является метод взлома парольной защиты операционной системы, при котором атаке подвергается системный файл, содержащий информацию о легальных пользователях и их паролях. Однако любая современная операционная система стремится надежно защитить пользовательские пароли, которые хранятся в этом файле, при помощи хеширования. Хеширование в криптографии — необратимый процесс, то есть, имея хеш, вычисленный на основе некоторых данных, злоумышленник не может восстановить исходные данные никаким другим способом, кроме атаки методом полного перебора. Кроме того, доступ к таким файлам, как правило, по умолчанию запрещен даже для системных администраторов, не говоря уже о рядовых пользователях операционной системы. Тем не менее в ряде случаев злоумышленнику удается путем различных ухищрений получить в свое распоряжение файл с именами пользователей и их зашифрованными паролями. И тогда на помощь приходят так называемые парольные взломщики — специализированные программы, служащие для взлома паролей операционных систем.
Как работает парольный взломщик?
Криптографические алгоритмы, применяемые для хеширования паролей пользователей в современных операционных системах, являются слишком стойкими, чтобы можно было надеяться отыскать методы обратного преобразования их хеш-функций (так называемый поиск прообраза для хеш-функции), которые окажутся более эффективными, чем тривиальный перебор возможных вариантов. Поэтому парольные взломщики иногда просто хешируют все пароли с использованием того же самого криптографического алгоритма, который применяется для их засекречивания в атакуемой операционной системе. Для Windows такие способы существуют — например Rainbow Tables (http://winprot.ru/publ/10–1-0–40). «Радужная таблица» (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 комбинации. Однако известно, что большинство пользователей операционных систем не утруждают себя выбором стойких паролей, то есть таких, которые трудно взломать. Поэтому для более эффективного подбора паролей взломщики обычно используют специальные словари, которые представляют собой заранее сформированный список слов, часто используемых на практике в качестве паролей. Большой набор словарей можно найти на сайте http://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 (экран 1).
Экран 1. Окно 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).
Восстановление паролей к веб-сайтам
В случае если пользователь для получения почты задействовал браузер, нам потребуется программа Elcomsoft Internet Password Breaker компании Elcomsoft (экран 2).
Экран 2. Окно Elcomsoft Internet Password Breaker |
С помощью данной программы мы можем восстановить пароли, сохраненные для входа на различные сайты или веб-почту.
Если допускается сохранение паролей, то пароль будет сохранен (зашифрован) в реестре Windows (для более старых версий Internet Explorer) или зашифрован в специальных файлах на жестком диске (для IE7 и IE8). Так что в следующий раз, когда вы будете обращаться к той же самой странице, вход в систему будет произведен автоматически, но пароль будет скрыт под звездочками.
Для восстановления паролей достаточно выбрать — Web Passwords — IE Passwords. В итоговой таблице вы увидите адрес сайта, логин и пароль. Кроме того, пароли можно увидеть, используя пункт меню Web Passwords — IE AutoComplete. Если эта функция была включена в браузере, то вы также сможете увидеть имена пользователей и их пароли. В случае если на компьютере работали сторонние браузеры, такие как Opera, Firefox, Google Chrome, Safari, пароли оттуда также можно восстановить.
Обратите внимание, что если необходимо вернуть пароли, которые пользователь сохранил в Mozila Firefox, вы должны установить Firefox. Кроме того, эти пароли не должны быть защищены с помощью мастер-пароля; если мастер-пароль установлен, вы должны вначале удалить его в параметрах настройки Firefox (или, если мастер-пароль не известен, можете пробовать восстановить его с помощью Elcomsoft Distributed Password Recover http://www.elcomsoft.com/edpr.html).
Восстановление паролей к почте и новостям
Elcomsoft Internet Password Breaker отображает пароли почтовых ящиков, учетных записей POP3, IMAP, SMTP и NNTP. Поддерживаются все версии Microsoft Outlook, Outlook Express, Windows Mail и Windows Live Mail, включая пароли Microsoft Passport в Windows Live Mail. Для всех версий Microsoft Outlook, включая 2010, Elcomsoft Internet Password Breaker обнаруживает пароли к файлам PST (экран 3).
Экран 3. Восстановление паролей к почте |
Восстановление паролей к документам Microsoft Office
Следующей важной задачей может стать восстановление паролей к документам Microsoft Office. В этом случае необходимо воспользоваться программным обеспечением Advanced Office Password Recovery (экран 4). Атака на пароль осуществляется с помощью словаря, по маске, а также прямым перебором.
Экран 4. Атака прямым перебором |
При попытке восстановления паролей на открытие документа Office 2007 и Office 2010 стоит учесть, что в данном случае для шифрования документов применяется алгоритм AES с длиной ключа 128 разрядов, а также хеширование по алгоритму SHA-1 (пароли к Word, Excel, PowerPoint, Access). Только простые и короткие пароли могут быть обнаружены простым перебором. Кроме того, при восстановлении паролей Office 2010 процесс восстановления будет медленнее, чем при восстановлении паролей Office 2007. Для ускорения процесса восстановления паролей рекомендуется применять современные графические карты от nVidia и AMD/ATI (экран 5).
Экран 5. Восстановление пароля к документу Office 2007 с использованием видеокарты |
Однако гораздо чаще нам нужен не сам пароль к тому или иному документу, а содержимое документа. Для удаления пароля с документов Office предназначено программное обеспечение Advanced Office Password Breaker.
Восстановление доступа к зашифрованным документам Microsoft Office
Удаление парольной защиты возможно с файлов, которые сохранены в формате .doc и .xls. То есть форматы файлов Word 2007–2010 и Excel 2007–2010 не поддерживаются. Главное окно Advanced Office Password Breaker показано на экране 6.
Экран 6. Удаление пароля документа Word 2000 |
Защита документов Microsoft Word и Microsoft Excel далеко не всегда позволяет быстро найти забытый пароль. Используя атаку по словарю, прямой перебор паролей и другие методы, восстановить пароль можно, однако этот процесс может занять много времени. Вместе с тем, в случае если защита документа совместима с форматом Microsoft Office 97, существует решение, позволяющее гарантированно открыть документ в течение небольшого промежутка времени. Данный формат защиты уязвим, так как в нем используется ключ шифрования длиной всего 40 разрядов.
Перебор 40-разрядных ключей можно осуществить за заранее известный промежуток времени, зависящий от мощности процессора и количества ядер. Время нахождения ключа составляет около 5 дней для одноядерного процессора. В случае использования процессоров Core 2 Duo и Core 2 Quad время поиска ключа уменьшается пропорционально количеству ядер. Продукт Advanced Office Password Breaker Professional поддерживает до 4 процессоров или ядер, позволяя ускорить процесс перебора ключей в 4 раза. Корпоративная версия поддерживает до 32 процессоров.
Для ускорения процесса перебора ключей шифрования фирма Elcomsoft разработала технологию использования заранее вычисленных таблиц (Thunder Tables). Используя эти таблицы, вы можете найти ключ шифрования для документа Word версий 97–2000 всего за несколько минут. Если вам необходим пароль к Microsoft Excel 97–2000, используются классические радужные таблицы. Вероятность расшифровки документа за несколько минут составляет 97%.
В одной статье невозможно рассмотреть все продукты и все случаи, когда нам потребуется восстановить пароли, поэтому о других вариантах восстановления пароля я расскажу в следующей части.
Владимир Безмалый (vladb@windowslive.com) — специалист по обеспечению безопасности, MVP Consumer Security, Microsoft Security Trusted Advisоr