Максимальная Безопасность:

Руководство Хакера по Защите Вашего Internet Сайта и Сети

Предыдущая главаСледующая главаСодержание


10

Взломщики Паролей

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

Что Такое Взломщик Паролей?

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

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

Вместо этого, используются утилиты моделирования, работающие по тому же самому алгоритму, что и первоначальная программа паролей. Через сравнительный анализ эти утилиты пробуют найти соответствие зашифрованной версии пароля к оригиналу (это объяснятся немного позже в этой главе). Много так называемые взломщики паролей всего лишь двигатели решения "в лоб", программы, которые пробуют слово за словом, часто с большой скоростью. Они полагаются на теорию, что в конечном счете Вы натолкнетесь на правильное слово или фразу. Эта теория была доказана надежной, прежде всего из-за фактора человеческой лени. Люди просто не заботятся, чтобы создавать сложные пароли. Однако, это не всегда ошибка пользователя:

Пользователей редко, если вообще, обучают тому, что является мудрым выбором для пароля. Если пароль находится в словаре, он чрезвычайно уязвим для взлома, и пользователей просто не научили создавать "безопасные" пароли. Из образованных в этом пользователей, многие думают, что просто поскольку их пароль не находится в /usr/dict/words, он безопасен для обнаружения. Многие пользователи также говорят, что так как у них нет частных файлов, то им не нужна безопасность их учетной записи, непонимания, что обеспечивая точку входа в систему, они позволяют злонамеренному взломщику повредить всю систему. 1

1 Daniel V. Klein, A Survey of, and Improvements to, Password Security (Обзор и Усовершенствование Безопасности Паролей). Software Engineering Institute, Университет Carnegie Mellon, Пенсильвания. (сообщенная дата создания PostScript: 22 февраля, 1991.)

Эта проблема постоянная, несмотря на тот факт, что образование в безопасности паролей требует минимальных ресурсов. Озадачивает, как такая критическая проблема безопасности (которая может быть легко устранена) часто игнорируется. Проблема проникает к самому сердцу безопасности:

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

2 K. Coady. Understanding Password Security For Users on & offline. (Понимание Безопасности Паролей Для Сетевых и Автономных Пользователей.) Информационный Бюллетень New England Telecommuting, 1991.

В любом случае, я хочу определить диапазон этой главы. Для наших целей, люди, которые обеспечивают регистрационные пароли или CD ключи не взломщики паролей, и при этом они не особенно нужны здесь. Люди, которые копируют общие регистрационные номера и обеспечивают их по Internet пираты. Я обсуждаю этих людей (и, кстати, указываю на некоторые сайты) в конце этой главы. Однако, эти люди (и файлы, которые они распространяют, часто содержащие тысячи регистрационных номеров) не квалифицируются как взломщики паролей.


ПРИМЕЧАНИЕ: Эти регистрационные номера и программы, которые обходят защиту с использованием пароля, часто называются кряками. Существует телеконференция Usenet фактически посвященная обеспечению таких паролей и регистрационных номеров. Не удивительно, что в этой телеконференции регистрационные номера обычный трафик, и программное обеспечение, к которому они применяются, также часто посылается туда. Эта телеконференция соответственно называется alt.cracks.

Единственное исключение из этого правила программа, предназначенная для обхода ранней реализации схемы проверки правильности Microsoft CD ключа (хотя автор исходного текста не предполагал, что программа будет использоваться как инструмент пиратства). Объясним все по порядку.

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

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

1. Возьмите все числа, которые являются тривиальными и не соответствуют ключу и отбросьте от них.

2. Сложите оставшиеся числа.

3. Разделите результат на 7.

Номер, который Вы получили в результате этих действий, исследуется в десятичном форме. Если номер не имеет дробной части (нет числовых значений справа от десятичной точки), ключ допустим. Если номер содержит дробную часть (имеются числа справа от десятичной точки), ключ недопустим. Moore затем разработал маленькую программу, которая автоматизирует этот процесс.


Ссылка: Законченное объяснение Moore'а и анализ алгоритма проверки правильности CD ключа расположены на
http://www.apexsc.com/vb/lib/lib3.html.

Программист также послал исходный текст, написанный на C, в Internet. Я компилировал этот код на нескольких платформах, и он работал одинаково хорошо на всех. (Платформы, на которых я компилировал его, включают DOS, NT, Linux и AIX.) Я нашел утилиту весьма ценной, поскольку я часто теряю свои CD ключи.


Ссылка: Исходный текст расположен на
http://www.futureone.com/~damaged/PC/Microsoft_CD_Key/mscdsrc.html.

Этот тип утилит квалифицируется в этой главе как форма взломщиков паролей. Я подозреваю, что некоторые из Вас будут использовать эту утилиту, чтобы обойти проверку правильности CD ключа. Однако, чтобы делать это, Вы должны сначала узнать немного о C (и иметь доступный компилятор). Я полагаю, если Вы имеете эти утилиты, ваш уровень экспертных знаний действительно высок, и Вы вероятно вне захвата программного обеспечения Microsoft. (Я надеюсь.)


ПРИМЕЧАНИЕ: Метод Microsoft защиты пакетов обновления также легко обходится. Модернизация инсталлируется пока Вы имеете первый диск предыдущей версии указанного программного обеспечения. Поэтому, пользователь, который получит первый диск Microsoft Visual Basic Professional 3.0, может установить его обновление 4.0. По этой причине, некоторые пиратские группы распространяют образы первого диска, которые затем пишутся на дискеты. (В редких случаях, когда на дискете должен иметься точный образ, некоторые люди используют rawrite.exe или dd.exe, две популярные утилиты, которые записывают образ непосредственно на дискету. Эта методика отличается от копирования его на дискету.) Кроме того, любопытно обратить внимание, что некоторые версии обновления VB успешно устанавливаются даже без дискеты, если сначала был установлен Microsoft Office.

Я должен прояснить, что не потворствую пиратству (даже притом, что многие коммерческие программные продукты преступно переоценены). Я использую Linux и GNU. В этом отношении, я значительно обязан Linus Torvalds и Richard Stallman. Я не опасаюсь, что нарушаю закон, поскольку большая часть программного обеспечения, которое я могу свободно передать любому. (Также, я нахожу, что Linux будет более устойчивой, чем многие другие операционные системы, которые стоят сотни долларов.)

Linux полностью свободная для копирования операционная система, и набор GNU программ, находящихся под генеральной общедоступной лицензией. То есть Вы вольны передавать эти программы кому и когда захотите. Этим Вы не нарушите никаких соглашений с авторами программного обеспечения. Многие из этих утилит свободные версии популярных коммерческих пакетов, включая компиляторы C и C++, инструментальные средства Web-разработки, или все, о чем Вы можете мечтать. Эти программы свободны для любого, кто может загрузить их. Они являются удачей для любого, кто занимается разработкой.

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

Как Работают Взломщики Паролей?

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

Криптография

Это определение широко, и я хочу сузить его. Этимологический корень слова криптография может помочь в этом отношении. Крипто основано от греческого слова kryptos. Kryptos использовался, чтобы описать что-нибудь, что было скрыто, затенено, закрыто, тайно или таинственно. Граф получено из graphia, что означает писать. Таким образом, криптография это искусство секретного письма. Превосходное и краткое описание криптографии даёт Yaman Akdeniz в своей статье Cryptography & Encryption (Криптография и Шифрование):

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

3 Yaman Akdeniz, Cryptography & Encryption (Криптография и Шифрование) август 1996, Cyber-Rights & Cyber-Liberties (UK) на
http://www.leeds.ac.uk/law/pgs/yaman/cryptog.htm.
(Курсы Уголовного Законодательства Юридического Факультета Университета Leeds, Leeds LS2 9JT.)

Большинство паролей подвергаются некоторой форме криптографии. То есть пароли шифруются. Чтобы проиллюстрировать этот процесс, позвольте мне свести его до самых основ. Вообразите, что Вы создали ваш собственный код, где каждый символ алфавита соответствует числу (смотрите Рисунок 10.1).

Примитивный пример кода
Рисунок 10.1. Примитивный пример кода.

На Рисунке 10.1 слева показана таблица, или легенда. Ниже каждого символа находится соответствующее число. Таким образом, A = 7, B = 2, и т.д. Это код подобен тому, который имеется в комплектах с секретным декодером для детей. Вы, вероятно, помните их: Они поставлялись с дешифраторами в виде кольца и иногда даже включали крошечную книгу кодов для ломания кода вручную.

К сожалению, такой код может быть легко сломан. Например, если каждый символ имеет установленный числовой эквивалент (то есть эквивалент никогда не изменяется), это означает, что Вы будете использовать только 26 различных чисел (возможно от 1 до 26, хотя Вы могли бы выбирать числа произвольно). Предположим, что сообщение, которое Вы хотите скрыть, содержит символы, но не числа. Лексический анализ показал бы ваш код за несколько секунд. Существуют программы, которые выполняют такой анализ с высокой скоростью, ища образцы, общие для вашего языка.

ROT-13

Другой метод (слегка более сложный), в котом каждый символ становится другим символом, основан на стандартной операции инкремента (или декремента). Чтобы продемонстрировать эту методику, я задержусь на кодировании ROT-13. ROT-13 метод, посредством которого каждый символ заменяется символом заместителем. Символ заместитель получается перемещёнием на 13 символов вперёд (смотрите Рисунок 10.2).

Принцип замены символа ROT-13
Рисунок 10.2. Принцип замены символа ROT-13.

Это, также, является неэффективным методом кодирования или шифровки сообщения (хотя он по сообщениям работал в Римских временах для Caesar, который использовал формулу "сдвиг на три"). Имеются программы, которые быстро определяют этот образец. Однако это не подразумевает, что методы подобные ROT-13, бесполезны. Я хочу проиллюстрировать почему, и в процессе продемонстрирую первую важную мысль о паролях и шифровании вообще:

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

Другими словами, методы подобные реализации ROT-13, могут быть весьма полезны при некоторых обстоятельствах. Вот пример: Предположим, что пользователь хочет послать методику взлома в группу Usenet. Он нашел дыру и хочет предать это гласности, в то время как дыра всё ещё пригодна для использования. Прекрасно. Чтобы помещать настоящими специалистам по безопасности так же быстро обнаруживать дыры, как и взломщикам, ROT-13 может использоваться.

Помните, как я указал, что группы подобные NCSA обычно постоянно загружают конференции Usenet? Многие группы также используют популярные механизмы поиска, чтобы выведать методы взлома. Эти механизмы поиска, прежде всего, используют regex (регулярное выражение) поиск (то есть они ищут по слову или фразе). Например, ищущая сторона (возможно NCSA или любая заинтересованная сторона) может ввести такие комбинации слов:

Когда комбинация слов введена правильно, появляется масса информации. Правильно может означать многие вещи; каждый двигатель работает слегка по-разному. Например, некоторые выдают острые результаты, если слова включены в кавычки. Это иногда вынуждает чувствительный к регистру поиск. Одинаково, многие двигатели предусматривают использование различных Булевых выражений. Некоторый даже предоставляют поиск по нечеткой логике или возможность отметить появляется ли слово рядом, перед или после другого слова или выражения.

Когда взломщик применяет алгоритм ROT-13 к сообщению, такие механизмы поиска будут пропускать его. Например, сообщение:

кяы юыыоЖтъхт оИшы фнчысхэыпнъы ebg-13 чысыщ. Ыъы пИршМстшы юяэнъъы, ьычн щИ ът энюьАяншх тры!

несомненно, вне досягаемости для обычного механизма поиска. В действительности оно выглядит так:

Это сообщение было закодировано ROT-13 кодом. Оно выглядело странно, пока мы не распутали его!

Наиболее современные программы чтения почты и новостей поддерживают кодирование и декодирование ROT-13 (Free Agent by Forte первая; Почтовый пакет Netscape Navigator другая). Снова, это очень простая форма кодирования, но она демонстрирует концепцию. Теперь давайте возьмем что ни будь более специфичное.

DES и Crypt

В Internet существует много различных операционных систем. Большинство серверов, однако, выполняет некоторый клон UNIX. На платформе UNIX все идентификаторы входа и пароли пользователя хранятся централизовано. Много лет они хранятся в файле passwd (/etc/passwd) в каталоге /etc. Формат этого файла содержит различные поля. Нас интересуют два из них: идентификатор входа и пароль.

Идентификатор входа хранится в простом тексте, или в совершенно читаемом Английском языке. (Он используется как ключ для шифрования.) Пароль хранится в зашифрованной форме. Процесс шифрования выполняется, используя Crypt(3), программа, основанная на стандарте шифрования данных (DES - data encryption standard). Самую первую версию DES разработала IBM. Сегодня он используется на всех платформах UNIX для шифрования паролей. DES совместно утвержден Национальным Бюро Стандартов и Агентством Национальной Безопасности. Фактически, начиная с 1977, DES был общепринятым методом для охраны критических данных. Рисунок 10.3 содержит краткий график разработки DES.

Краткий график разработки DES
Рисунок 10.3. Краткий график разработки DES.

DES был разработан прежде всего для защиты некоторой незасекреченной информации, которая может существовать в федеральных офисах. Как сформулировано в Публикации Федеральных Стандартов Обработки Информации 74, Guidelines for Implementing and Using the NBS Data Encryption Standard (Рекомендации по Реализации и Использованию NBS Стандарта Шифрования Данных):

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

Информация о первоначальной разработке DES редка. По сообщениям, по просьбе Агенства Национальной Безопасности IBM сделала некоторые документы секретными. (Они, вероятно, останутся таковыми в течение нескольких последующих лет.) Однако исходный текст Crypt(3) (текущая реализация DES в UNIX) широко доступен. Это существенно, потому что все годы, когда исходник Crypt был доступен, все же никто не нашел способ легко раскодировать информацию, зашифрованную им.


СОВЕТ: Хотите испытать удачу во взломе Crypt? Получите исходник! Он поставляется в стандартом GNU дистрибутиве библиотек C, который может быть найден на
ftp://gatekeeper.dec.com/glibc-1.09.1.tar.gz.
(Пожалуйста обратите внимание, что если Вы не в Америке и не в пределах Американской юрисдикции, Вы должны загружать источник Crypt с сайта вне Соединенных Штатов. Сайт, обычно использующийся для этого
ftp://ftp.uni-c.dk./glibc-1.09-crypt.tar.z.

Различные реализации Crypt работают по-разному. Однако в общих чертах процесс следующий:

1. Принимается Ваш пароль в простом тексте (или, на криптографическом жаргоне, чистом тексте).

2. Затем Ваш пароль используется как ключ, чтобы зашифровать ряд цифр (всего 64). Результирующий закодированный текст после этого называют текст шифра, нечитабельный материал, который появляется после того, как простой текст был зашифрован.

Некоторые версии Crypt, особенно Crypt(3), производят дополнительные шаги. Например, после прохождения этого процесса, они шифруют уже зашифрованный текст, снова используя ваш пароль как ключ. Это довольно сильный метод шифрования, который чрезвычайно трудно сломать.

Короче говоря, DES берет данные и кодирует их, используя одностороннюю операцию, иногда упоминаемую как хэш. Эта операция специфична с математической точки зрения по одной причине: В то время как относительно просто закодировать данные этим способом, декодировать их в вычислительном отношении сложная задача. Оцените, например, что один и тот же пароль может быть закодирован 4,096 различными способами. Средний пользователь без знаний системы мог бы, вероятно, затратить всю жизнь, пытаясь взломать DES, и никогда не добиться успеха. Чтобы получить это в надлежащей перспективе, исследуйте оценку Национального Института Стандартов и Технологий:

Криптографический алгоритм [DES] преобразовывает 64-разрядное двоичное значение в уникальное 64-разрядное двоичное значение, основанное на 56-разрядной переменной. Если используется полный 64-разрядный ввод (то есть, ни один из входных битов не должен быть предопределен из блока в блок) и если 56-разрядная переменная выбрана случайно, никакая методика кроме проб всех возможных ключей, используя известный ввод и вывод DES, не гарантирует обнаружение выбранного ключа. Поскольку имеется более чем 70,000,000,000,000,000 (семьдесят квадрильонов) возможных 56 битный ключей, возможность получения конкретного ключа таким образом чрезвычайно маловероятна в типичных средах угрозы. 4

4 NIST, 30 декабря, 1993. "Стандарт Шифрования Данных (DES - Data Encryption Standard)", Federal Information Processing Standards Publication 46-2 (Публикация Федеральных Стандартов Обработки Информации 46-2).
http://csrc.nist.gov/fips/fips46-2.txt.

Можно было бы думать, что DES полностью безошибочен. Это не так. Хотя информация не может быть раскодирована, пароли, зашифрованные через DES, могут быть открыты через сравнительный процесс. Процесс работает следующим образом:

1. Вы получаете файл словаря, который в действительности не больше, чем плоский файл (простого текста) со списком слов (они обычно упоминаются как wordlists).

2. Эти слова пропускаются через любое число программ, которые шифруют каждое слово. Это шифрование соответствует стандарту DES.

3. Каждое зашифрованное слово сравнивается с целевым паролем. Если имеется соответствие, есть 90 процентов вероятности, что пароль взломан.

Это сам по себе удивительно. Однако программы взлома паролей, сделанные для этой цели, даже более удивительны. Например, такие программы взлома часто подвергают каждое слово списку правил. Правило может быть, например, что слово может появиться в нескольких видах. Типичные правила могли бы включать:

1. Замена верхнего и нижнего регистра символов.

2. Записать слово по буквам вперёд и затем назад, и обледенить два результата (например: даад).

3. Добавить цифру 1 к началу и/или концу каждого слова.

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

1. Файловая система UNIX чувствительна к регистру (КОМПЬЮТЕР интерпретируется по-другому, чем Компьютер или компьютер). Только это делает пароли UNIX бесконечно более сложными для взлома, чем пароли, сгенерированные на DOS/Windows машине.

2. Чередование символов и чисел в паролях общая практика тех, кто знает о проблемах безопасности. При взломе паролей такого вида, должны применяться много правил.

Появление таких программ очень изменило безопасность Internet. Причины могут быть легко поняты любым. Одна причина в том, что такие утилиты эффективны:

Crypt использует сопротивление DES известному нападению простого текста и делает его в вычислительном отношении невыполнимым, чтобы определить первоначальный пароль, который произвел данный зашифрованный пароль, полным перебором. Единственная публично известная методика, которая может показать некоторые пароли, это предположение паролей: пропускание больших списков слов через функцию crypt, чтобы видеть соответствие любой зашифрованной записи пароля в файле /etc/passwd. По нашему опыту этот тип нападения является успешным, если не предпринять явные шаги, чтобы сорвать его. Обычно мы находим 30 процентов паролей в предварительно незащищенных системах. 5

5 David Feldmeier и Philip R. Karn. UNIX Password Security – Ten Years Later (Защита Паролей в UNIX – Десять Лет Спустя). (Bellcore).

Другая причина в том, что пароли на многих системах остаются доступными. Другими словами, многие годы задача взломщика была почти выполнена, если бы он смог получить файл /etc/passwd. Завладев зашифрованными паролями, имея мощную машину и программу взлома, взломщик был готов ломать (если, конечно, он имеет хороший список слов).

Списки слов обычно имеют одно слово в строке, созданы в простом тексте без использования перевода каретки. Они составляют в среднем в около 1МБ каждый (хотя можно создавать список слов размером 20МБ). Как Вы, возможно, предположили, много списки слов доступно в Internet. Они охватывают большое разнообразие языков (таким образом, Американский взломщик может взломать Итальянскую машину и наоборот).


Ссылка: Имеется несколько популярных хранилищ списков слов. Эти коллекции содержат все мыслимые типы списков слов. Некоторые это просто словари, а другие содержат написанные через дефис слова, написанные в верхнем и нижнем регистре и так далее. Вот исключительно хороший источник на
http://sdg.ncsa.uiuc.edu/~mag/Misc/Wordlists.html.
Однако, возможно наиболее окончательная коллекция доступна в проекте COAST в Purdue. Его страница расположена на
http://www.cs.purdue.edu/coast/.

Процесс Взлома Пароля

Прежде, чем говорить ещё более определенно, я хочу графически проиллюстрировать процесс взлома пароля (смотрите Рисунок 10.4).

Графическое представление на Рисунке 10.4 будет Вам полезно. Я хочу немного рассказать о каждой части процесса. Сначала, я должен кратко охватить аппаратные проблемы.

Аппаратные Проблемы

Как отмечено на Рисунке 10.4, машина 66МГц или выше является типичной. Действительно, это основное требование. Не углубляясь в параметры того или иного процессора (или той или иной платформы), я должен, по крайней мере, заявить следующее: На практике, взлом большого файла паролей является сложной задачей для ЦПУ и памяти. Часто могут потребоваться дни. Независимо от того, любитель Вы, взломщик или системный администратор, я посоветовал бы принять во внимание этот факт. Перед взломом большого файла паролей, Вы бы могли провести инвентаризацию своего оборудования и ресурсов.

Я нашел, что для того, чтобы успешно (и комфортабельно) взламывать большой файл паролей, нужно иметь 66Мгц мощности и 32МБ ОЗУ (или больше). Это может быть сделано с меньшими ресурсами, даже с 25Мгц процессором и 8МБ ОЗУ. Однако если Вы используете такую машину, Вы не сможете использовать её для любых других задач. (По крайней мере, это истинно для любой совместимой IBM AT. Я видел, как это делалось на Sun Sparcstation 1, и пользователь был всё ещё способен выполнять другие процессы, даже в OpenWindows.)

Графически проиллюстрированный процесс взлома
Рисунок 10.4. Графически проиллюстрированный процесс взлома.

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

Проблема с распределенным взломом состоит в том, что он создаёт много шума. Помните случай с Randal Schwartz? Господин Schwartz вероятно никогда не был бы обнаружен, если бы не распределял загрузку ЦПУ. Другой системный администратор заметил большой съедание мощности процессора. (Он также отметил, что один процесс выполнялся больше дня.) Таким образом, распределенный взлом в действительности не жизнеспособен для взломщиков, если они не администраторы сайтов, или имеют сеть дома (это не столь необычно в наши дни; я имею сеть дома, которая состоит из компьютеров Windows 95, Windows NT, Linux, Sun и Novell).

Механика Взлома Пароля

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

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

На заключительном этапе, если соответствие происходит, пароль считают взломанным. Затем простое текстовое слово заносится в файл (записывается в простой текстовый файл для последующего анализа).

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

File?

Также большинство из них не имеют обширной документации. Существуют несколько причин для этого явления:

Взломщики Паролей

Остаток этой главы посвящен отдельным взломщикам паролей. Некоторые сделаны для взламывания файла passwd в UNIX, а некоторые нет. Некоторые утилиты даже не взломщики паролей. Вместо этого, они являются вспомогательными утилитами, которые могут использоваться вместе с (или для усовершенствования) существующими взломщиками паролей.

Crack от Alec Muffett

Crack вероятно наиболее знаменитая утилита для взлома зашифрованных паролей UNIX. Теперь она промышленный стандарт для проверки сетей на характерные слабые пароли. Она было написана Alec D. E. Muffet, инженером программистом UNIX из Уэльса. В документах, обеспеченных дистрибутивом, Господин Muffett кратко и ясно сформулировал цель программы:

Crack свободно доступная программа, предназначенная, чтобы находить стандартные восьми символьные зашифрованные по DES паролями UNIX по стандартному методу предположения ... Она писалась гибкой, конфигурируемой и быстрой, и способной использовать несколько узлов в сети через программу Berkeley rsh (или подобной) везде, где возможно.

Crack только для использования на платформах UNIX. Она приходит в виде tar/gzip файла и доступна на многих сайтах. Я не привожу здесь их список (используйте строку поиска crack-4.1.tar.gz или crack-4.1.tar.Z). После загрузки на локальный диск она разархивируется в подходящий каталог (я предпочитаю помещать её в дерево каталогов /root/). После того, как Вы закончите этот процесс, ваш каталог (Crack-4.1) будет выглядеть подобно показанному на Рисунке 10.5.

Структура каталогов Crack
Рисунок 10.5. Структура каталогов Crack.

Чтобы работать Вам необходимо только установить корневой каталог для Crack (это каталог, в котором могут быть найдены все ресурсы Crack). Это значение присваивается переменной (Crack_Home) в файлах конфигурации. Это просто переменная окружения, которая, когда установлена, сообщает программе Crack, где находятся остальные ресурсы. Чтобы установить эту переменную, отредактируйте файл Crack, который является сценарием /bin/sh, запускающим двигатель Crack. После редактирования этого файла, Вы можете начинать. Этот файл, состоящий из простых текстовых команд, кода и переменных, может быть отредактирован в любом текстовом редакторе или текстовом процессоре. Однако, он должен быть сохранен в простом тексте.


ПРИМЕЧАНИЕ: Вы можете или не можете нуждаться в приобретении списка слов. Как это и происходит, многие дистрибутивы Crack сопровождаются файлами типовых списков слов (или словарей). В Вашем случае может так не быть. Я предлагаю получить копию Crack с легального (в противоположность подпольному) сайта. Тогда более вероятно, что Вы получите типовой список слов (хотя, чтобы производить серьёзный взлом паролей, Вы должны приобрести более обширные и более подходящие списки слов).

Вы инициируете сессию Crack, вызывая программу и обеспечивая имя файла паролей и любые параметры командной строки, включая спецификации для использования нескольких рабочих станций и так далее. Если Вы обратитесь к окну Xterm на Рисунке 10.5, Вы увидите, что там файл назывался my_password_file. Это типовой файл passwd, который я взломал, чтобы создать пример. Чтобы взломать этот файл, я дал следующую команду:

Crack my_password_file

Crack запускает процесс и записывает его продвижение в файл с префиксом out. В этом случае, файл был назван outSamsHack300. Следующее это выборка из этого файла. Хорошенько исследуйте ее.

pwc: Jan 30 19:26:49 Crack v4.1f: The Password Cracker, (c) Alec D.E. Muffett, 1992
pwc: Jan 30 19:26:49 Loading Data, host=SamsHack pid=300
pwc: Jan 30 19:26:49 Loaded 2 password entries with 2 different (salts: 100%
pwc: Jan 30 19:26:49 Loaded 240 rules from 'Scripts/dicts.rules'.
pwc: Jan 30 19:26:49 Loaded 74 rules from 'Scripts/gecos.rules'.
pwc: Jan 30 19:26:49 Starting pass 1 - password information
pwc: Jan 30 19:26:49 FeedBack: 0 users done, 2 users left to crack.
pwc: Jan 30 19:26:49 Starting pass 2 - dictionary words
pwc: Jan 30 19:26:49 Applying rule '!?Al' to file 'Dicts/bigdict'
pwc: Jan 30 19:26:50 Rejected 12492 words on loading, 89160 words (left to sort
pwc: Jan 30 19:26:51 Sort discarded 947 words; FINAL DICTIONARY (SIZE: 88213
pwc: Jan 30 19:27:41 Guessed ROOT PASSWORD root (/bin/bash (in my_password_file) [laura] EYFu7c842Bcus
pwc: Jan 30 19:27:41 Closing feedback file.

Как Вы можете видеть, Crack предположил правильный пароль для root. Этот процесс занял около минуты. Строка 1 показывает время, в которое процесс был инициализирован (30 января 19:26:49); строка 12 показывает, что пароль Laura был взломан в 19:27:41. Это было сделано с использованием 133МГц процессора и 32МБ ОЗУ.

Поскольку файл паролей, который я использовал, был настолько мал, ни время ни ресурсы не были проблемой. Однако на практически, если Вы взламываете файл с сотнями записей, Crack будет жадно пожирать ресурсы. Это особенно так, если Вы используете несколько списков слов, которые находится в сжатой форме. (Crack фактически определит их как сжатые файлы и разархивирует их.)

Как упомянуто ранее, Crack может распределять работу по различным рабочим станциям в сети UNIX. Даже более экстраординарно, чем это, машины могут иметь различные архитектуры. Таким образом, Вы можете иметь совместимую IBM, выполняющей Linux, RS/6000, выполняющей AIX, и Macintosh, выполняющей A/UX.

Crack чрезвычайно легок и, вероятно, наиболее надёжный из доступных взломщиков паролей.


СОВЕТ: Чтобы исполнять сессию взлома с сетевой структурой, Вы должны создать файл network.conf. Он используется программой, чтобы идентифицировать узлы в сети, их архитектуры и другие ключевые параметры. Можно также определить опции командной строки, которые передаются Crack, запущенному на каждой машине. Другими словами, каждая машина может выполнять Crack и использовать различные опции командной строки. Это может удобно для управления с одной машины.


Ссылка: Пользователи Macintosh могут также наслаждаться скоростью и эффективностью Crack, используя самую последнюю портированную его версию, названную MacKrack v2.01b1. Она доступна на
http://www.borg.com/~docrain/mac-hack.html.

CrackerJack от Jackal

CrackerJack известный взломщик паролей UNIX, разработанный явно для платформы DOS. Вопреки популярному мнению, CrackerJack не является прямым портированием Crack (даже близко). Однако, CrackerJack чрезвычайно быстрая и удобная в работе утилита взлома. В течение нескольких лет, CrackerJack был лучшим выбором для пользователей DOS; хотя появились многие другие утилиты взломщика, CrackerJack остается весьма популярной (это культовая вещь). Более поздние версии были по сообщениям откомпилированы, используя GNU C и C++. Автор CrackerJack сообщает, это после этой перекомпиляции, программа получила значительный прирост скорости.


СОВЕТ: CrackerJack теперь также работает на платформе OS/2.

У CrackerJack есть несколько значительных недостатков, включая:

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


Ссылка: CrackerJack широко доступна, хотя и не так широко, как можно было бы ожидать. Имеется несколько надежных сайтов:


PaceCrack95 (pacemkr@bluemoon.net)

PaceCrack95 разработана для работы на платформе Windows 95 в консольном режиме в окне оболочки. Ее автор сообщает, что PaceCrack95 была подсказана недостатками в других DOS взломщиках. Он пишет:

Хорошо Вы могли бы задаться вопросом, почему я написал подобную программу, когда уже имеются многие, которые делают то же самое. Имеется много причин, я хотел бросить вызов себе, и это был неплохой способ сделать так. Также был парень (Borris), который постоянно просил меня сделать это для него, потому что Cracker Jack (от Jackal) не работал в Win95/NT из-за сверхъестественного пути, которым он использует память. Что было необходимо, так это программа, которая выполняется в Win95 и имеет скорость взлома сопоставимую с Cracker Jack.

К чести автора, он создал программу, которая делает это. Она быстра, компактна и эффективна. К сожалению, PaceCrack95 новая разработка и ещё широко не доступна (я полагаю, что она будет распространена к июлю 1996).


Ссылка: Не хватает надежных сайтов, с которых можно получить PaceCrack95, но она может быть найдено на
http://tms.netrom.com/~cassidy/crack.htm.

Qcrack от Crypt Keeper

Qcrack была первоначально разработана для использования на платформе Linux. Недавно она была перенесено на платформу MS-DOS/Windows (по сообщениям где-то в июле 1996). Qcrack следовательно среди новой волны взломщиков паролей, которые неожиданно появились в прошлом году или около того. Это увеличило выбор в пустоте. Эта утилита чрезвычайно быстра, но имеются некоторые основные недостатки. Один имеет отношение к памяти. Как автор, Crypt Keeper, объясняет:

QInit [один из нескольких двоичных образов в дистрибутиве] генерирует хеш-таблицу, где каждый вход соответствует хранимому значению и содержит первые два байта хэша. Каждый пароль занимает около 4КБ данных, так что этот файл быстро становится большим. Файл с 5000 словами может занять 20МБ диска. Это делает важным иметь много дискового пространства и очень избирательный словарь. Включен файл с именем cpw, который является списком, содержащим, как я считаю, "хорошие" слова для типичной учетной записи. У меня было ноль попаданий с этим файлом с некоторыми файлами паролей, а также было почти 30 процентов попаданий с другими.

ПРИМЕЧАНИЕ: Обратите внимание, что Qcrack немного медленнее чем некоторые другие утилиты такого характера, но вероятно она стоит этого. Распараллеливание возможно, но не в истинном смысле. В основном, она может использовать различные машины и использовать различные словари (как предлагает автор Qcrack). Однако, это не та же самая форма распараллеливания, которая может быть осуществлена Crack Muffett'а. (Не мелочитесь, но использование Qcrack этим способом существенно ускорит процесс взлома.)

Только ещё один интересный момент: автор Qcrack, в озарении, предложил, чтобы кто ни будь создал CD-ROM только со словарями списков слов (представляете, её вероятно нельзя было бы использовать с медленными CD-ROM; повторный доступ через диски, мог немного замедлить систему).


Ссылка: Qcrack может быть найдена в следующих местах:


John the Ripper от Solar Designer

John the Ripper относительно новый взломщик паролей UNIX, который работает на платформе DOS/Windows 95. Двоичный дистрибутив говорит, что кодирование было закончено в декабре 1996. Первые дистрибутивы этой программы были с ошибками. Те из Вас, кто работают с меньше чем 4МБ ОЗУ, могут захотеть избежать этой утилиты. Ее автор говорит, что программа может работать с меньше чем 4МБ, но будет часто производиться доступ диску.


Ссылка: John the Ripper также работает на Linux. Версия Linux в настоящее время в тестировании и распространяется как двоичный образ ELF. Она может быть найдена поиском строки john-linux.tar.zip.

Несомненно, эти ранние усилия были недоработаны, потому что автор попытался включить так много функций. Хотя John the Ripper не может все же быть совершенной, она оценивается как настоящая программа. Она работает в DOS (или в Windows 95 через окно оболочки) и имеет обширные опции. Вместо того, чтобы приводить список здесь, я обеспечил скриншот экрана, который появляется при запуске John без параметров (смотрите Рисунок 10.6).

Экран John the Ripper
Рисунок 10.6. Экран John the Ripper.

В этом отношении, John включает многие из удобств и возможностей других, более известных программ. Я полностью верю, что месяцев через шесть John the Ripper будет среди наиболее популярных утилит взлома.


Ссылка: Версия John the Ripper для DOS, которая является относительно большой в терминах взломщиков паролей, может быть найдена на
http://tms.netrom.com/~cassidy/crack.htm.

Pcrack (PerlCrack; Текущая Версия 0.3) от Offspring и Naïve

Pcrack это сценарий Perl для использования на платформе UNIX (это не подразумевает, что Pcrack не может быть реализована на платформе NT; это просто означает, что для этого должно быть произведено некоторое сверхжесткое перенесение). Эта утилита имеет преимущества, потому что весьма компактна и, когда загружена в интерпретатор, быстра. Тем не менее, необходимо очевидно иметь не только некоторый клон UNIX, но также и доступ к Perl. Как я уже указал, такие утилиты наилучшим образом применяются кем ни будь с корневым доступом к машине UNIX. Многие системные администраторы в наши дни приняли практику ограничения доступа к Perl.


Ссылка: Pcrack не доступна широко, но
http://tms.netrom.com/~cassidy/crack.htm
кажется надёжный источник.

Hades от Remote и Zabkar (?)

Hades ещё одна утилита взлома, которая показывает UNIX пароли /etc/passwd. Или что? Hades очень быстра, быстрее чем Crack Muffett'а, и гораздо быстрее чем CrackerJack (по крайней мере по тестам, которые я выполнял).

Дистрибутив поставляется с некоторым исходным текстом и страницами руководства, а также с консультацией, которую я цитирую здесь:

Мы создали Взломщика Паролей Hades, чтобы показать, что читаемые всем миром зашифрованные пароли в /etc/passwd главная уязвимость операционной системы UNIX и её клонов. Эта программа может использоваться системными операторами для обнаружения слабых паролей и отключения их, чтобы сделать систему более безопасной.

За исключением Crack Muffett'а, Hades наиболее хорошо документированный взломщик паролей. Авторы взяли на себя исключительную заботу, чтобы обеспечить Вас всеми возможными прелестями. Дистрибутив Hades состоит из ряда маленьких утилит, которые, когда используется вместе, представляют мощный набор программ взлома. Для каждой такой утилиты существует man (manual - руководство) страница. Отдельные утилиты, включенные в дистрибутив, выполняют следующие функции:


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


Star Cracker от Sorcerer

Star Cracker была разработана для работы под DOS4GW средой. Хорошо ... эта специфическая утилита немного любопытна. Автор был чрезвычайно тщательным, и хотя возможности, которые он или она добавил, имеют большое значение и интерес, одно удивляет, когда автор нашел время для забавы. В любом случае, вот некоторые наиболее любопытные возможности:

Пользователям UNIX вторая прелесть ничего не значит. Пользователи UNIX всегда имели возможность на задание времени. Однако на платформе DOS эта возможность меняется и недостаточна (хотя существуют утилиты, типа tm, которые могут планировать задания).

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


Ссылка: Star Cracker доступна на
http://citus.speednet.com.au/~ramms/.

Killer Cracker от Doctor Dissector

Killer Cracker другой довольно известный двигатель взлома. Она распространяется почти всегда как исходный текст. Пакет компилируется без проблем в ряде операционных систем, хотя я сказал бы, что она лучше всего работает под UNIX.


ПРИМЕЧАНИЕ: Если Вы не получите двоичный выпуск, Вам будет необходим компилятор C.

Killer Cracker имеет так много опций командной строки, что трудно выбрать, которые упомянуть здесь. Тем не менее, имеются несколько особенностей этого высоко переносимой и эффективной утилиты взлома:

В целом, эта программа весьма закончена. Возможно, именно поэтому она остается настолько популярной. Она была перенесена в операционную систему Macintosh, работает в системе DOS, а разработана была под UNIX. Она переносима и легко компилируема.


Ссылка: Killer Cracker может быть получена из этих мест:


Hellfire Cracker от Racketeer и Presence

Другая массовая работа Hellfire Cracker, утилита для взлома файлов паролей UNIX, используя платформу DOS. Она было разработано с использованием GNU компилятора. Эта утилита весьма быстра, хотя не благодаря блоку шифрования. Ее главный недостаток состоит в том, что дружественные пользователю функции фактически не существуют. Однако это компенсируется скоростью и эффективностью.

Одна прелесть Hellfire в том, что она теперь распространяется почти исключительно в двоичной форме, устраняя потребность в компиляторе C.


Ссылка: Эта утилита может быть найдена на многих сайтах, но я столкнулся с проблемой при обнаружении надежных. Этот, однако, надежен:
http://www.ilf.net/~toast/files/.

XIT от Roche'Crypt

XIT ещё один UNIX взломщик файла /etc/passwd, но очень хороший. Различные его характеристики включают:

Утилита XIT существует уже в течение нескольких лет. Однако не она так широко доступна, как можно было бы ожидать. Она также поставляется в различных сжатых форматах, хотя чаще всего в zip.


Ссылка: Одно надежное место, где можно найти XIT, это
http://www.ilf.net/~toast/files/xit20.zip.

Claymore от Grenadier

Утилита Claymore слегка отличается от своих коллег. Она выполняется на любой платформе Windows, включая 95 и NT.


ПРИМЕЧАНИЕ: Claymore не работает в DOS или даже окне оболочки DOS.

Рисунок 10.7 показывает окно Claymore.

Экран Claymore
Рисунок 10.7. Экран Claymore.

Нет ничего крутого в этой утилите, но некоторые удобства заслуживают внимания. Во-первых, Claymore может использоваться как взломщик "в лоб" для многих систем. Она может использоваться для взлома файлов /etc/passwd в UNIX, но может также использоваться для взлома других типов программ (включая, требующих пару login/пароль для входа).

Один довольно смешной аспект этого взломщика "в лоб" его чрезмерная фанатичность. Согласно автору:

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

Это то, что я классифицировал бы как истинная утилита взлома "в лоб"! Один интересный аспект: Вы можете определить, что программа будет посылать управляющие и другие непечатаемые символы во время взлома. Структура синтаксиса, чтобы сделать так говорит, что Claymore была написана на Microsoft Visual Basic. Кроме того, можно немедленно заключить, что функция VB SendKeys имеет большую роль в этом приложении. В любом случае, оно работает чрезвычайно хорошо.


Ссылка: Claymore доступна во многих местах в Internet, но
http://www.ilf.net/~toast/files/claym10.zip
гарантия её доступности.

Guess от Christian Beaumont

Guess компактное, простое приложение, предназначенное для нападения на файлы /etc/passwd в UNIX. Оно представлено стильно, но не много помпезно. Интерфейс разработан для DOS, но успешно работает в оконной оболочке DOS. Основной интерес имеет исходник, который включен в двоичный дистрибутив. Guess была создана кажется где-то в 1991. По некоторым причинам она ещё не получила известность своих коллег. Это странно, для такой хорошей работы.


Ссылка: Guess широко доступна, так что я воздержусь здесь от перечисления её местоположений. Достаточно просто поискать. Используйте для поиска строку guess.zip.

PC UNIX Password Cracker от Doctor Dissector

Я включил утилиту PC UNIX Password Cracker (которая выполняется на платформе DOS) прежде всего по историческим причинам. Во-первых, она была выпущена где-то в 1990. Также, она включает поддержку не только 386 и 286 машин, но и 8086 машин. (Правильно. Нашел старый XT, валявшийся у дома? Используй его и взламывай пароли!) Я не буду останавливаться на этой утилите, но скажу следующее: программа чрезвычайно хорошо разработана и имеет неисчислимые опции командной строки. Естественно, Вы вероятно захотите что ни будь немного более современное (возможно другую разработку хорошего Doctor'а), но если Вы действительно имеете старый XT, она для Вас.


Ссылка: PC UNIX Cracker может быть найдена на
http://www.ilf.net/~toast/files/pwcrackers/pcupc201.zip.

Merlin от Консультативного Органа по Компьютерным Инцидентам (CIAC - Computer Incident Advisory Capability) DOE

Merlin это не взломщик паролей. Скорее, это инструмент для управления взломщиками паролей, а также сканерами, утилитами контроля и другими связанными с безопасностью утилитами. Короче говоря, это довольно сложная утилита для целостного управления процессом безопасности. Рисунок 10.8 показывает экран Merlin'а.

Merlin только для платформ UNIX. Она по сообщениям была протестирована (с положительными результатами) в ряде систем, включая, но не ограничиваясь, IRIX, Linux, SunOS, Solaris и HP-UX.

Одна из основных притягательных особенностей Merlin: Хотя она была специально разработана для поддержки только пяти общих утилит безопасности, она очень расширяема (она почти исключительно написана на Perl). Таким образом, в схему программы можно очевидно включить любое число утилит.

Merlin замечательный инструмент для интегрирования нескольких утилит командной строки в единственный, легко управляемый пакет. Это адресует тот факт, что большинство программ безопасности в UNIX основано на интерфейсе командной строки (CLI - command-line interface). Поддерживаются следующие пять приложений:

Экран Merlin
Рисунок 10.8. Экран Merlin.

Обратите внимание, что Merlin не содержит ни одну из этих утилит в дистрибутиве. Вы должны приобрести эти программы и затем сконфигурировать Merlin для работы с ними (подобный путь используется для конфигурирования внешних просмоторщиков и помощников в Netscape Navigator). Концепция может показаться хромой, но утилита обеспечивает простое, централизованное место для выполнения некоторых довольно общих (и изнурительных) задач безопасности. Другими словами, Merlin больше чем front-end. По моему мнению, это хороший вклад в торговлю безопасностью.


СОВЕТ: Тем, кто плохо знаком с платформой UNIX, вероятно придется немного покопаться, прежде чем Merlin заработает. Например, Merlin полагается на то, что Вы правильно сконфигурируете броузер, чтобы должным образом обрабатывать файлы *.pl (само собой разумеется, что Perl одна из необходимостей). Также, Merlin очевидно выполняет внутренний HTTP сервер и ищет подключения от локального узла. Это означает, что Вы должны должным образом сконфигурировать вашу систему для обратной петли.

Merlin (и программы подобные ей) важная и растущая тенденция (тенденция начатая Farmer и Venema). Поскольку такие программы разрабатываются, прежде всего, на HTML/Perl, они высоко переносимы на различные платформы в семействе UNIX. Они также имеют тенденцию брать незначительные сетевые ресурсы и, после того, как код загружен в интерпретатор, они работают довольно быстро. Наконец, эти утилиты более легки для использования, делая безопасность менее неопределенной задачей. Данные под рукой и ими легко управлять. Это может только помочь усилить безопасность и обеспечить образование.

Другие Типы Взломщиков Паролей

Теперь Вы отважиться в более экзотические области. Здесь Вы найдёте широкое разнообразие взломщиков паролей для почти любого типа систем или приложений.

ZipCrack от Michael A. Quinlan

ZipCrack делает только то, что Вы подумали: Она разработана для взлома пароля "в лоб" и применяется к файлам с расширением *.zip (другими словами, она взламывает пароль в файлах, созданных PKZIP).

В дистрибутив не включены никакие документы (по крайней мере, то немалое количество файлов, которые я исследовал), но я не уверен, что в них есть необходимость. Программа проста. Вы просто обеспечиваете конечный файл, а программа делает остальное.

Программа была написана на Turbo Pascal, и исходный текст включен в дистрибутив. ZipCrack будет работать на любой IBM-совместимой машине, 286-ой или выше. Файл описания сообщает, что ZipCrack ломает все пароли, сгенерированные PKZIP 2.0. Автор также предупреждает, что, хотя короткие пароли могут быть получены в пределах разумного времени, взлом длинных паролей может занять "столетия". Однако я искренне сомневаюсь, что многие люди создают пароли больше пяти символов. ZipCrack полезная утилита для среднего комплекта утилит. Это одна из тех утилит, в которых Вы, как Вам кажется, никогда не будете нуждаться и позже, в 3:00 утра, Вы страшно ругаетесь, потому что не имеете ее.


Ссылка: ZipCrack широко доступна. Используйте для поиска строку zipcrk10.zip.

Fast Zip 2.0 (Автор Неизвестен)

Fast Zip 2.0 по существу идентична ZipCrack. Она взламывает zip пароли.


Ссылка: Чтобы найти Fast Zip 2.0, используйте для поиска строку fzc101.zip.

Decrypt от Gabriel Fineman

Decrypt неясная но, тем не менее, интересная утилита, ломающая пароли WordPerfect. Она написана на Бейсике и отлично работает. Программа не совершенна, но успешна много времени. Автор говорит, что Decrypt проверяет пароли с ключами от 1 до 23. Программа была выпущена в 1993 и является широко доступной.


Ссылка: Чтобы найти Decrypt, используйте для поиска строку decrypt.zip.

Glide (Автор Неизвестен)

Утилита Glide не имеет обширной документации. Эта программа используется исключительно, чтобы взламывать PWL файлы, которые являются файлами паролей, сгенерированными в Microsoft Windows для Рабочих Групп и более поздних версиях Windows. Недостаток документации, я думаю, простителен. В дистрибутив включен исходник на C. Для любого, кто взламывает машины Microsoft Windows, эта утилита необходима.


Ссылка: Glide доступна в следующих местах:


AMI Decode (Автор Неизвестен)

Утилита AMI Decode разработана явно для захвата пароля CMOS любой машины, используя American Megatrends BIOS. Прежде, чем искать эту утилиту, Вы можете попробовать фабрично установленный пароль CMOS. Это, как ни странно, AMI. В любом случае программа работает.


Ссылка: Чтобы найти AMI Decode, используйте для поиска строку amidecod.zip.

NetCrack от James O'Kane

NetCrack интересная утилита для использования на платформе Novell NetWare. Она применяется для нападение "в лоб" против bindery. Она медленна, но весьма надежна.


Ссылка: Чтобы найти NetCrack, используйте для поиска строку netcrack.zip.

PGPCrack от Mark Miller

Прежде, чем читатели, которые используют PGP, будут использовать ее, необходимо сказать немного общих слов. Довольно Хорошая Секретность (PGP - Pretty Good Privacy) вероятно самая сильная и наиболее надёжная утилита шифрования, доступная общественному сектору. Ее автор, Phil Zimmermann, подводит итог этому следующим образом:

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

PGP может применять ряд методов шифрования. Один из них, который обсуждается в Главе 13, "Техника Сокрытия Личности", это IDEA. Для того чтобы дать Вам понять, как трудно взломать IDEA, привожу выборку из PGP Attack FAQ (FAQ Нападений на PGP), за авторством Route (источник шифрования и член "Гильдии", группа хакеров):

Если у Вас есть 1,000,000,000 машин, которые могут пробовать 1,000,000,000 ключей в секунду, потребуется времени больше чем вселенная, а как мы знаем она бесконечна, чтобы найти ключ. IDEA, по существующей технологии, не уязвима для нападения "в лоб", просто и ясно.

В сущности, сообщение шифруется используя 1024-битный ключ, сгенерированный из хитрой и длинной фразы доступа, неламаем ни чем. Так почему Господин Miller создал эту интересную утилиту? Поскольку фразы доступа могут быть плохо выбраны и, если зашифрованное PGP сообщение должно быть взломано, фраза доступа хорошее место для начала. Miller говорит:

Я нашел, что на 486/66DX требуется приблизительно 7 секунд, чтобы читать 1.2 мегабайтовый файл фраз доступа и пробовать расшифровать файл, используя каждую фразу. Рассматривая факт, что NSA, другие правительственные агентства и большие корпорации имеют невероятное количество вычислительной мощности, выгода использования большой, случайной фразы доступа весьма очевидна.

Is this utility of any use? It is quite promising. Miller включил в дистрибутив исходник, а также файл возможных фраз доступа (я нашел, по крайней мере, одну из фраз доступа, которую использовал). Программа написана на C и выполняется в DOS, UNIX и OS/2 средах.


Ссылка: PGPCrack доступна в нескольких, надежных местах, включая:


ICS Toolkit от Richard Spillman

ICS Toolkit универсальная утилита для обучения Криптоанализу. Она работает хорошо в Microsoft Windows 3.11, но более трудна для использования в Windows 95 или Windows NT. Она использует старую версию VBRUN300.DLL и поэтому пользователи, имеющие более новую версию, могут поступить мудро, переместив более новую копию во временный каталог. (Приложение ICS не будет устанавливаться, если оно не может разместить свою версию VBRUN300.DLL в каталоге c:\windows\system). Эта утилита поможет Вам изучить то, как шифры создаются и как ломать их. Оно действительно весьма всесторонне, хотя требуется некоторая изобретательность, чтобы установить его. Оно было запрограммировано для старых версий Microsoft Windows. Интерфейс больше утилитарный, чем привлекательный.

EXCrack от John E. Kuslich

Утилита EXCrack получает пароли, применяемые в среде Microsoft Excel. Господин Kuslich поясняет, что это программное обеспечение не является свободным, но доступно для лицензирования (и защищено авторским правом). Поэтому, я не стал обеспечивать скриншоты или информацию. Можно с уверенностью сказать, утилита работает хорошо.


Ссылка: Чтобы найти EXCrack, используйте для поиска строку excrak.zip.

CP.EXE от Lyal Collins

CP.EXE получает или взламывает пароли для CompuServe, которые сгенерированы в CISNAV и WINCIM. Она по сообщениям также работает для паролей DOSCIM. Это быстрый и надёжный способ проверить, является ли ваш пароль уязвимым для нападения.


Ссылка: Эта утилита широко распространена и может быть найдена, используя для поиска строку cis_pw.zip.

Password NT от Midwestern Commerce, Inc.

Утилита Password NT получает или взламывает файлы паролей администратора на платформе Microsoft Windows NT 3.51. В этом отношении, это NT эквивалент любой программы, которая взламывает корневую учетную запись в UNIX. Обратите внимание, что требуется некоторый взлом, чтобы использовать эту утилиту. Если первоначальный диск, на котором расположен целевой пароль, NTFS (и следовательно допустимы опции контроля доступа), Вы должны переместить пароль на диск, который не защищенный контролем доступа. Чтобы сделать это, Вы должны переместить пароль на диск рабочей станции или сервера, также выполняющих 3.51. Поэтому, это не является мгновенным решением. Однако после того как все должным образом установлено, не потребуется времени вообще.


Ссылка: Приятно сделанная утилита Password NT всегда доступна на домашней странице компании
(http://www.omna.com/yes/AndyBaron/recovery.htm).

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

Ресурсы

На этом этапе, я хотел бы обратиться к некоторым концепциям безопасности паролей, а также дать Вам источники для дальнейшего образования.

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

О Безопасности Паролей UNIX

Безопасность паролей UNIX, когда правильно осуществлена, является довольно надежной. Проблема состоит в том, что люди выбирают слабые пароли. К сожалению, так как UNIX многопользовательская система, каждый пользователь со слабым паролем представляет риск другим пользователям. К этой проблеме необходимо обратиться:

Очень важно, чтобы все пользователи в системе выбирали пароли, которые не просто предположить. Безопасность каждого отдельного пользователя важна для безопасности всей системы. Пользователи часто понятия не имеют, как многопользовательские системные работают, и не понимают, что они, выбирая "простой для запоминания" пароль, косвенно делают возможным управление всей системой посторонним. 6

6 Walter Belgers, UNIX Password Security. (Безопасность Паролей UNIX.) 6 декабря, 1993.


СОВЕТ: Вышеупомянутый документ, Безопасность Паролей UNIX, даёт превосходный краткий обзор того, как DES работает в схеме паролей UNIX. Он включает схему, которая показывает фактический процесс шифрования, используя DES. Для пользователей, плохо знакомых с безопасностью, это превосходная отправная точка.


Ссылка: Обнаружить Безопасность Паролей UNIX можно используя для поиска строку password.ps.

Что такое слабые пароли? Характерно, это что-нибудь, что может быть найдено в словаре. Кроме того, собственные имена плохой выбор для паролей. Однако, нет необходимости теоретизировать о том, какие пароли легко взламывать. Можно с уверенностью сказать, если пароль имеется в списке слов взлома пароля, доступном в Internet, пароль не имеет смысла. Так, вместо того, чтобы удивляться, получите сами несколько списков.


Ссылка: Начните поиск списков слов на
http://sdg.ncsa.uiuc.edu/~mag/Misc/Wordlists.html.

Регулярно проверяя стойкость паролей в вашей сети, Вы можете гарантировать, что взломщики не смогут проникнуть в нее (по крайней мере, не через эксплуатацию плохо выбранных паролей). Такой режим может существенно улучшить вашу системную безопасность. Фактически, теперь многие ISP и другие сайты используют утилиты, которые проверяют пароль пользователя при его создании. Это в основном осуществляет философию, что:

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

7 Matthew Bishop, UC Davis, Калифорния, и Daniel Klein, LoneWolf Systems Inc. "Improving System Security via Proactive Password Checking." ("Улучшение Системной Безопасности через Предварительную Проверку Пароля.") (Появилась в Computers and Security (Компьютеры и Безопасность) [14, стр. 233-249], 1995.)


СОВЕТ: Эта статья вероятно одно из лучших исследований и обработок легко отгадываемых паролей. Она глубоко охватывает тему, приводит примеры различных паролей из реальной жизни, о которых можно было бы подумать, что они безопасны, но в действительности это не так.


Ссылка: Обнаружить Улучшение Системной Безопасности через Предварительную Проверку Пароля можно используя для поиска строку bk95.ps.


ПРИМЕЧАНИЕ: Как Вы видите, многие файлы имеют расширение *.ps. Оно показывает PostScript файл. PostScript язык и метод подготовки документов. Он был создан Adobe, создателем Acrobat и Photoshop.
Чтобы читать PostScript файл, Вам необходим просмоторщик. Один очень хороший это Ghostscript, который является shareware и может быть найден на
http://www.cs.wisc.edu/~ghost/.

Другой хороший пакет (и немного больше легкий) это утилита, вызванная Rops. Rops доступна для Windows и расположена здесь:


Другие важные документы включают следующее:

"Observing Reusable Password Choices" ("Наблюдение Многократно Используемых Паролей")

Технический Отчет Purdue CSD-TR 92-049

Eugene H. Spafford

Отдел Компьютерных Наук, Университет Purdue

Дата: 3 июля, 1992

Строка для Поиска: Observe.ps

"Password Security: A Case History" ("Безопасность Паролей: Исторический Случай")

Robert Morris и Ken Thompson

Bell Laboratories

Дата: Неизвестна

Строка для Поиска: pwstudy.ps

"Opus: Preventing Weak Password Choices" ("Опус: Предотвращение Выбора Слабых Паролей")

Технический Отчет Purdue CSD-TR 92-028

Eugene H. Spafford

Отдел Компьютерных Наук, Университет Purdue

Дата: июнь 1991

Строка для Поиска: opus.PS.gz

"Federal Information Processing Standards Publication 181" ("Публикация Федеральных Стандартов Обработки Информации 181")

Анонсирование Стандарта для Автоматизированного Генератора Паролей

Дата: 5 октября, 1993

URL: http://www.alw.nih.gov/Security/FIRST/papers/password/fips181.txt

"Augmented Encrypted Key Exchange: A Password-Based Protocol Secure Against Dictionary Attacks and Password File Compromise" ("Расширенный Зашифрованный Обмен Ключами: Основанный на Паролях Протокол Безопасности Против Нападений по Словарю и Компрометации Файла Паролей")

Steven M. Bellovin и Michael Merrit

AT&T Bell Laboratories

Дата: Неизвестна

Строка для Поиска: aeke.ps

"A High-Speed Software Implementation of DES" ("Высокоскоростная Программная Реализация DES")

David C. Feldmeier

Computer Communication Research Group

Bellcore

Дата: июнь 1989

Строка для Поиска: des.ps

"Using Content Addressable Search Engines to Encrypt and Break DES" ("Использование Ассоциативных Механизмов Поиска для Шифрования и Ломания DES")

Peter C. Wayner

Отдел Информатики

Университет Cornell

Дата: Неизвестна

Строка для Поиска: desbreak.ps

"Encrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks" ("Зашифрованный Обмен Ключами: Основанные на Паролях Протоколы Безопасности Против Нападений по Словарю")

Steven M. Bellovin и Michael Merrit

AT&T Bell Laboratories

Дата: Неизвестна

Строка для Поиска: neke.ps

"Computer Break-ins: A Case Study" ("Взлом Компьютера: Социологическое Исследование")

Leendert Van Doorn

Университет Vrije, Нидерланды

Дата: Четверг, 21 января, 1993

Строка для Поиска: holland_case.ps

"Security Breaches: Five Recent Incidents at Columbia University" ("Нарушения Безопасности: Пять Недавних Инцидентов в Университете Columbia")

Fuat Baran, Howard

Kaye, и Margarita Suarez

Центр Компьютерной Деятельности

Университет Colombia

Дата: 27 июня, 1990

Строка для Поиска: columbia_incidents.ps

Другие Источники и Документы

Следующее это список других ресурсов. Некоторые не доступны в Internet. Однако имеются статьи, которые могут быть получены через различные интерактивные службы (возможно Uncover) или в вашей местной библиотеке через межбиблиотечный обмен или через микрофишу. Вам, вероятно, придется более настойчиво искать некоторые из них, возможно используя Библиотеку Конгресса (locis.loc.gov) или даже более эффективный инструмент, подобно WorldCat (www.oclc.org).

"Undetectable Online Password Guessing Attacks" ("Необнаруживаемые Online Нападения по Предположению Пароля")

Yun Ding и Patrick Horster,

OSR, 29(4), стр. 77-86

Дата: Октябрь 1995

"Optimal Authentication Protocols Resistant to Password Guessing Attacks" ("Оптимальные Протоколы Аутентификации Стойкие к Нападениям по Предположению Пароля")

Li Gong

Научно-исследовательский Институт Stanford

Лаборатория Информатики

Men Park, CA

Дата: Неизвестна

Строка для Поиска: optimal-pass.dvi или optimal-pass.ps

"A Password Authentication Scheme Based on Discrete Logarithms" ("Схема Аутентификации Пароля, Основанная на Дискретных Логарифмах")

Tzong Chen Wu и Chin Chen Chang

Международный Журнал Вычислительной Математики; Том 41, Номер 1-2, стр. 31-37

1991

"Differential Cryptanalysis of DES-like Cryptosystems" ("Дифференциальный Криптоанализ DES-подобных Криптосистем")

Eli Biham и Adi Shamir

Журнал Cryptology, 4(1), стр. 3-72

1990

"A Proposed Mode for Triple-DES Encryption" ("Предложенный Режим Тройного DES Шифрования")

Don Coppersmith, Don B. Johnson и Stephen M. Matyas

Научно-исследовательский Журнал IBM, 40(2), стр. 253-262

Март 1996

"An Experiment on DES Statistical Cryptanalysis" ("Эксперимент на Статистический Криптоанализ DES")

Serve Vaudenay

Конференция по Безопасности Компьютеров и Связи, стр. 139-147

ACM Press

Март 1996

"Department of Defense Password Management Guideline" ("Руководство Министерства Обороны по Управлению Паролями")

Если Вы хотите получить более историческую перспективу безопасности паролей, начните с Руководства Министерства Обороны по Управлению Паролями. Этот документ был создан Центром Компьютерной Безопасности Министерства Обороны в Форте Meade, Мэриленд.


Ссылка: Вы можете найти Руководство Министерства Обороны по Управлению Паролями на
http://www.alw.nih.gov/Security/FIRST/papers/password/dodpwman.txt.

Итог

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

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


Предыдущая главаСледующая главаСодержание


Macmillan Computer Publishing USA

Macmillan Computer Publishing.



Все мессаги сюда:yanich@inbox.ru
Hosted by uCoz