Решил я написать эту статейку, так как уж больно много народа оставляет на досках объявлений вопросы о том как использовать John The Ripper ( в дальнейшем JTR), или где найти мануал к JTR на Русском. Сразу хотелось бы отметить, что частично информация была взята из документации прелагаемой к JTR v1.6 на Английском языке. Руководство прилагается в первую очередь для новичков. JTR - программа для восстановления паролей для UNIX/Win95/NT/DOS систем, но в народе как то повелось использоватьJTR в основном для взлома *nix паролей (для чего он и предназначался в ранних версиях). На NT, большинство юзает l0pht, а на pwl, PWL-tool. Прежде чем начнем разбираться с самим JTR, давайте остановимся на самих паролях в *nix системах.
Немного о паролях.
В Linux пароли шифруются в алгоритме "DES", также есть такая фишка как "salt", это 2е любые буквы, которые являются ключом к паролю, другими словами, с помощью "salt" и шифруется пароль. Подробнее об этом написано в статье "пароли в UNIXе" (почитать можно на www.hack-crack.com). Просто не хочу повторяться, да и тема у нас сейчас другая :). Пароли в большинстве случаев хранятся в следующих файлах:
/etc/passwd /etc/shadow
Хотя могут и лежать в каком-нибудь /etc/shadow.old или /etc/passwd.tmp . Сделав листинг директории /etc/, сразу можно все понять. Просто иногда хитрые админы меняют названия файлов :). passwd файл, это как раз то что нам надо, но в большинстве случаев пароли хранятся в shadow (в тени), в этом случае в passwd видим следующую ситуацию:
root:*:0:0:System Administrator:/root:/bin/csh rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh …
Внимание! Это на самом деле fake, и никаких паролей здесь нет! А то бывали кадры, которые мне говорили, что типа пароли почему то JTR не берет :) А вот если видим такую ситуацию:
1. john - имя пользователя. 2. 653MWdpUGN3BM - пароль зашифрованный в DES. 3. 66:1 - номер пользователя в системе : номер рабочей группы (у root всегда 0:0). 4. John Nikolsen, 2-nd west - информация о пользователе (обычно Имя, Фамилия…). 5. /home/john - Домашний каталог. 6. /bin/csh - shell.
Теперь ты свободно можешь разобрать passwd файл :). Но сразу хотелось бы отметить, что на файл в котором находятся пароли в DES (будь то shadow или passwd), права в большинстве случаев дают r-------- или r--r-----, это значит, что права на чтения есть у root'а и зарегистрированных пользователей (во втором случае r--r-----). Так что, через какой-нибудь htmlscript, вряд ли удастся просмотреть, но все таки иногда везет, и получается просмотреть все содержимое :). В Free BSD пароли хранятся в файле /etc/master.passwd , а в остальном технология такая же как и в LINUX, хотя используется более стойкий алгоритм шифрования MD5. В Open BSD, для шифрования используется алгоритм Blowfish. Ну а теперь о самом JTR и как его заюзать.
Подготовка.
Вопреки о том, что файлом с паролями является чем то жутким и не понятным, можно сказать, что пароли можно засунуть в обычный txt файл :). Главное чтобы конструкция была правильная (см. выше). И так, у вас есть что-нибудь типа этого:
Сохраняем все это дело в каком-нибудь файле типа passwd.txt, или просто passwd. Этот файл как раз и будет то, что надо сунуть JTR. Далее переходим в папку с JTR, и находим там файл john.exe, в эту же папку ложем наш passwd файл. Далее идем в "DOS Prompt" ("Режим DOS"), не просто по john.exe щелкаем 2 раза, а именно идем в "Режим DOS", далее командой:
cd c:jtr
заходим в папку где лежит JTR. Теперь можно запускать JTR :). Запускаться все может в разных режимах и с разными параметрами о которых я сейчас и постараюсь рассказать. Данные примеры рассматриваются для пользователей с системами win95/95/NT, для *nix в принципе все опции и параметры идентичны.
Режимы.
1. Самый простой способ, это запустить JTR в режиме "Brute force": john passwd (Я в дальнейшем буду использовать passwd как имя файла с паролями, но как я уже и сказал, имя и формат файла может быть практически любым) Данный способ является самым простым, и не очень эффективным, так как JTR начинает перебирать все символы от фонаря, что конечно очень долго… хотя многое зависит от мощности вашего компьютера и от сложности пароля. Пароль типа "dk9LDs)p1" еще твои правнуки будут доламывать :)
2. Перебор по словарю: john -w:wordlist passwd где wordfile - имя файла со словарем. Также можно и так: john -w:wordlist -rules passwd -rules, включает правила синтаксиса для словаря. С вариантом по словарю, пароли подбираются на много быстрее чем в варианте с "Brute force". По-моему, самый лучший и эффективный способ.
3. incremental mode john -i passwd Авторы JTR говорят, что это самый сильный способ перебора, 95 символов. А вот таким способом: john -i:alpha passwd JTR перепробует 26 символов, от "a", до "zzzzzzzz". Если с wordlist не получилось, советую запускать данный способ.
4. single mode (одиночный режим). john -single passwd Рекомендуется начать перебирать пароль с данной опцией. Намного быстрее чем wordlist mode, но рассчитан на хиленькие пароли. При переборе нескольких файлов с данной опцией, возможно подобрать пароли быстрее чем просто 1 passwd файл.
Опции.
Теперь я перечислю пару полезных опции для JTR. Опции можно запускать в любых режимах:-w, -i, -single.
1. Перебор для конкретного пользователя: john -w:wordlist -rules -users:0 passwd Перебирает пароль к конкретному пользователю (в нашем случае root). Что бы указать пользователя, надо после ":" указать UID (номер пользователя в системе).
2. Смотрим подобранные пароли. john -show passwd Показывает уже подобранные пароли, в указанном файле.
3. Разбиваем файл на куски. john -w:wordlist -salts:5 passwd john -w:wordlist -salts:-5 passwd Иногда бывает полезно (если есть 2 компьютера). Число "5" это количество "salts" (паролей). JTR будет отчитывать с самого верху. В первом примере (на 1ом компе), берется первые 5 пользователей, во втором примере "-5" (на 2ом компе), перебираются все, кроме 5и первых.
4. Люблю shells :). john -w:wordlist -rules -shells:sh,csh,tcsh,bash passwd В данном случае, будут перебираться только те пользователи, которые имеют указанные в вышеприведенном примере shell'ы.
5. Несколько passwd файлов. Если у вас есть несколько файлов с паролями в DES, то их можно всех вместе поставить на расшифровку данным способом: john -single passwd passwd1 passwd2 Количество файлов по-моему не ограничено :). Способ с несколькими файлами, работает на всех режимах и опциях, просто укажите имена файлов в конце (как в примере).
6. Unshadow files. unshadow passwd shadow Если у вас пароли в shadow, то данной командой, их можно восстановить (требует shadow файл :).
Ну вот ты и научился юзать JTR :). В данной статье были описаны практически все самые полезные примеры, которым можно найти применение. За более подробной информацией на Английском, можно обратиться к документации прилагаемой к JTR. Удачного крека :).