John The Ripper и md5
Случилось мне тут забыть один свой пароль. Имелся только 128-битный md5-хэш пароля, причём записанный plaintext’ом, который был когда-то сгенерён программой md5sum. Для восстановления паролей по хэшам очень удобно использовать утилиту John The Ripper. Но есть одна проблемка, она (точнее он, John, всё-таки) не умеет работать с raw-md5.
Решение проблемы было отгуглено не сразу, спасибо друзьям на помощь и тыкание в правильные ссылки :)
Начнём с того, что нужно скачать исходники с официального сайта и распаковать их в какую-либо директорию. Например,
mkdir john #создаём директорию 'john'
cd john #переходим туда
wget http://www.openwall.com/john/f/john-1.7.2.tar.bz2 #и скачиваем тарбол с сорцами (на момент написания, самая свежая — 1.7.2)
tar -xvf john-1.7.2.tar #разархивируем
cd john-1.7.2 #переходим в папку с сорцами
wget ftp://ftp.openwall.com/pub/projects/john/contrib/john-1.7.2-all-9.diff.gz #качаем diff-архив с фиксом
gzip -d john-1.7.2-all-9.diff.gz #разархивируем
patch -p1 < john-1.7.2-all-9.diff #применяем патч
cd src # переходим в директорию, откуда будем собирать Джонни
make # собираем
make clean linux-x86-any # собираем, причем платформу можно (и нужно) выбрать свою
cd ../run #переходим в директорию с компилированной программой
./john -format=raw-MD5 /путь/до/файла/my_forgotten_md5-hash.txt #запускаем и ждём результатов
Замечу, что хэш должен лежать в формате user:hash, например
user:60ddb868550a7f0dece5379390bb71ea
Но лучше не забывайте свои пароли ;)