GrabDuck

Руководство по "John the Ripper" на русском

:

Руководство по "John the Ripper" на Русском.

Немного о паролях.
Подготовка.
Режимы.
Опции.

Решил я написать эту статейку, так как уж больно много народа оставляет на досках объявлений вопросы о том как использовать 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 не берет :) А вот если видим такую ситуацию:

root:9IDv/CqdFuqWo:0:0:System Administrator:/root:/bin/csh
john:653MWdpUGN3BM:66:1:John Nikolsen, 2-nd west:/home/john:/bin/sh

То можно заметить, что данный пример более похож на правду. Давайте разберемся на примере с пользователем "john":

john:653MWdpUGN3BM:66:1:John Nikolsen, 2-nd west:/home/john:/bin/sh

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 файл :). Главное чтобы конструкция была правильная (см. выше). И так, у вас есть что-нибудь типа этого:

root:6xp8Tw7//32x2:0:0:root:/:/bin/bash
michael:Mrd4OyzXJi/.o:500:500::/home/g.giraud:/bin/bash
nick:lreHgxVKYfqiU:501:501::/home/pages_web:/bin/bash
melisa:sDci0pnsqhhE6:502:502::/home/informix:/bin/bash
johnson:pX9gnmqBDSQ/o:506:100::/home/pages_web:/bin/bash
dacosta:rGTGPVqn/AhuU:507:100::/home/pages_web:/bin/bash

Сохраняем все это дело в каком-нибудь файле типа 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. Удачного крека :).

[]acid[] [GiN]