Программа "John the ripper" служит для восстановления забытых паролей. Официальный сайт программы - http://www.openwall.com/john/
Установка
Устанавливать надо из исходников. Можно взять исходники версии 1.7.3.1 (или более старую 1.7.2, которая считается стабильной). Распаковать архив в отдельный каталог. Зайти в подкаталог src, запустить make. В ответ сборка не пойдет, а будет выдан список целевых систем, под которую возможна компиляция. Надо найти в списке нужный тип, и дать соответсвующую команду, например:
# make clean linux-x86-mmx
В результате запустится компиляция. Результирующий бинарник будет лежать в каталоге run.
По непонятной причине, John не работает с MD5, хотя в документации написано, что программа знает MD5. Чтобы поддержка MD5 заработала, надо наложить патч.
Для версии 1.7.2 патч раньше можно было взять по ссылке:
ftp://ftp.openwall.com/pub/projects/john/contrib/john-1.7.2-all-9.diff.gz
но теперь такого файла нет.
Для версии 1.7.3.1 патч находится по ссылке:
ftp://ftp.openwall.com/pub/projects/john/contrib/john-1.7.3.1-all-5.diff.gz
Из этих двух ссылок примерно понятно, как может называться файл патча для других версий.
Установить патч можно следующим образом. Заходим в каталог с сырцами (он может называться, например, john-1.7.3.1). Кладем тутда файл патча. Потом там же даем команды вида:
# gzip -d john-1.7.3.1-all-5.diff.gz
# patch -p1 < john-1.7.3.1-all-5.diff
После чего заходим в каталог src и снова запускаем компиляцию как было описано выше. После этих действий John начнет работать с MD5.
Как пользоваться John the ripper
Чтобы начать подбор пароля, надо сделать файл, который будем скармливать в программу. Формат файла такой:
логин1:хеш1
логин2:хеш2
...
логинN:хешN
Логины можно указывать произвольные, они нужны только для того, чтобы запросить у John результат подбора конкретного пароля, так как John может перебирать одновременно несколько паролей. Если надо подобрать один пароль, то файл просто будет содержать одну строку, например:
user:98ab3290fd8efaeb016529b9c45cbde9a
При переборе такого файла, при нахождении пароля, программа выдаст пароль на экран и остановится.
Чтобы запустить перебор паролей, от которых известны MD5, надо дать команду вида:
# ./john --format=raw-MD5 --incremental:alnum password_skype.txt
Надо обратить внимание, что в качестве формата нужно указывать "raw-MD5" а не "MD5". Кроме того, код хеша должен быть записан с использованием строчных (т.е. маленьких) букв a, b, c, d, e, f. Если эти буквы будут большие, хеш не прочитается.
Когда перебор закончится, можно и посмотреть что там удалось найти:
# ./john -show password_skype.txt
Вот какие возможны варианты перебора:
1. Brute force
# john passwd.txt
Этот способ является самым простым, но он не очень эффективен так как прога начинает перебирать все символы от балды, что естественно очень долго.
2. Перебор по словарю
# john -w:wordlist passwd.txt
где wordlist - имя файла словаря со словами для перебора
3. Incremental mode
# john -i passwd.txt
- это самый сильный способ перебора, 95 символов.
# john -i:alpha passwd.txt
- это перебор с использованием 26 символов от 'a' до 'z'.
4. Single mode
# john -single passwd.txt
Слабенький способ перебора. Быстро подберёт пароли похожие либо совпадающие с логином пользователя. Рекомендуется сначала всегда использовать данный способ т.к. он быстрее чем перебор по словарю.