MD5 дешифраторы или атака на хеш

По теме:


MD5 дешифраторы или атака на хеш

Цель:

Рассказать о способах расшифровки.

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

Показать пользователям, что нада внимательнее относиться к выбору пароля.

Последовательность:

Будут по-очерёдно рассмотрены методы нахождения пароля от лёгкого(по моему мнению) до сложного(в плане скорости и т.д.).

О MD5:

MD5 (англ. Message Digest 5) — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института (Massachusetts Institute of Technlogy, MIT) в 1991 году.

Предназначен для создания «отпечатков» или «дайджестов» сообщений произвольной длины.

О расшифровке:

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

Пример: у нас есть хэш 0575c8d592fb7b088226750aceec2b4e, нам надо узнать начальное его значение, также у нас есть слово tutorial хеш которого 0575c8d592fb7b088226750aceec2b4e, итак, мы берём наш хеш 0575c8d592fb7b088226750aceec2b4e и пытаемся найти такой же, начальное значение которого известно, по совпадению мы получаем ответ,что есть такой хэш и что этому хэшу соответствует значение tutorial.

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

Методы "расшифровки":

Подбор по словарю.

Подбор по радужным таблицам
(http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D1%83%D0%B6%D0%BD%D0%B0%D1%8F_% D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0).

Брут
(http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B3%D1%80%D1%83% D0%B1%D0%BE%D0%B9_%D1%81%D0%B8%D0%BB%D1%8B).

Что нам нужно для "расшифровки":

Сайт для проверки на возможное совпадение.

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

Словарь, радужная таблица.

Сайты:

http://crackfor.me/ Правда нету простых паролей как на других сервисах, но простые пароли очень быстро можно узнать самим, об этом ещё пойдёт речь.

Итак, для примера заходим на этот сервис и вписываем в поле для хэша наш хэш 0575c8d592fb7b088226750aceec2b4e, жмём поиск и получаем такой ответ: пароль tutorial найден в нашей базе данных!

Было найдено совпадение в базе данных и выведено начальное значение хэша 0575c8d592fb7b088226750aceec2b4e = tutorial.

Программы:

Именно при помощи программ можно получить начальное значение хэша 3 способами.

Способ первый, подборка по радужным таблицам

Радужные таблицы и программа которая будит проверять и сравнивать их чтобы получить начальное значение которое нам нужно.

Итак, что касается таблиц, мы либо скачиваем их, либо генерируем.

Найти где скачать можно в google.

Я использую программу в пакет которой также входит и генератор. Она называется Cain & Abel и скачать её можно от сюда http://www.oxid.it/cain.html

Скачали, установили (при инсталляции спросит, устанавливать ли winpcap, выберите да).

В главной папке програмы есть подпапка с названием Winrtgen, там генератор таблиц, запускаем его. Жмём Add Table, вот тут надо настраивать какие таблицы будим иметь.

На момент написания статьи я генерировал таблицы 4-7 символов, вот мои настройки, поиграйтесь, там есть все данные(я описал на картинке) о вашей будущей таблице, они меняются при разных настройках.

Итак жмём ок, и ещё раз ок, пошла генерация. Кстати вы можете останавливать и продолжать её когда захотите. Вроде всё.

Приступим к нахождению, запускаем программу, идём во вкладку Cracker и слева выбераем MD5 Hashes. Видим пустой список, нажимаем на нём правую кнопку мышки и выбераем Add to list. В открывшемся окне вписываем наш хэш, жмём ок, хэш появился в списке. Жмём правую кнопку на нашем появившимся хэше и выбираем Cryptanalysis Attack via Rainbow Tables. В открывшимся окне жмём Add Table и добавляем наши таблицы. Жмём start, ждём, если в таблице будит нужное значение мы получим ответ.

Второй способ, подборка по словарю

Сойдёт таже программа, только нужны словари, их можно взять от сюда http://www.passwords.ru/dic.php http://www.passwords.ru/dic.php

Некоторые словари с расширением .dic, меняем на .txt

Всё как и в 1 способе, только вместо Cryptanalysis Attack via Rainbow Tables выбираем Dictionary Attack, в открывшемся окне видим пустой список, жмём правую кнопку на нём и Add to list.

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

Последний способ, БРУТ

Для брута также можно использовать Cain & Abel, но это медленно. Я использую barswf, пока что самый быстрый брут MD5 какой я только видил, брутит миллионами хэшей в секунду.

Скачать можно тут http://3.14.by/ru/md5

Используем через CMD.

Пример: C:\>barswf.exe -h 0575c8d592fb7b088226750aceec2b4e -c a

Программа начнёт брутить для хэша 0575c8d592fb7b088226750aceec2b4e только маленькие буквы, чтоб увидеть какие можно задавать параметры с описанием, наберите C:\>barswf.exe

Советую сразу проверять на цифры, а потом на цифры и буквы.

Для практических занятий пробуйте зашифровывать что-нибуть тут http://www.md5encryption.com/ и потом пробовать узнать всеми способами.