xacneo
Сообщений: 190
Оценки: 0
Присоединился: 2006-08-16 16:58:14
|
Решил я написать эту статейку, так как уж больно много народа оставляет на досках объявлений вопросы о том как использовать 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. Удачного Крека_)
|