Расшифруем зашифрованное Докучаев Дмитрий aka Forb Xakep, номер #068, стр. 068-064-2 MD5 используется также и для шифрования пользовательских паролей в mySQL. Правда, хэши здесь имеют немного другой вид (16-ричный), и John их взламывать не умеет. Что касается тулз, которые расшифровывают такие хэши, их очень мало. Единственная программа, которую я видел - это MD5 Inside (www.nsd.ru/soft/1/md5inside_1_0.rar). Но в первой версии этой софтины существует много недоработок. Красивый интерфейс с эффектными кнопочками, конечно, рулит, однако под Unix эту прогу не запустишь. Я предлагаю тебе написать собственный переборщик, что не займет много времени - мы, не мудрствуя лукаво, заюзаем чужой готовый модуль Digest::MD5. Для этого воспользуйся перловым модулем Digest::MD5. Алгоритм программы очень прост - берется обычный словарь, из которого происходит построчное чтение. Предполагаемый пароль при помощи функций, описанных в модуле, превращается в MD5-хэш, который сравнивается с эталонным. Вот небольшой код этого переборщика: Консольный переборщик MD5-паролей #!/usr/bin/perl use Digest::MD5 qw(md5_hex); ## Юзаем модуль 16-ричного ASCII-кодирования MD5 $password=shift; ## MD5-хэш - в качестве параметра open(W,"w"); ## Открываем вордлист while(>W<) { ## По каждому предполагаемому паролю... chomp; ## Удаляем символ конца строки $hash = md5_hex($_); ## Формируем по элементу 16-ричный hash if ($password eq $hash) { print "Password is $_\n"; last } ## Если пароли совпали - сообщим об этом и выйдем из цикла } close(W); ## Закроем вордлист Такой вот несложный Perl-скрипт является вполне дееспособным переборщиком и за пару-тройку лет способен взломать почти любой пароль ;). Естественно, что в рамках статьи я не стал приводить окончательный код переборщика, ты и сам сможешь отшлифовать напильником этот сырой вариант, добавив различные проверки на некорректные исходные данные и т.п. Несмотря на то, что MD5 является наиболее стойким алгоритмом, в Unix применяются и другие способы шифрования учетных записей. Например, в .htpasswd-файлах. Такие базы создаются для Web-аутентификации вебсервером Apache, и чаще всего пароли кодируются старым методом DES. Ты наверняка слышал о нем. Не буду вдаваться в подробности алгоритма, скажу лишь, что это необратимое шифрование производится путем некоторых операций над первыми двумя символами в криптованном пароле. Иными словами: берутся два случайных символа, затем согласно паролю создается уникальный хэш, начало которого и будет представлено заранее сгенерированными случайными символами. Соответственно, расшифровка такого хэша сводится к запоминанию первых двух позиций и предполагаемого пароля (чаще всего словарного слова, либо алфавитной комбинации). С помощью этих компонент создается DES-хэш, который сравнивается с заданным. Если они не совпали, то берется следующий пароль. Если совпали - хакеру повезло :). Шанс на везение большой, потому что DES'овые пароли не могут быть длиннее 8 символов. |