John the ripper руководство

Просмотров: 436

Здравствуйте, дорогие друзья.

В этой статье, я покажу Вам, как взламывать пароли с помощью перебора. Мы погрузимся в John the Ripper, который, вероятно, является наиболее широко используемым инструментом для взлома паролей. John the Ripper разработан, чтобы быть одновременно многофункциональным и быстрым. Он сочетает в себе несколько параметров взлома, и поддерживает множество протоколов хеширования. В расширенных версиях сообщества добавлена поддержка хешей Windows iNTLM, MacOS или хэшей sha-256 или 512 с солью.

Прежде чем начать использовать John, давайте немного поговорим о доступных режимах взлома. Доступно 3 режима взлома: режим одиночного взлома, атака по словарю и инкрементный режим. Режим одиночного взлома – это режим, с которого Вы должны начать взлом.

Он будет использовать имена журналов, вместе с другими полями из прошлого начала файла, также с большим набором применяемых правил искажения. Это самый быстрый режим взлома, который применим к очень простым паролям.

Если Вы используете атаку по словарю, Вы должны предоставить файл словаря, содержащий по одному слову в строке файла паролей.

Вы можете включить правила искажения слов, которые используются для изменения или искажения слов, производящих другие вероятные пароли. Если этот параметр включен, все правила будут применяться к каждой строке, в файле списка, создавая несколько возможных паролей для каждого исходного слова.

И самый мощный режим взлома — это инкрементный режим. Он пробует все возможные комбинации символов в качестве паролей. Однако, если Вы предоставите случайный пароль, длиной более 12 или 14 символов, он никогда не будет завершен, и Вам придется прервать его вручную.

Ладно, приступим! В Kali Linux уже установлен John the Ripper, но, если Вы используете другой дистрибутив, Вы можете просто установить его, выполнив apt install john.

apt install john

Это уже самая новая версия. Первый шаг — объединить предоставленные пароли и теневые файлы в один файл. Для этого есть команда unshadow, которая является частью пакета John. Команда выглядит следующим образом:

unshadow

Имя текстового файла, можете указать по-другому.

Посмотрим содержимое файла, с помощью команды «cat»:

cat
cat unshadowed.txt

Хорошо, у нас есть пользователь и хеш! Идеально! Начнем с джона в одиночном режиме. Команда: «john -single unshadowed.txt ----format=crypt»:

john -single unshadowed.txt ----format=crypt

Не пугайтесь такого вывода, потому что у Вас, при первом взломе хешей будет отображение взломанных паролей системы из файла, который мы создавали ранее.

Будет примерно такой вывод (не обращайте внимание на команду):

Будет примерно такой вывод (не обращайте внимание на команду)

Проверим, нашел ли John что-нибудь. Это команда: «john --show unshadowed.txt»:

john --show unshadowed.txt

Мы замечаем, что он взломал два пароля: пароль пользователя Kali, по умолчанию, начиная с версии 2020.1, является «kali», и пароль пользователя «test». Всего за несколько секунд он взломал пароль по умолчанию пользователя Kali Linux. И снова говорю, что одиночный режим хорош только для взлома очень простых паролей. Когда John находит пароль, он сохраняет его в файле, в домашнем каталоге. Это команда и путь: «cat ~/.john/john.pot»:

cat ~/.john/john.pot

Здесь хранятся пароли! Давайте попробуем атаку по словарю методом перебора. John the Ripper поставляется со своими собственными списками паролей в /usr/share/john.

/usr/share/john

Например, таким файлом словаря является password.lst:

password.lst

Также в любом дистрибутиве Linux есть файлы словарей / usr/share/dict/.

/ usr/share/dict/

Чтобы проверить, сколько записей находится в файле словаря, Вы выполняете: «wc -l /usr/share/dict/wordlist-probable.txt»:

wc -l /usr/share/dict/wordlist-probable.txt

Например, в этом файле есть 203809 слов.

Хорошо, давайте начнем, используя словарь, который идет в комплекте John. Это команда: «john --wordlist=/usr/share/john/password.lst --rules --format=crypt unshadowed.txt»:

john --wordlist=/usr/share/john/password.lst --rules --format=crypt unshadowed.txt

Он уже взломал два пароля, поэтому мы видим такой вывод. У Вас может быть другое отображение. Просто знайте, что это не ошибка. Скрипт отработал. Если я хочу увидеть взломанные пароли, я запускаю: «john --show unshadowed.txt»:

john --show unshadowed.txt

На этом все. Всем хорошего дня!

#1 Взлом паролей. Понимание файлов etc/passwd и etc/shadow.

#2 Введение во взлом паролей.

John The Ripper — полное руководство

Я уже не раз в своих статьях, посвященных безопасности сетей, говорил о том, что администратору необходимо выявлять наличие нестойких паролей в своей системе. Именно из-за того, что пользователи выбирают слабые пароли, и производится много незаконных вторжений в, кажется, сильно защищенную систему. В данной статье речь пойдет о программе John The Ripper, позволяющей расшифровывать пароли пользователей в системах Unix. Я не хочу утверждать, что эта статья целиком посвящена администраторам. Наоборот, я адресую эту статью в первую очередь обычным пользователям. Именно их часто одолевает лень разобраться в какой-либо программе полностью. Порой они даже не догадываются о том, сколько полезных функций заложено программистами. Используя все настройки, принятые по умолчанию, они запускают программу без каких-либо аргументов, пытаясь добиться от нее максимального результата в кратчайшие сроки. В сложных программах такого практически не бывает, поэтому зачастую программа «забрасывается» до лучших времен либо используется не на полную катушку. В администрировании такая халатность может привести к серьезным последствиям. Поэтому я и решил сделать подробное руководство по программе John The Ripper, как одной из лучших расшифровщиков паролей для Unix систем.

Для того чтобы использовать программу John The Ripper, вам понадобится копия файла с паролями. Очень часто у пользователей, заглянувших впервые в файл etc/passwd либо же etc/shadow, появляется слишком много вопросов. Сейчас я постараюсь кратко объяснить, как же устроен файл etc/passwd . В этом файле находится список всех пользователей. Для каждого пользователя отведена отдельная строка, которая описывает его учетную информацию. Рассмотрим на примере формат одной из таких строк:

root:qVbsxDKZ7lKxA:0:0:root:/root:/bin/bash .

В этой строке поля разделены двоеточиями. Эта строка разбивается на следующие части. root, в нашем случае, — это имя пользователя, т.е. его логин в системе; qVbsxDKZ7lKxA — это закодированный пароль пользователя root. Всего различных способов кодирования пароля 4096, так что очень маловероятно, что если у двух разных пользователей одни и те же пароли, то и в зашифрованном виде они будут выглядеть одинаково. 0, который следует сразу же за зашифрованным паролем, — это входной идентификационный номер пользователя. Обычно первые 100 идентификационных номеров зарезервированы для административных целей, так что желательно, чтобы идентификационные номера пользователей были больше 100, да и к тому же для каждого пользователя уникальными. Следующим за идентификационным номером пользователя идет идентификационный номер группы пользователя. Это создано из-за того, что большинство групп состоят более чем из одного пользователя, поэтому пользователи, принадлежащие к одной группе (идентификационные номера группы у пользователей равны), могут иметь общие файлы. Таким образом, доступ к таким файлам будет разрешен только членам этой группы и никому другому (кроме пользователя root, конечно:). Имена и номера групп должны быть определены в файле etc/group . За идентификационным номером группы следует место для комментария, обычно там указывается полное имя пользователя, однако здесь может располагаться любая другая информация. /root — это начальный каталог пользователя. /bin/bash — оболочка пользователя, принимаемая по умолчанию. Вот и весь формат файла. Таким образом, для каждого отдельного пользователя отведена одна строка, что, на мой взгляд, очень удобно для системного администратора.

Теперь приступлю к описанию самой программы. Сначала, вы должны получить копию файла паролей. Если вы, воспользовавшись правами root’a, получили файл, содержащий так называемые теневые (shadow) пароли, то вам понадобится преобразовать этот файл в нормальный вид, выполнив следующую команду: unshadow /etc/passwd /etc/shadow > passwd.1 . Таким образом, получится файл ‘ passwd.1′, содержащий зашифрованные пароли пользователей, который нам в дальнейшем и понадобится для расшифровки. Если вы собираетесь расшифровывать AFS или NT пароли, то вам необходимо для этого использовать программу ‘unafs’, входящую в поставку John The Ripper, или cкачать утилиту PWDUMP (ftp://samba.anu.edu.au/pub/samba/pwdump/), соответственно. Предположим, что вы получили файл паролей, ‘passwd.1’, и хотите начать его расшифровку. Самый легкий способ состоит в том, чтобы использовать заданный по умолчанию порядок режимов расшифровки. Для этого необходимо выполнить следующую команду: john passwd.1 . В результате John The Ripper начнет расшифровку с режима ‘single crack’, затем будет использован режим ‘wordlist’, и, наконец, вы дойдете до последнего режима работы программы под названием ‘incremental mode’. Для увеличения скорости расшифровки при помощи подбора паролей по словарю рекомендуется воспользоваться большим словарем паролей, т.к. словарь, поставляющийся с самой программой, невелик. Если у вас есть такой словарь, то вам необходимо в файле john.ini отредактировать строку, указывающую на применение другого словаря. Например, если словарь с паролями носит название ‘passwordlist’, то в файле john.ini вам необходимо найти строку ‘Wordfile =’ и написать следующее: Wordfile = ~/passwordlist .

Теперь, когда вы получили некоторое количество расшифрованных паролей, они будут сохранены в файле john.pot . Для того чтобы их просмотреть, выполним следующую команду: john -show passwd .1. Если список учетных записей становится все больше и больше, не помещаясь на экране, то вы можете использовать переадресацию вывода. Для тех, кто не знает, что это такое, поясню. Используя символ ‘>’, вы можете перенаправить результаты выполнения команды сразу в файл. Далее, вы можете обратить внимание на то, что если в файле учетных записей находятся записи о блокировании доступа к шеллу, то у вас есть возможность заставить John’a игнорировать эти учетные записи. Если предположить, что блокированный доступ к шеллу носит название ‘/etc/expired’, то запустим программу со следующими опциями: john -show -shells:-/etc/expired passwd.1 . Для краткости можно также использовать сокращенный путь, который будет соответствовать любому пути, например, ‘/any/path/expired’: john -show -shells:-expired passwd.1 . Если у вас появилось желание проигнорировать какую-либо другую оболочку, например, ‘/etc/newuser’, то внесем в нашу команду небольшие изменения: john -show -shells:-expired, newuser passwd.1 . Тут следует заметить, что, начиная с версии 1.4, синтаксис программы немного изменился в лучшую сторону. Теперь вы можете сокращать команды.

Как и в любой другой системе, взломщик пытается получить наивысшие привилегии в системе. В ОС Unix такой учетной записью является root или же любая другая учетная запись, имеющая идентификатор 0. Для того чтобы проверить, расшифровался ли такой пароль, выполняем команду: john -show -users:0 passwd.1 . Если таких файлов с паролями у вас не один, а несколько, то для того, чтобы просмотреть все файлы, вы можете обойтись одной лишь командой: john -show -users:0 passwd.* . Если вам понадобилось узнать расшифрованный пароль какого-либо пользователя, например root’a, выполним следующее: john -show -users:root passwd.1 . И, наконец, для просмотра всех расшифрованных паролей пользователей, принадлежащих к привилегированным группам, нам поможет команда: john -show -groups:0,1 passwd.1 .

Однако же, если вы хотите использовать какой-нибудь из режимов расшифровки в отдельности, например ‘single crack’, авторы этой программы также предусмотрели это и включили в свой продукт выбор различных режимов. В нашем случае команда будет выглядеть следующим образом: john -single passwd.1 . Я уже говорил о том, что синтаксис программы изменился, поэтому результат выполнения команды: john -si passwd.1 будет таким же, как и результат выполнения предыдущей команды. Если у вас имеется сразу несколько файлов с зашифрованными паролями, то вам поможет следующая команда: john -single passwd.1 passwd.2 или даже john -single passwd.*, что во многих случаях сокращает запись исполняющихся команд.

Допустим, что после использования режима ‘single crack’ у вас расшифровались не все пароли. Следующим шагом к раскрытию всех зашифрованных паролей вы можете применить более мощный режим расшифровки — подбор паролей по словарю. Однако этот метод будет хорош для угадывания паролей лишь тех пользователей, которые не позаботились как следует о своей безопасности и выбрали в качестве своего пароля легко подбираемое слово. Поэтому мы будем использовать опцию wordlist: john -w:words.lst passwd.1 . Для любителей наглядности предлагается использовать длинный синтаксис параметров: john — wordfile=words.lst passwd.1 . Однако то же самое можно записать и кратко: john -w=words.lst passwd.1 . Для атаки перебора паролей по словарю, используя специальные правила, нужно в командной строке написать следующее: john -w:words.lst -rules passwd.1 . Но данный метод работает медленнее, чем атака по словарю без использования опции ‘rules’, однако это повышает ваши шансы расшифровать большинство слабых паролей, чтобы не тратить время на их расшифровку впоследствии. Поэтому я рекомендую не пренебрегать данной опцией.

Теперь рассмотрим следующий пример. Допустим, у вас набралось много паролей пользователей, которые не имеют доступ к шеллам, и вы не желаете тратить время на подбор паролей к их учетным записям. Вы можете указать john’y, чтобы тот не подбирал пароли для таких пользователей: john -w:words.lst -rules -shells:sh, csh, tcsh, bash passwd.1 . Этот вариант перебора работает во всех режимах. Хочу заметить, что для взломщика, атакующего систему, пароли пользователей, не имеющие доступа к шеллам, представляют наименьшее значение, поэтому основной упор он будет делать именно на пользователей с доступом к шеллам, ну и, конечно же, на суперпользователя — root’a. Подобно всем другим режимам взлома паролей, для того, чтобы как можно быстрее расшифровать все файлы, вам необходимо при расшифровке использовать сразу все файлы с паролями: john -w:words.lst -rules passwd.* . При этом вы сэкономите уйму времени, потому как если в одном файле на взлом пароля root’a у вас может уйти много времени, то при использовании сразу несколько файлов шансы на быструю расшифровку увеличиваются за счет одновременного подбора паролей сразу ко всем пользователям. Ну, а далее все зависит только от скорости вашего процессора.

Так же как и в предыдущих режимах взлома, у вас присутствует возможность расшифровки каких-то отдельных паролей. Следующая команда производит расшифровку всех root’ов (универсальный идентификатор 0) во всех файлах паролей: john -w:words.lst -rules -users:0 passwd.* . Для альтернативы, если вы не желаете тратить впустую время на расшифровку ваших собственных паролей, будучи уверенным в том, что они не взламываемые: john -w:words.lst -rules -users:-root, solar passwd.* . Иногда полезно разбить ваши файлы паролей на две части, которые впоследствии можно будет расшифровывать в отдельности: john -w:words.lst -rules -salts:2 passwd.* и john -w:words.lst -rules -salts:-2 passwd.* .

В результате это приведет к попыткам John’a взломать два или более паролей как можно быстрее, а затем уже после этого программа будет пробовать расшифровать все остальные пароли. Общее количество времени, потраченное на взлом, будет относительно тем же, но у вас появляется возможность получить некоторые пароли раньше, поэтому в результате расшифровки вы уже можете не нуждаться в подборе остальных. Например, John подобрал пароль для суперпользователя root. При этом вы достигли максимальных привилегий, потому как все, что могут делать обычные пользователи, может делать root. Однако ни у кого, кроме него, не существует таких высоких полномочий (если в системе только один суперпользователь с уникальным идентификатором 0). Пароли других пользователей могут понадобиться только лишь в том случае, если вход в систему под именем root запрещен. Тогда вам нужно будет добыть пароль какого-нибудь пользователя. Под ним зайти в систему, а уже после этого, зная пароль пользователя root, попытаться поднять свои привилегии до рутовских.

Наиболее мощный режим расшифровки в программе John The Ripper называется «incremental». Для того чтобы начать перебор зашифрованных паролей в таком режиме, вы можете просто выполнить следующую команду: john -i passwd.1 . В результате выполнения этой команды John будет использовать заданные по умолчанию возрастающие параметры режима, которые определены в файле john.ini в разделе [Incremental:All] . В файле конфигурации, снабженном John’ом, эти параметры должны использовать все 95 символов и пробовать все возможные длины пароля, от 0 до 8. (Нулевой длиной пароля автор программы считает хэш, представляющий собой пустую строку, поскольку такие пароли тоже иногда могут попадаться). Не следует ждать того, что перебор всех возможных паролей закончится в разумное время, так как если пароль действительно стойкий, то подобрать его на обычном компьютере не реально.

В некоторых случаях, для повышения быстродействия, необходимо использовать некоторые другие предопределенные возрастающие параметры режима и только расшифровывать более простые пароли, с ограниченным количеством набором символов. Следующая команда будет пробовать подбирать пароль, используя только 26 различных символов, т.е. мы будем использовать все маленькие латинские буквы от ‘a’ до ‘z’. Возможные комбинации паролей будут варьироваться от от ‘а’ до ‘zzzzzzzz’: john -i:alpha passwd.1 . Опять же, вы можете расшифровывать только учетную запись root’a и использовать некоторые другие возможности John’a с использованием режима ‘incremental’. Эта команда попробует расшифровать все учетные записи с универсальным идентификатором 0 во всех файлах паролей, имеющих расширение ‘pwd’: john -i -users:0 -salts:2 *.pwd . Если вы получили файл паролей, в котором много паролей уже расшифрованы, при этом большинство из подобранных паролей являются уникальными, то вы могли бы сгенерировать новый файл символов, основанный на символах только из этого файла паролей: john -makechars:custom.chr passwd.1 . Тогда вы сможете использовать полученный файл для режима ‘incremental’. Кроме этого, вы можете использовать некоторые предопределенные фильтры слов при создании файла символов, в результате этой команды программа будет пробовать подобрать более простые слова для расшифровки паролей: john -makechars:my_alpha.chr -external:filter_alpha passwd.1 .

Если ваш файл john.pot стал достаточно большим, то вы могли бы использовать этот файл для создания нового файла символов:

john -makechars:all.chr

john -makechars:alpha.chr -external:filter_alpha

john -makechars:digits.chr -external:filter_digits

john -makechars:lanman.chr -external:filter_lanman

В примере, показанном выше, John запишет поверх старых файлов с символами новые файлы, которые сгенерируются и будут основаны только на файле john.pot (John The Ripper использует именно этот файл для генерации всех возможных символов, если вы не укажете для этого какой-нибудь другой файл с паролями). Обратите внимание, что фильтры слов, используемые в этом примере, предопределены в конфигурационном файле john.ini и поставляются для вашего же удобства вместе с программой.

Наконец, если вы захотите, то можете отправить всем пользователям, которые имеют слабые пароли, письмо, в котором сообщите им о необходимости замены выбранного пароля. Однако поступить так не всегда хорошая идея, потому как, к великому сожалению, большое количество людей просто игнорируют такую почту.

Теперь рассмотрим файл конфигурации программы John The Ripper. Предположим, что вы обратили внимание на то, что в некоторых файлах паролей большинство пользователей в качестве паролей используют имена для входа в систему с некоторыми изменениями, а именно, они прибавляют к концу логина символы ‘?!’. Тогда вы можете сделать новое правило для режима ‘single crack’ и разместить его в самом начале конфигурационного файла:

[List.Rules:Single]

$? $!

Если вы генерируете новый файл символов (его генерацию я описал выше), вы должны будете также это указать в файле john.ini в разделе, относящемуся к режиму ‘incremental’. В самом простом случае это может выглядеть следующим образом:

[Incremental:Custom]

File = custom.chr

где ‘Custom’ может быть заменено любым именем. Это заставит John’a использовать только те символы, которые были в подобранных паролях. Для того чтобы указать John The Ripper’y на то, чтобы он при расшифровке использовал и другие символы, вам необходимо в конфигурационном файле записать следующую строку: Extra =! @#$% . В результате записанные после знака ‘=’ символы будут добавляться при расшифровке паролей, но программа будет считать возможность их появления наименее вероятной. Если же вы хотите удостовериться в том, что вместе с вашими дополнительными символами John будет использовать все 95 символов, то вам необходимо записать следующее: CharCount = 95 . Записанная строка подскажет программе выдать предупреждение, если не все из 95 символов будут находиться в полученном файле возможных символов. Тем не менее, вы можете ограничить число различных символов, участвующих в расшифровке паролей, записав вместо 95 другое число, даже если оно превосходит количество символов в сивольной таблице. Вы можете также использовать CharCount, чтобы ограничить число различных символов, которые будут использованы John’ом, даже если charset файл содержит большее количество символов: CharCount = 25 . Если Вы не использовали какие-нибудь фильтры при генерации файлов символов, то установка маленького значения CharCount просто не будет использовать редкие символы при переборе. Для того чтобы установить рамки возможной минимальной и максимальной длин, вам необходимо воспользоваться нижеприведенными строками : MinLen = 6, MaxLen = 8 . Установка значений ‘MinLen’ и ‘MaxLen’ вам может пригодиться в том случае, если в системе используются ограничения на длину возможного пароля, т.е. системный администратор запретил использовать короткие пароли для входа в систему. Однако возможна такая ситуация, когда сам администратор (root) выбрал для конкретного пользователя пароль на свое усмотрение. Причем если вы считаете, что в исследуемой вами системе имеется много коротких паролей, то вы можете установить значение ‘MinLen’ как можно ниже. Это позволит вам сэкономить много времени.

Программу можно найти по адресу: http://www.openwall.com/john/.

Используя, по возможности, весь этот арсенал команд, вы можете в кратчайшие сроки добиться желаемого результата. А значит, и принять меры борьбы со слабыми паролями, обратившись уже к конкретному пользователю с просьбой заменить слабый пароль чем-нибудь более стойким. И напоследок хочу заметить, что за все последствия, к которым может привести использование этой программы, я ответственности не несу.

Евгений Сечко, safeman@mail.ru (c) компьютерная газета

Компьютерная газета. Статья была опубликована в номере 19 за 2001 год в рубрике soft :: безопасность

Представленная ниже страница, лишь часть огромного сайта посвященного различной компьютерной документации, на сайте собрано более 800 мб информации. Если Вы не нашли в этой статье, то что Вы ищите попробуте посмотреть здесь, cпросить на форуме или поискать необходимую Вам информацию в нашем каталоге ссылок сайтов компьтерной тематики.

Если же Вы хотите приобрести бумажную копию представленных здесь
материалов, обращайтесь в наш книжный магазин.

С уважением,
команда разработчиков eManual.ru

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

Сохраняем все это дело в каком-нибудь файле типа passwd.txt, или просто passwd. Этот файл как раз и будет то, что надо сунуть JTR. Далее переходим в папку с JTR, и находим там файл john.exe, в эту же папку ложем наш passwd файл. Далее идем в «DOS Prompt» («Режим DOS»), не просто по john.exe щелкаем 2 раза, а именно идем в «Режим DOS», далее командой:

заходим в папку где лежит 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]
Статья является собственностью команды GiN! 2000г

John The Ripper — полное руководство Я уже не раз в своих статьях, посвященных безопасности сетей, говорил о том, что администратору необходимо выявлять наличие нестойких паролей в своей системе. Именно из-за того, что пользователи выбирают слабые пароли, и производится много незаконных вторжений в, кажется, сильно защищенную систему. В данной статье речь пойдет о программе John The Ripper, позволяющей расшифровывать пароли пользователей в системах Unix.

Я не хочу утверждать, что эта статья целиком посвящена администраторам. Наоборот, я адресую эту статью в первую очередь обычным пользователям. Именно их часто одолевает лень разобраться в какой-либо программе полностью. Порой они даже не догадываются о том, сколько полезных функций заложено программистами. Используя все настройки, принятые по умолчанию, они запускают программу без каких-либо аргументов, пытаясь добиться от нее максимального результата в кратчайшие сроки. В сложных программах такого практически не бывает, поэтому зачастую программа «забрасывается» до лучших времен либо используется не на полную катушку. В администрировании такая халатность может привести к серьезным последствиям. Поэтому я и решил сделать подробное руководство по программе John The Ripper, как одной из лучших расшифровщиков паролей для Unix систем.

Для того чтобы использовать программу John The Ripper, вам понадобится копия файла с паролями. Очень часто у пользователей, заглянувших впервые в файл etc/passwd либо же etc/shadow, появляется слишком много вопросов. Сейчас я постараюсь кратко объяснить, как же устроен файл etc/passwd . В этом файле находится список всех пользователей. Для каждого пользователя отведена отдельная строка, которая описывает его учетную информацию. Рассмотрим на примере формат одной из таких строк:

В этой строке поля разделены двоеточиями. Эта строка разбивается на следующие части. root, в нашем случае, — это имя пользователя, т.е. его логин в системе; qVbsxDKZ7lKxA — это закодированный пароль пользователя root. Всего различных способов кодирования пароля 4096, так что очень маловероятно, что если у двух разных пользователей одни и те же пароли, то и в зашифрованном виде они будут выглядеть одинаково. 0, который следует сразу же за зашифрованным паролем, — это входной идентификационный номер пользователя. Обычно первые 100 идентификационных номеров зарезервированы для административных целей, так что желательно, чтобы идентификационные номера пользователей были больше 100, да и к тому же для каждого пользователя уникальными. Следующим за идентификационным номером пользователя идет идентификационный номер группы пользователя. Это создано из-за того, что большинство групп состоят более чем из одного пользователя, поэтому пользователи, принадлежащие к одной группе (идентификационные номера группы у пользователей равны), могут иметь общие файлы. Таким образом, доступ к таким файлам будет разрешен только членам этой группы и никому другому (кроме пользователя root, конечно:). Имена и номера групп должны быть определены в файле etc/group . За идентификационным номером группы следует место для комментария, обычно там указывается полное имя пользователя, однако здесь может располагаться любая другая информация. /root — это начальный каталог пользователя. /bin/bash — оболочка пользователя, принимаемая по умолчанию. Вот и весь формат файла. Таким образом, для каждого отдельного пользователя отведена одна строка, что, на мой взгляд, очень удобно для системного администратора.

Теперь приступлю к описанию самой программы. Сначала, вы должны получить копию файла паролей. Если вы, воспользовавшись правами root’a, получили файл, содержащий так называемые теневые (shadow) пароли, то вам понадобится преобразовать этот файл в нормальный вид, выполнив следующую команду: unshadow /etc/passwd /etc/shadow > passwd.1 . Таким образом, получится файл ‘ passwd.1′, содержащий зашифрованные пароли пользователей, который нам в дальнейшем и понадобится для расшифровки. Если вы собираетесь расшифровывать AFS или NT пароли, то вам необходимо для этого использовать программу ‘unafs’, входящую в поставку John The Ripper, или cкачать утилиту PWDUMP (ftp://samba.anu.edu.au/pub/samba/pwdump/), соответственно. Предположим, что вы получили файл паролей, ‘passwd.1’, и хотите начать его расшифровку. Самый легкий способ состоит в том, чтобы использовать заданный по умолчанию порядок режимов расшифровки. Для этого необходимо выполнить следующую команду: john passwd.1 . В результате John The Ripper начнет расшифровку с режима ‘single crack’, затем будет использован режим ‘wordlist’, и, наконец, вы дойдете до последнего режима работы программы под названием ‘incremental mode’. Для увеличения скорости расшифровки при помощи подбора паролей по словарю рекомендуется воспользоваться большим словарем паролей, т.к. словарь, поставляющийся с самой программой, невелик. Если у вас есть такой словарь, то вам необходимо в файле john.ini отредактировать строку, указывающую на применение другого словаря. Например, если словарь с паролями носит название ‘passwordlist’, то в файле john.ini вам необходимо найти строку ‘Wordfile =’ и написать следующее: Wordfile =

Теперь, когда вы получили некоторое количество расшифрованных паролей, они будут сохранены в файле john.pot . Для того чтобы их просмотреть, выполним следующую команду: john -show passwd .1. Если список учетных записей становится все больше и больше, не помещаясь на экране, то вы можете использовать переадресацию вывода. Для тех, кто не знает, что это такое, поясню. Используя символ ‘>’, вы можете перенаправить результаты выполнения команды сразу в файл. Далее, вы можете обратить внимание на то, что если в файле учетных записей находятся записи о блокировании доступа к шеллу, то у вас есть возможность заставить John’a игнорировать эти учетные записи. Если предположить, что блокированный доступ к шеллу носит название ‘/etc/expired’, то запустим программу со следующими опциями: john -show -shells:-/etc/expired passwd.1 . Для краткости можно также использовать сокращенный путь, который будет соответствовать любому пути, например, ‘/any/path/expired’: john -show -shells:-expired passwd.1 . Если у вас появилось желание проигнорировать какую-либо другую оболочку, например, ‘/etc/newuser’, то внесем в нашу команду небольшие изменения: john -show -shells:-expired, newuser passwd.1 . Тут следует заметить, что, начиная с версии 1.4, синтаксис программы немного изменился в лучшую сторону. Теперь вы можете сокращать команды.

Как и в любой другой системе, взломщик пытается получить наивысшие привилегии в системе. В ОС Unix такой учетной записью является root или же любая другая учетная запись, имеющая идентификатор 0. Для того чтобы проверить, расшифровался ли такой пароль, выполняем команду: john -show -users:0 passwd.1 . Если таких файлов с паролями у вас не один, а несколько, то для того, чтобы просмотреть все файлы, вы можете обойтись одной лишь командой: john -show -users:0 passwd.* . Если вам понадобилось узнать расшифрованный пароль какого-либо пользователя, например root’a, выполним следующее: john -show -users:root passwd.1 . И, наконец, для просмотра всех расшифрованных паролей пользователей, принадлежащих к привилегированным группам, нам поможет команда: john -show -groups:0,1 passwd.1 .

Однако же, если вы хотите использовать какой-нибудь из режимов расшифровки в отдельности, например ‘single crack’, авторы этой программы также предусмотрели это и включили в свой продукт выбор различных режимов. В нашем случае команда будет выглядеть следующим образом: john -single passwd.1 . Я уже говорил о том, что синтаксис программы изменился, поэтому результат выполнения команды: john -si passwd.1 будет таким же, как и результат выполнения предыдущей команды. Если у вас имеется сразу несколько файлов с зашифрованными паролями, то вам поможет следующая команда: john -single passwd.1 passwd.2 или даже john -single passwd.*, что во многих случаях сокращает запись исполняющихся команд.

Допустим, что после использования режима ‘single crack’ у вас расшифровались не все пароли. Следующим шагом к раскрытию всех зашифрованных паролей вы можете применить более мощный режим расшифровки — подбор паролей по словарю. Однако этот метод будет хорош для угадывания паролей лишь тех пользователей, которые не позаботились как следует о своей безопасности и выбрали в качестве своего пароля легко подбираемое слово. Поэтому мы будем использовать опцию wordlist: john -w:words.lst passwd.1 . Для любителей наглядности предлагается использовать длинный синтаксис параметров: john — wordfile=words.lst passwd.1 . Однако то же самое можно записать и кратко: john -w=words.lst passwd.1 . Для атаки перебора паролей по словарю, используя специальные правила, нужно в командной строке написать следующее: john -w:words.lst -rules passwd.1 . Но данный метод работает медленнее, чем атака по словарю без использования опции ‘rules’, однако это повышает ваши шансы расшифровать большинство слабых паролей, чтобы не тратить время на их расшифровку впоследствии. Поэтому я рекомендую не пренебрегать данной опцией.

Теперь рассмотрим следующий пример. Допустим, у вас набралось много паролей пользователей, которые не имеют доступ к шеллам, и вы не желаете тратить время на подбор паролей к их учетным записям. Вы можете указать john’y, чтобы тот не подбирал пароли для таких пользователей: john -w:words.lst -rules -shells:sh, csh, tcsh, bash passwd.1 . Этот вариант перебора работает во всех режимах. Хочу заметить, что для взломщика, атакующего систему, пароли пользователей, не имеющие доступа к шеллам, представляют наименьшее значение, поэтому основной упор он будет делать именно на пользователей с доступом к шеллам, ну и, конечно же, на суперпользователя — root’a. Подобно всем другим режимам взлома паролей, для того, чтобы как можно быстрее расшифровать все файлы, вам необходимо при расшифровке использовать сразу все файлы с паролями: john -w:words.lst -rules passwd.* . При этом вы сэкономите уйму времени, потому как если в одном файле на взлом пароля root’a у вас может уйти много времени, то при использовании сразу несколько файлов шансы на быструю расшифровку увеличиваются за счет одновременного подбора паролей сразу ко всем пользователям. Ну, а далее все зависит только от скорости вашего процессора.

Так же как и в предыдущих режимах взлома, у вас присутствует возможность расшифровки каких-то отдельных паролей. Следующая команда производит расшифровку всех root’ов (универсальный идентификатор 0) во всех файлах паролей: john -w:words.lst -rules -users:0 passwd.* . Для альтернативы, если вы не желаете тратить впустую время на расшифровку ваших собственных паролей, будучи уверенным в том, что они не взламываемые: john -w:words.lst -rules -users:-root, solar passwd.* . Иногда полезно разбить ваши файлы паролей на две части, которые впоследствии можно будет расшифровывать в отдельности: john -w:words.lst -rules -salts:2 passwd.* и john -w:words.lst -rules -salts:-2 passwd.* .

В результате это приведет к попыткам John’a взломать два или более паролей как можно быстрее, а затем уже после этого программа будет пробовать расшифровать все остальные пароли. Общее количество времени, потраченное на взлом, будет относительно тем же, но у вас появляется возможность получить некоторые пароли раньше, поэтому в результате расшифровки вы уже можете не нуждаться в подборе остальных. Например, John подобрал пароль для суперпользователя root. При этом вы достигли максимальных привилегий, потому как все, что могут делать обычные пользователи, может делать root. Однако ни у кого, кроме него, не существует таких высоких полномочий (если в системе только один суперпользователь с уникальным идентификатором 0). Пароли других пользователей могут понадобиться только лишь в том случае, если вход в систему под именем root запрещен. Тогда вам нужно будет добыть пароль какого-нибудь пользователя. Под ним зайти в систему, а уже после этого, зная пароль пользователя root, попытаться поднять свои привилегии до рутовских.

Наиболее мощный режим расшифровки в программе John The Ripper называется «incremental». Для того чтобы начать перебор зашифрованных паролей в таком режиме, вы можете просто выполнить следующую команду: john -i passwd.1 . В результате выполнения этой команды John будет использовать заданные по умолчанию возрастающие параметры режима, которые определены в файле john.ini в разделе [Incremental:All] . В файле конфигурации, снабженном John’ом, эти параметры должны использовать все 95 символов и пробовать все возможные длины пароля, от 0 до 8. (Нулевой длиной пароля автор программы считает хэш, представляющий собой пустую строку, поскольку такие пароли тоже иногда могут попадаться). Не следует ждать того, что перебор всех возможных паролей закончится в разумное время, так как если пароль действительно стойкий, то подобрать его на обычном компьютере не реально.

В некоторых случаях, для повышения быстродействия, необходимо использовать некоторые другие предопределенные возрастающие параметры режима и только расшифровывать более простые пароли, с ограниченным количеством набором символов. Следующая команда будет пробовать подбирать пароль, используя только 26 различных символов, т.е. мы будем использовать все маленькие латинские буквы от ‘a’ до ‘z’. Возможные комбинации паролей будут варьироваться от от ‘а’ до ‘zzzzzzzz’: john -i:alpha passwd.1 . Опять же, вы можете расшифровывать только учетную запись root’a и использовать некоторые другие возможности John’a с использованием режима ‘incremental’. Эта команда попробует расшифровать все учетные записи с универсальным идентификатором 0 во всех файлах паролей, имеющих расширение ‘pwd’: john -i -users:0 -salts:2 *.pwd . Если вы получили файл паролей, в котором много паролей уже расшифрованы, при этом большинство из подобранных паролей являются уникальными, то вы могли бы сгенерировать новый файл символов, основанный на символах только из этого файла паролей: john -makechars:custom.chr passwd.1 . Тогда вы сможете использовать полученный файл для режима ‘incremental’. Кроме этого, вы можете использовать некоторые предопределенные фильтры слов при создании файла символов, в результате этой команды программа будет пробовать подобрать более простые слова для расшифровки паролей: john -makechars:my_alpha.chr -external:filter_alpha passwd.1 .

Если ваш файл john.pot стал достаточно большим, то вы могли бы использовать этот файл для создания нового файла символов:

john -makechars:alpha.chr -external:filter_alpha

john -makechars:digits.chr -external:filter_digits

john -makechars:lanman.chr -external:filter_lanman

В примере, показанном выше, John запишет поверх старых файлов с символами новые файлы, которые сгенерируются и будут основаны только на файле john.pot (John The Ripper использует именно этот файл для генерации всех возможных символов, если вы не укажете для этого какой-нибудь другой файл с паролями). Обратите внимание, что фильтры слов, используемые в этом примере, предопределены в конфигурационном файле john.ini и поставляются для вашего же удобства вместе с программой.

Наконец, если вы захотите, то можете отправить всем пользователям, которые имеют слабые пароли, письмо, в котором сообщите им о необходимости замены выбранного пароля. Однако поступить так не всегда хорошая идея, потому как, к великому сожалению, большое количество людей просто игнорируют такую почту.

Теперь рассмотрим файл конфигурации программы John The Ripper. Предположим, что вы обратили внимание на то, что в некоторых файлах паролей большинство пользователей в качестве паролей используют имена для входа в систему с некоторыми изменениями, а именно, они прибавляют к концу логина символы ‘?!’. Тогда вы можете сделать новое правило для режима ‘single crack’ и разместить его в самом начале конфигурационного файла:

Если вы генерируете новый файл символов (его генерацию я описал выше), вы должны будете также это указать в файле john.ini в разделе, относящемуся к режиму ‘incremental’. В самом простом случае это может выглядеть следующим образом:

где ‘Custom’ может быть заменено любым именем. Это заставит John’a использовать только те символы, которые были в подобранных паролях. Для того чтобы указать John The Ripper’y на то, чтобы он при расшифровке использовал и другие символы, вам необходимо в конфигурационном файле записать следующую строку: Extra =! @#$% . В результате записанные после знака ‘=’ символы будут добавляться при расшифровке паролей, но программа будет считать возможность их появления наименее вероятной. Если же вы хотите удостовериться в том, что вместе с вашими дополнительными символами John будет использовать все 95 символов, то вам необходимо записать следующее: CharCount = 95 . Записанная строка подскажет программе выдать предупреждение, если не все из 95 символов будут находиться в полученном файле возможных символов. Тем не менее, вы можете ограничить число различных символов, участвующих в расшифровке паролей, записав вместо 95 другое число, даже если оно превосходит количество символов в сивольной таблице. Вы можете также использовать CharCount, чтобы ограничить число различных символов, которые будут использованы John’ом, даже если charset файл содержит большее количество символов: CharCount = 25 . Если Вы не использовали какие-нибудь фильтры при генерации файлов символов, то установка маленького значения CharCount просто не будет использовать редкие символы при переборе. Для того чтобы установить рамки возможной минимальной и максимальной длин, вам необходимо воспользоваться нижеприведенными строками : MinLen = 6, MaxLen = 8 . Установка значений ‘MinLen’ и ‘MaxLen’ вам может пригодиться в том случае, если в системе используются ограничения на длину возможного пароля, т.е. системный администратор запретил использовать короткие пароли для входа в систему. Однако возможна такая ситуация, когда сам администратор (root) выбрал для конкретного пользователя пароль на свое усмотрение. Причем если вы считаете, что в исследуемой вами системе имеется много коротких паролей, то вы можете установить значение ‘MinLen’ как можно ниже. Это позволит вам сэкономить много времени.

Программу можно найти по адресу: http://www.openwall.com/john/.

Используя, по возможности, весь этот арсенал команд, вы можете в кратчайшие сроки добиться желаемого результата. А значит, и принять меры борьбы со слабыми паролями, обратившись уже к конкретному пользователю с просьбой заменить слабый пароль чем-нибудь более стойким. И напоследок хочу заметить, что за все последствия, к которым может привести использование этой программы, я ответственности не несу.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Программа John the Ripper создавалась для выявления слабых паролей пользователей операционных систем. При этом в настоящее время версия Jumbo (с расширенным функционалом от сообщества) превратилась в мощный комбайн, который может подбирать пароли для разнообразных архивов, документов, электронных кошельков и очень много чего ещё. Документация по этим возможностям программы является слабой и фрагментированной. Даже чтение справки и манула по John the Ripper мало чем вам помогут (тем не менее, начинать нужно со знакомства с ними).

В данном разделе мы устраним эти пробелы насколько это возможно. Будет рассказано о взломе разнообразных типов файлов, которые защищены паролями, о режимах взлома, о масках, словарях, правилах изменения слов и многом другом.

Взлом паролей пользователей Linux

Давайте всё-таки начнём с «базовой» функци по взлому паролей пользователей ОС, благо здесь всё элементарно.

Комбинирует файл passwd (/etc/passwd) и shadow (/etc/shadow) и перенаправляет их в файл (> unshadowed.txt):

Используем словарь (–wordlist=/usr/share/john/password.lst), применяя правила коверкания (–rules), пытаемся взломать пароли хешей в данном файле (unshadowed.txt):

Взлом в John the Ripper офисных документов, архивов, кошельков, зашифрованных дисков TrueCrypt и других файлов, зашифрованных паролем

John умеет взламывать только хеши — он не умеет напрямую работать с зашифрованными файлами. Программа не может открыть офисный документ, ввести туда пароль и т. п.

Это решаемая проблема — нам нужно получить (извлечь) хеш для интересующего нас файла. Сам John этого делать не умеет. Нужны вспомогательные утилиты. Ознакомиться с их списком можно, например, набрав команду:

Вот так выглядит список на машине, где я установил John из исходников:

Согласитесь, список впечатляющий!

А вот так он выглядит в Kali Linux:

Нам явно очень много чего не доложили! Поэтому если не можете в своей системе найти какой-то файл (это можно сделать командой locate), то скачайте их из исходных кодов: https://github.com/magnumripper/JohnTheRipper.

Для себя я собрал всю доступную информацию об этих файлах в таблицу. Если вы заметили неточности в моих данных или хотите их дополнить — то пишите в комментариях к этому разделу.

Файл для извлечения хеша Взламываемые файлы Описание / Комментарии
1password2john.py Извлекает хеш для взлома пароля программы 1Password Использование: ./1password2john.py
7z2john.py Извлекает хеши из зашифрованных архивов 7-Zip Использование: ./7z2john.py
aix2john.pl и aix2john.py Этот скрипт конвертирует AIX /etc/security/passw Использование: aixpasswd2john.pl
Если пароль не задан, то aixpasswd2john.pl будет читать из стандартного ввода
androidfde2john.py Программа для «конвертации» образов / дисков Android FDE в дружественный для JtR формат. Использование: ./androidfde2john.py
apex2john.py Дамп хешей APEX Использование: ./apex2john.py
bitcoin2john.py Извлекает хеш из кошельков Bitcon для подбора пароля Использование: ./bitcoin2john.py [зашифрованные файлы кошелька bitcon]
blockchain2john.py
cisco2john.pl
cracf2john.py
dmg2john и dmg2john.py Apple Disk Images (DMG)

1. Запустите dmg2john на файл(ы) .dmg.

Например: $ ../run/dmg2john test.dmg > hash

2. Запустите john на вывод dmg2john.

Например: $ ../run/john hash

Можно использовать любой файл на выбор: dmg2john или dmg2john.py

ecryptfs2john.py efs2john.py Encrypting File System (EFS) — система шифрования данных, реализующая шифрование на уровне файлов в операционных системах Microsoft Windows NT (источник).

Для дополнительной функциональности рекомендуется установить пакет python-m2crypto:

apt-get install python-m2crypto

efs2john.py —masterkey=samples/openwall.efs/92573301-74fa-4e55-bd38-86fc558fa25e —s

efs2john.py —masterkey=samples/openwall.efs.2/21d67870-8257-49e0-b2de-c58324271c42 —s

efs2john.py —masterkey=samples/Win-2012-non-DC/1b52eb4f-440f-479e-b84a-654fdccad797 —s

encfs2john.py Переводит файлы EncFS в формат удобный для John. Использование: ./encfs2john.py gpg2john

PGP (англ. Pretty Good Privacy) — компьютерная программа, также библиотека функций, позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации, представленной в электронном виде, в том числе прозрачное шифрование данных на запоминающих устройствах, например, на жёстком диске.

Взламываются PGP Desktop / OpenPGP / GnuPG частный (секретный) ключ

Использование: ./gpg2john [-d] [-S]
если используется -d, тогда записывается отладочная информация декодирования типов объектов
если используется -S, тогда также будут выведены подключи hccap2john

HCCAP — это кастомный формат, специально разработанный для oclHashcat.

Сами данные не отличаются от обычного tcpdump формата. На самом деле, они абсолютно те же самые. Они просто немного реорганизованы.

Валидный файл hashcat cap (расширение файла: .hccap) содержит одну или больше экземпляров структуры.

htdigest2john.py ikescan2john.py ios7tojohn.pl Взлом ограничительного ПИН кода IOS 7

Пример ввода (с com.apple.restrictionspassword.plist):
RestrictionsPasswordKey

J94ZcXHm1J/F9Vye8GwNh1HNclA=

RestrictionsPasswordSalt

/RHN4A==

Пример вывода:
$pbkdf2-hmac-sha1$1000.fd11cde0.27de197171e6d49fc5f55c9ef06c0d8751cd7250

1. Достаньте файл com.apple.restrictionspassword.plist из вашего телефона. Как сделать это — за пределами этого документа, просто погуглите это.

2. Запустите ios7tojohn на этот файл, Перенаправьте вывод в другой файл. К примеру:

./ios7tojohn com.apple.restrictionspassword.plist > ioshash

3. Запустите john на новый файл используя только четыре цифры (это ведь PIN код):

./john ioshash -inc:digits -min-len=4 -max-len=4

4. Взлом займёт полсекунды. И не потому что Apple использует очень убогий хеш механизм, а от того, что пространство ключей ПИН кода крайне маленькое.

iwork2john.py Использование: ./iwork2john.py [.key файлы] kdcdump2john.py keepass2john keychain2john.py Перерабатывает файлы Mac OS X keychain в удобный для John the Ripper формат. Использование: keychain2john [файлы keychain] keyring2john.py Взлом файлов GNOME Keyring

использование: keyring2john.py [-h] KEYRING_FILE

keyring2john.py -> конвертирует файлы Gnome Keyring в формат john.

позиционные аргументы:
KEYRING_FILE Вводо файла Gnome Keyring

опциональные аргументы:
-h, —help показать справку и выйти

keystore2john.py kirbi2john.py known_hosts2john.py krbpa2john.py kwallet2john.py lastpass2john.py ldif2john.pl lion2john-alt.pl и lion2john.pl lotus2john.py luks2john mcafee_epo2john.py ml2john.py mozilla2john.py odf2john.py Извлекает хеш из файлов ODF для взлома в John the Ripp. Использование: ./odf2john.py office2john.py Извлекает хешь из файлов MS Office для взлома в John the Ripp. Поддерживаются файлы MS Office 2003 / 2007 / 2010 / 2013. Использование: ./office2john.py openbsd_softraid2john.py openssl2john.py pcap2john.py pdf2john.py Извлекает хеш из зашифрованных файлов PDF. Использование: pdf2john.py pem2john.py pfx2john putty2john pwsafe2john.py racf2john radius2john.pl rar2john Извлекает хеш из зашифрованных архивов RAR. Использование: ./rar2john [-i ]
Порог по умолчанию — 1024 байта(данные меньше чем эти будут помещены в ряд) sap2john.pl sipdump2john.py ssh2john

JtR-jumbo имеет два формата (плагина) которые поддерживают взлом защищённых паролем частных ключей ssh — «ssh» and «ssh-ng».

ssh-ng новее и быстрее, но крайне эксперементальный формат, который может сгенерировать ложные срабатывания. Используйте на свой собственный риск.

Запустите ssh2john на частный ключ(и) SSH *ИЛИ*

Запустите sshng2john.py на частный ключ(и) SSH

sshng2john.py

JtR-jumbo имеет два формата (плагина) которые поддерживают взлом защищённых паролем частных ключей ssh — «ssh» and «ssh-ng».

ssh-ng новее и быстрее, но крайне эксперементальный формат, который может сгенерировать ложные срабатывания. Используйте на свой собственный риск.

Запустите ssh2john на частный ключ(и) SSH *ИЛИ*

Запустите sshng2john.py на частный ключ(и) SSH

strip2john.py Обрабатывает STRIP файлы в формат удобный для JtR. Выходной формат: имя_файла:$strip$*data sxc2john.py truecrypt2john.py

Утилита для импорта тома TrueCrypt в формат понятный для John The Ripper

Использование: /truecrypt2john.py файл_тома [файл(ы)_ключей]> выводной_файл

uaf2john vdi2john.pl vncpcap2john wpapcap2john zip2john Обрабатывает входящие ZIP файлы в формат подходящий для JtR

Использование: /home/mial/src/john/run/zip2john [опции] [zip файлы]

-i

Устанавливает порог для встраиваемых данных. По умолчанию это 1024 байт

Опции только для ‘старых’ зашифрованных файлов PKZIP:

-a

Это «известный» ASCII файл.

Использование режима ‘ascii’ даёт серьёзное ускорение, ЕСЛИ все файлы большие и вы ЗНАЕТЕ, что по карйней мере один из них начинается с «чистых» ASCII данных.

-o

Использовать только этот файл из .zip файла

-c

Это создаст хеш «только контрольная сумма». Если есть много зашифрованных файлов в файле .zip, то это может быть вариантом, и будет достаточно данных чтобы ложные срабатывания не были видны. Если .zip — это 2 байта контрольной суммы и их 3 и более, то мы имеем 48 бит знания, которые «могут» быть достаточными для взлома пароля без необходимости пользователю иметь в наличии .zip файл.

-m

Использование «файловой магии» в качестве известного простого текста, если это применимо. Это немного быстрее, но не во всех ситуациях на 100% безопасно.

-2

Принудительное двух байтовое исчисление контрольной суммы

Что такое Джон Потрошитель?

Для тех, кто еще этого не знает, John the Ripper — инструмент для взлома паролей написан на C и широко используется аналитиками безопасности для проверки устойчивости ключа к атакам методом грубой силы. Эта программа способна взламывать MD5, SHA-1 и многие другие хэши, широко используемые в мире вычислений. Эта программа способна автоматически определять тип хэша, который мы взламываем, чтобы облегчить пользователю взлом, не беспокоясь о типе хэша, который он пытается «взломать».

Очень быстро взламывайте пароли или ключи с помощью Джона Потрошителя

Некоторые очень важные особенности этой программы заключаются в том, что она оптимизирована для многих моделей процессоров, работает на многих архитектурах ПК, а также в различных операционных системах, однако обычно используется в операционных системах на основе Linux, фактически, в основных дистрибутивах Linux. . ориентированная на пентестинг и компьютерную безопасность, эта программа уже включена по умолчанию.

Эта программа обладает широкими возможностями настройки, она позволяет нам определять длину проверяемого пароля, генерировать все возможные комбинации и достигать цели взлома хэша. Он также позволяет нам настроить, какой диапазон букв, цифр или символов мы можем попытаться расшифровать пароль, кроме того, он также позволяет нам включать правила, чтобы решить, как следует делать различные варианты.

John the Ripper позволяет вам приостановить взлом пароля и продолжить его в другое время, это идеально, если нам нужно выключить наш компьютер или сервер, кроме того, его можно автоматизировать, чтобы начать взлом определенного пароля при запуске нашего компьютер, и все это автоматически, без необходимости вмешательства системного администратора.

Атаки по словарю

Эта программа позволяет нам взламывать пароли по словарю. Если мы загрузим один или несколько словарей паролей в Интернете объемом в несколько десятков ГБ, инструмент будет отвечать за тестирование каждого из этих ключей, чтобы попытаться взломать хэш пароля. Процесс состоит из генерации хеша каждого пароля, чтобы позже сравнить хеш, который мы хотим взломать, если хеш тот же, значит, мы обнаружили пароль, если хеш не совпадает, то это не ключ, и мы Придется продолжить тестирование. Мы сможем полностью автоматизировать взлом паролей, содержащихся в ключевых словарях.

Замечательным аспектом является то, что он не только проверяет ключи словаря, но также добавляет числа, прописные и строчные буквы и символы к словам, которые мы вводим как «ввод», кроме того, он также способен комбинировать слова для проверки еще большего количества комбинаций пароли и найдите используемый ключ.

Атака грубой силы

Атака полным перебором состоит из проверки всех комбинаций букв, цифр и символов ключа определенной длины. Этот метод является самым медленным, поскольку он проверяет все комбинации, и на взлом паролей определенной длины могут потребоваться часы, дни и даже годы. В общем, взлом пароля, состоящего более чем из 12 символов, займет у нас много времени, чтобы сделать это грубой силой, поэтому вы должны это учитывать.

Эта программа позволяет нам настроить эту атаку методом грубой силы, мы посоветуем вам проверять только буквы, буквы и цифры и даже добавлять символы. Чем больше у нас «входных» символов, тем больше времени потребуется на проверку всех возможных комбинаций паролей, поэтому мы должны учитывать это при настройке ввода.

Как только мы узнаем, что такое John the Ripper и два его режима работы, мы увидим, как системный администратор может использовать эту программу для проверки безопасности ключа компьютера. Таким образом, мы проверим, уязвимы ли мы для грубой силы или атаки по словарю со стороны хакера, стремящегося получить к нему удаленный (или локальный) доступ.

Установка и проверка работоспособности

В настоящее время эта программа доступна во всех репозиториях основных дистрибутивов операционной системы Linux, поэтому мы можем легко и быстро установить ее без проблем. Если он недоступен для вашего дистрибутива, вы всегда сможете добавить его позже, отредактировав файл репозиториев. В этом уроке мы собираемся использовать Ubuntu операционная система для установки программы.

sudo apt install john

John The Ripper Crackear Contraseñas фото урока 1 После того, как инструмент будет установлен в нашей операционной системе, мы сможем использовать его и начать взламывать пароли, однако перед взломом ключей настоятельно рекомендуется выполнить быстрый тест скорости на нашем компьютере.

Протестируйте производительность на нашем ПК

Прежде чем мы начнем взламывать пароли, мы можем запустить простой тест производительности, в котором будет протестировано наше оборудование. Таким образом, мы сможем узнать скорость, с которой инструмент будет тестировать ключи с различными типами шифрования, используя 100% наших ЦП. Для этого мы просто открываем терминал Linux и набираем:

john --test

John The Ripper Crackear Contraseñas фото урока 2 Как мы видим, проводится серия тестов, в которых будет измеряться производительность, это может дать нам общее представление о вычислительной мощности нашего компьютера с целью тестирования всех комбинаций букв, цифр и символов в кратчайшие сроки. время.

Взлом паролей грубой силой

После того, как инструмент установлен и проведен тест производительности, мы можем начать с реального случая. Мы можем напрямую загрузить файл «/ etc / shadow», содержащий пароли Linux, и взломать их, однако в этом примере мы собираемся создать документ вручную с именем пользователя и паролем и попросим Джона взломать его. Мы собираемся сделать это по трем причинам:

  • Чтобы не поставить под угрозу нашу систему.
  • Чтобы получить результаты как можно быстрее (в качестве примера мы будем использовать очень простой ключ).
  • Для первого контакта с инструментом и ознакомления с ним.

Для этого мы создаем новый текстовый файл с именем «password.txt», например, в нашей личной папке Ubuntu со следующим содержимым:

user:AZl.zWwxIh15Q

Затем мы собираемся дать Джону команду взломать пароль для старого файла. Для этого набираем:

john password.txt

Инструмент начнет работать.

John The Ripper Crackear Contraseñas фото урока 3 Мы должны дождаться, пока этот инструмент взломает пароль предыдущего файла. Этот процесс может занять часы и даже дни, в зависимости от его сложности. Когда процесс завершится, мы увидим результат, подобный следующему.

John The Ripper Crackear Contraseñas фото урока 4 Наш пароль взломан. Чтобы увидеть это, нам просто нужно использовать команду –show следующим образом:

john --show password.txt

John The Ripper Crackear Contraseñas фото урока 5 Нашим паролем был «пример». Теперь мы можем попытаться войти в систему с пользователем «user» и паролем «example», или, по крайней мере, мы могли бы это сделать, если бы работали напрямую с файлом / etc / shadow, хотя время взлома заняло бы намного дольше, чем несколько минут.

Позже мы увидим, как использовать тот же инструмент, но для взлома паролей, используя словарь в качестве источника ключей. Наконец, мы собираемся дать вам небольшую задачу попрактиковаться в этой программе, скопировав ровно один практический пример из файла / etc / shadow:

redeszone:$6$85X6KHD9$10GCEYlO7fVYKh4kIIaiEN37zCB/ROaG1hYmLYane90m1teephQHEhWVx/grdlB/cgg/1cfEuMIt2UUIllQkI.

Как только мы научимся взламывать пароли грубой силой, мы попробуем взламывать пароли по словарю.

Взламывайте пароли с помощью словаря ключей

Как и в предыдущем уроке, в этом случае мы собираемся начать с примера пароля, который мы сохранили вручную в документе под названием « пароль.txt «:

user:AZl.zWwxIh15Q

Затем нам нужно создать или создать собственный ключевой словарь. Мы можем скачать эти словари из Интернета, но для первых тестов программы мы собираемся создать простой словарь, который мы назовем « пароли.lst »И в котором мы введем несколько значений, каждое в строке, но одно из них будет словом« пример »(поскольку оно соответствует нашему паролю).

Джон Потрошитель contraseñas diccionario foto 1 Далее нам просто нужно выполнить Джона Потрошителя с помощью –Wordlist = параметр, за которым следует путь к нашему файлу . Мы даем вам пример с двумя файлами, которые мы сгенерировали (зашифрованный пароль и словарь):

john --wordlist=passwords.lst password.txt

Джон Потрошитель contraseñas diccionario foto 2 При наличии простого пароля и нескольких словарных статей процесс будет практически мгновенным. Мы уже взломали или расшифровали пароль. Все, что нам нужно сделать, это использовать параметр –show, чтобы показать нам результат.

john --show password.txt

Джон Потрошитель contraseñas diccionario foto 3 Как вы видели, взломать пароли с помощью John the Ripper действительно просто, скорость взлома будет зависеть от нашего процессора, метода, используемого для взлома паролей, а также сложности и длины пароля, который мы хотим взломать. Еще одна программа, которую мы рекомендуем для взлома паролей, — это Hashcat, программа намного более продвинутая, чем эта программа, но гораздо более сложная в использовании, если вы не читаете официальную документацию, кроме того, эта программа Hashcat позволяет нам использовать мощность карты. графические процессоры (GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР) для проверки миллионов паролей в секунду.

Для тех из вас, кто еще не слышал о John the Ripper (здесь для краткости его называют John), это бесплатный инструмент для взлома паролей, написанный в основном на языке C.

Прежде чем идти дальше, мы должны сказать вам, что, хотя мы доверяем нашим читателям, мы не поощряем и не потворствуем любым вредоносным действиям, которые могут быть выполнены с помощью этого инструмента или любых других инструментов, о которых мы говорили в прошлом.

Инструменты, связанные с безопасностью, часто похожи на обоюдоострый меч, поскольку их можно использовать как для хороших, так и для плохих вещей. Поэтому, хотя это может показаться заманчивым, мы рекомендуем вам воздержаться от любых разрушительных действий, хотя бы потому, что у вас есть большие шансы попасть в тюремную камеру.


Взлом паролей с помощью John the Ripper на Linux


Эта статья будет посвящена Джону с точки зрения системного администратора, поэтому мы ожидаем, что у вас есть промежуточные знания о вашей системе Linux, независимо от того, какой дистрибутив это может быть, и что Вы являетесь человеком, заботящимся о безопасности, с базовыми знаниями о безопасности. Тем не менее, эта статья может понравиться вам также, если Вы являетесь домашним пользователем, желающим узнать о таких вещах, но имейте в виду: некоторые из представленных ниже команд потребуют много вашего процессорного времени, поэтому, возможно, было бы лучше, если бы у вас была тестовая машина и/или много времени и терпения, потому что попытки взлома паролей могут занять несколько дней, даже на относительно новой машине.


Установка Джона


Хотя, по крайней мере, в тех дистрибутивах, которые мы пробовали, пакет в названии просто «john» с Gentoo, делающим исключение и называющим его «johntheripper», мы упростим его для вас и покажем, как установить его на несколько известных дистрибутивов.


Дистрибутив Debian

Debian отличается от других дистрибутивов, которые предлагают John в своих репозиториях, тем, что он предлагает хорошую страницу руководства, хотя у upstream ее нет. Для установки просто введите

# aptitude install john

Fedora

На Fedora, тоже легко установить.

# yum install join

Arch Linux

# pacman -S join

OpenSuse Linux

# zypper install john

Gentoo

Как мы уже говорили, пакет Gentoo назван иначе, чем другие предложения.

# emerge Johntheripper

Slackware

Хотя в официальных репозиториях, похоже, нет пакета john, есть slackbuild, который устанавливает John в вашу систему (это было протестировано на Slackware 13.37).

Хотя мы дали вам всего несколько примеров того, как Вы можете получить John в своей системе Linux, многие из представленных примеров будут работать, если у вас установлена другая ОС: помимо исходного кода, проект предлагает программу для BeOS, Microsoft Windows, Solaris или MacOS X. Но для нашей статьи, как говорится в названии, мы протестировали примеры на Linux.


Использование Джона Потрошителя


Вам не нужно беспокоиться о зашифрованных конфигурационных файлах, так как Джон готов к использованию с соответствующими флагами командной строки без каких-либо других усилий с вашей стороны. Однако одно предупреждение: как Вы уже заметили, мы сообщаем нашим читателям, когда они должны использовать привилегии root, а когда нет. За исключением отмеченных случаев, вам настоятельно рекомендуется использовать вашего обычного повседневного пользователя (или другого, если Вы предпочитаете, но он не должен иметь прав суперпользователя). В моей системе Debian John доступен как /usr/sbin/john, поэтому, если Вы его не нашли, мы рекомендуем вам использовать whereis и ввести весь путь при запуске john unprivileged (или Вы можете просто создать псевдоним).

$ /usr/sbin/john --test

Теперь давайте создадим текстовый файл в формате пароля (<user>:<hash>) с допустимым хэшем, конечно, и заставим Джона работать. Вы можете просто скопировать пользователя из /etc/shadow, но мы рекомендуем что-то более простое, потому что мы предполагаем, что Вы хотите увидеть результаты как можно быстрее. Итак, создайте файл с именем password.txt где-нибудь внутри вашего /home и положите это в него:

myuser:AZl.zWwxIh15Q

Сохраните файл, а затем просто скормите его Джону без каких-либо аргументов (на данный момент):

$ /usr/sbin/john password.txt

Мы должны повторить наше предупреждение: взлом паролей-это трудоемкий и длительный процесс, поэтому в зависимости от вашей системы это может занять довольно много времени. Однако это также зависит от того, чего Вы хотите достичь, потому что если ваш мощный процессор не может подобрать пароль(и) в течение нескольких дней без результата, можно только с уверенностью сказать, что это хороший пароль. Но если пароль действительно критичен, оставьте систему до тех пор, пока Джон не закончит свою работу, чтобы убедиться, что все в порядке. Как мы уже говорили, это может занять много дней.

Статьи по теме

  • Полное удаление приложений и данных приложений в Ubuntu
  • Настройка WireGuard на Ubuntu 20.04
  • Сервер OpenVPN на основе Ubuntu 18.04

Один из способов-использовать /etc/shadow напрямую, но мы рекомендуем вам выбрать несколько иной курс. Обратите внимание, что это относится к системам, использующим теневые пароли, и все современные дистрибутивы Linux делают это. Джон предлагает отличную утилиту под названием unshadow, которую мы будем использовать для создания файла из наших файлов passwd и shadow:

# unshadow /etc/passwd /etc/shadow > mypasswd.txt

Теперь убедитесь, что mypasswd.txt доступен для вашего обычного пользователя и делать

$ /usr/sbin/john mypasswd.txt

Джон сначала попробует режим одиночного взлома, затем режим списка слов, а затем инкрементный. С точки зрения Джона, режим-это метод, который он использует для взлома паролей. Как Вы знаете, существует много видов атак: словарные атаки, атаки грубой силы и так далее. Как некоторые из вас, возможно, поняли, режим списка слов-это в основном атака словаря. Помимо этих трех режимов, перечисленных выше, Джон также поддерживает еще один, называемый внешним режимом. Вы можете выбрать, какой режим использовать, например, —single, —external и так далее. Мы рекомендуем вам ознакомиться с документацией по адресу openwall.com для хорошего, но краткого описания каждого режима. Но, конечно, мы расскажем вам, вкратце, что делает каждый режим.

Документация John the Ripper рекомендует начинать с режима одиночного взлома, главным образом потому, что это быстрее и даже быстрее, если Вы используете несколько файлов паролей одновременно. Инкрементный режим-самый мощный из доступных режимов, так как он будет пробовать различные комбинации при взломе, и вы можете выбрать, какой режим (режим, применяемый к инкрементальной опции) использовать, в том числе и свой собственный. Внешний режим, как следует из названия, будет использовать пользовательские функции, которые вы пишете сами, в то время как режим списка слов принимает список слов, указанный в качестве аргумента опции (это может быть файл со списком слов, написанных по одному на строку, или stdin), и пытается выполнить простую словарную атаку на пароли.

Если Джон будет успешной в крекинг-один из паролей, он будет писать в ~/.john/john.pot. Однако этот файл не читается человеком, поэтому Вы можете читать взломанные пароли с помощью

$ /usr/sbin/john --show mypasswd.txt

Чтобы проверить, не взломан ли пароль root, отфильтруйте его по UID:

$ /usr/sbin/john --show --users=0 mypasswd.txt

Конечно, Джон знает о подстановочных знаках и нескольких файлах:

$ /usr/sbin/john --show --users=0 *passwd*

Точно так же, как Вы можете фильтровать по пользователю, Вы также можете фильтровать по группе, используя флаг —groups, и эта фильтрация доступна также при взломе. Переходя далее к режиму списка слов, вот как Вы можете использовать его с включенными встроенными правилами искажения:

$ /usr/sbin/john --wordlist=passwd.lst --rules passwd.txt

Джон также позволяет создавать несколько именованных сеансов, что практично, потому что, поскольку Джон может занять много времени для выполнения задачи, Вы можете позже просмотреть все запущенные сеансы, чтобы решить, какой из них убить. Вариант для именованных сеансов —сессии=имя задачи, и Вы можете использовать —статус или … статус=название задачи, чтобы увидеть всех или отдельных сессий. Но есть и еще кое-что: Вы можете восстановить сеансы или определенные из них по имени, используя —restore или —restore=task name. Несколько примеров:

$ /usr/sbin/john --session=allrules --wordlist=all.lst --rules mypasswd.txt
$ /usr/sbin/john --status=allrules
$ ps aux | grep john #get the PID of the john session you want to kill
$ kill HUP $PID_of_john_session_to_kill $ /usr/sbin/john --restore=allrules

Вот несколько примеров использования инкрементного режима с Джоном:

$ /usr/sbin/john --incremental mypasswd.txt
$ /usr/sbin/john --incremental=alpha mypasswd.txt

Конечно, это не замена документации Джона. Хотя, как мы уже говорили, он не предлагает страницы руководства, Вы найдете много документации на его странице, а также полезную вики-страницу. Например, Вы заметите, что даже если Вы используете John на многопроцессорной машине, она будет использовать только одно ядро, обычно первое. Вы можете решить эту проблему, прочитав документацию и следуя приведенным там инструкциям.

До встречи Друг.

Телеграм канал автора — Dark Library

Источник: LinuxConfig.org

How to Crack Passwords using John The Ripper – Pentesting Tutorial

If you are a pen-tester, cracking passwords is something you will be doing on a daily basis. This can include login passwords, file passwords, and almost anything that is protected using a password.

John the Ripper (JtR) is a popular password-cracking tool. John supports many encryption technologies for Windows and Unix systems (Mac included).

One remarkable feature of John is that it can autodetect the encryption for common formats. This will save you a lot of time in researching the hash formats and finding the correct tool to crack them.

John is also a dictionary-based tool. This means that it works with a dictionary of common passwords to compare it with the hash in hand. Here is a common password list called rockyou.txt.

While you can use popular wordlists like RockYou, John also has its own set of wordlists with thousands of common passwords. This makes John very effective when cracking systems with weak passwords.

This is how John works by default:

  • recognize the hash type of the current hash
  • generate hashes on the fly for all the passwords in the dictionary
  • stop when a generated hash matches the current hash.

This is not the only way John finds a password. You can also customize John based on your requirements. For example, you can specify the password format using the — — format flag.

In this article, we will first install John followed by a walkthrough of the different modes you can use. We will then use John to crack passwords for three different use cases — a Windows password, a Linux password, and a zip file password.

A quick disclaimer before we get started: do not use this tool for nefarious purposes. This is meant to be an educational tutorial to help you protect yourself and your clients or team from password attacks. Use this information responsibly and safely!

Let’s get cracking.

If you are using Kali Linux, John is pre-installed. You can use John by typing the following command:

$ john

For Ubuntu/Debian, you can get John from the apt source. Here is the command to install John in Ubuntu:

$ apt install John

In Mac, you can find John in Homebrew:

$ brew install john

For windows and other operating systems, you can find the binaries here.

Once you have installed John, try the help command to make sure your installation is working. The help command can also be used as a reference when working with John.

$ john -h

Here is the output of the help command:

image-89

John help command

How to Use John the Ripper

Now that we know what John is, let’s look at the three modes it offers you. You will be using one of these three for most of your use cases.

  • Single crack mode
  • Wordlist mode
  • Incremental mode

Let’s look at each one of them in detail.

What is Single Crack Mode?

In single-crack mode, John takes a string and generates variations of that string in order to generate a set of passwords.

For example, if our username is “stealth” and the password is “StEaLtH”, we can use the single mode of John to generate password variations (STEALTH, Stealth, STealth, and so on).

We use the “format” flag to specify the hash type and the “single” flag to let John know we want to use the single crack mode. We will also create a crack.txt file which will contain the username and the hash value of the password.

stealth:d776dd32d662b8efbdf853837269bd725203c579

Now we can use the following command to use John’s single crack mode:

$ john --single --format=raw-sha1 crack.txt

And here is the result. You can see that John has successfully found the correct password “StEaLtH”.

image-90

John single crack mode

That was fun, wasn’t it? Now let’s look at the dictionary mode to crack more complicated passwords.

What is Dictionary Mode?

In dictionary mode, we will provide John with a list of passwords. John will generate hashes for these on the fly and compare them with our password hash.

For this example, we will use the RockYou wordlist. If you are using Kali, you can find it at /usr/share/wordlists/rockyou.txt. We will also have a crack.txt file with just the password hash.

edba955d0ea15fdef4f61726ef97e5af507430c0

Here is the command to run John in dictionary mode using the wordlist.

$ john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha1 crack.txt

And John finds the password pretty quickly.

image-91

John wordlist mode

The weaker the password is, the quicker John can figure it out. This is why it is always recommended to have strong passwords.

What is Incremental Mode?

Incremental mode is the most powerful mode provided by John. It tries all possible character combinations as passwords.

This sounds great, but there is a problem. The cracking can go on for a long time if the password is too long or if it’s a combination of alphanumeric characters and symbols.

You will rarely use this mode unless you have no other option. In typical cases, a combination of Social Engineering attacks and wordlist mode will help you crack most of the hashes.

If you would like to try the incremental mode, here is the syntax.

$ john -i:digits passwordfile.txt

Here, the -i flag tells John that we want to use the increment mode. The “digits” placeholder can be used to set the maximum number of digits in the password.

You can also add the “format” option to make it easier for John to start cracking.

Use Cases for John the Ripper

Now that you understand the different modes of John, let’s look at a few use cases.

We will use John to crack three types of hashes: a windows NTLM password, a Linux shadow password, and the password for a zip file.

How to Crack a Windows Password

Let’s start with Windows. In Windows, the password hashes are stored in the SAM database. SAM uses the LM/NTLM hash format for passwords, so we will be using John to crack one.

Getting passwords from the SAM database is out of scope for this article, but let’s assume you have acquired a password hash for a Windows user.

Here is the command to crack it:

$ john --format=lm crack.txt

The crack.txt will contain the password hash. If John is unable to crack the password using its default wordlist, you can use the RockYou wordlist using the — — wordlist flag.

How to Crack a Linux Password

Now, let’s crack a Linux password. In Linux, there are two important files saved in the /etc folder: passwd and shadow.

  • /etc/passwd -> stores information like username, user id, login shell, and so on.
  • /etc/shadow -> contains password hash, password expiry, and so on.

In addition to the “john” command, John comes with a few other utilities. One of them is called “unshadow”.

The unshadow command combines the passwd and shadow files together into a single file. This can then be used by John to crack passwords.

Here is how we use the unshadow command:

$ unshadow /etc/passwd /etc/shadow > output.db

This command will combine the files together and create an output.db file. We can now crack the output.db file using John.

$ john output.db

John tries to find the password for all the users in the passwd file and generates the output with the list of cracked passwords. Again, you can use custom wordlists via the  — — wordlist flag.

How to Crack a Zip File Password

Finally, let’s crack a zip file password. To do that, we first have to get the hash of the zip file’s password.

Like unshadow, John has another utility called zip2john. zip2john helps us to get the hash from zip files. If you are cracking a .rar file, you can use the rar2john utility.

Here is the syntax to get the password hash of a zip file:

$ zip2john file.zip > zip.hashes

The above command will get the hash from the zip file and store it in the zip.hashes file. You can then use John to crack the hash.

$john zip.hashes

John also has several other functionalities that will help you crack a variety of passwords. You can find the complete documentation for John here.

How to Defend Against Password Attacks

So far we have seen how to crack passwords with John the Ripper. But how do we defend against these types of brute-force attacks?

The simplest way to defend against password attacks is to set a strong password. The stronger the password is, the harder it is to crack.

The second step is to stop using the same passwords for multiple sites. If one site gets hacked, your password will be exposed to the internet. A hacker can then use the email/password combination to test your credentials across other sites. You can check if your password is on the internet here.

The final step would be to generate random passwords and use a password manager. There are a variety of options including the Chrome built-in Google password manager. If you use a strong password for each site you use, it becomes extremely hard to crack your password.

Summary

John is a popular and powerful password-cracking tool. It is often used by both penetration testers and black hat hackers for its versatility and ease of use.

From automated hash discovery to dictionary-based attacks, John is a great tool to have in your pentesting toolkit.

Hope this article helped you to understand John the Ripper in detail. You can connect with me here or visit my blog here.



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

John the Ripper — это кроссплатформенный пакет с открытым исходным кодом, который обычно используется для аудита безопасности паролей и восстановления паролей. В этом руководстве мы узнаем, как использовать John the Ripper в Kali Linux.

В Kali Linux предустановлен John the Ripper, поэтому ничего устанавливать не нужно! Просто возьмите пакет и возьмите его на прогулку.

Сценарий № 1: вы только что получили хэш пароля

Итак, давайте предположим, что вам только что передали хэш, точнее, хеш MD5. В реальных ситуациях вы бы получили их, очистив компьютер. В моем случае я буду использовать слово password123:

эхо 482c811da5d5b4bc6d497ffa98491e38 > хэш.txt

Чтобы решить пароль, вы должны использовать самый простой код Джона Потрошителя:

Джон Хэш.txt

Как правило, John the Ripper автоматически определяет тип хеша. Но вы можете увеличить это столько, сколько хотите! Итак, допустим, вы хотите добавить свой собственный список слов и указать формат, тогда вы должны написать:

Джон —список слов=~/Загрузки/список паролей —формат= Raw-MD5 hash.txt

Без названия3

Таким образом, при первом запуске последнего он покажет пароль на экране, после чего сохранит его в файл с именем john.pot. В моем случае папка john.pot находилась в /home/kali/.john/john.pot.

Без названия2

Сценарий № 2: Защищенный паролем ZIP-файл

Теперь давайте представим, что есть Zip-файл с блокировкой паролем. Итак, в какой-то момент ранее вы создали zip-файл, защищенный паролем. Для этого вам нужно установить zip:

судо подходящий установитьмолния

Затем, чтобы создать zip-файл:

молния—пароль<пароль><Имя молнияфайл><каталог для молния>

Бывший: молния—пароль пароль123 linuxhint.zip

(Здесь слово password123 является фактическим паролем, защищающим zip-файл.)

Теперь, 6 месяцев спустя, вы забыли пароль. Что ты можешь сделать? Что ж, используйте John the Ripper, но прежде чем мы сможем это сделать, нам сначала нужно преобразовать zip в john.

Для этого воспользуемся командой zip2john:

zip2john linuxhint.zip > linuxhint_password.txt

Сам хэш расположен между двумя знаками доллара.

Без названия

Джон Потрошитель может получить пароль одним из двух способов: атакой по словарю или атакой полным перебором. Файл со списком потенциальных паролей сравнивается с имеющимся хешем при атаке по словарю. Если совпадение найдено, оно будет выброшено. С другой стороны, если пароль не найден, вы можете использовать другой файл паролей или другой метод.

Далее мы напишем:

Джон —список слов=~/Загрузки/список паролей linuxhint_password.txt

Без названия4

Здесь мы взломали zip-файл, но это не обязательно должен быть zip-файл! Это может быть почти что угодно. Просто помните, что в таких случаях вы должны использовать {your_module}2john. Например, если бы вы взламывали Wi-Fi, вы бы использовали Aircrack-ng и получили файл с крышкой. После того, как вы получили файл шапки, вам нужно будет преобразовать файл кепки в файл hccap. Когда у вас есть файл hccap, используйте hccap2john, чтобы преобразовать его в формат john, который даст результаты на John the Ripper.

Вы можете найти больше команд 2john, используя:

найти 2джон

Без названия5

Сценарий № 3: Инкрементный стиль или грубая сила

Самым мощным из всех доступных методов является метод грубой силы, потому что он проверяет все возможные комбинации! Но это также означает, что он вряд ли когда-нибудь закончится, если пароли не будут достаточно простыми.

Например, я выберу трехсимвольный пароль в формате MD5: abc. Я делаю это, чтобы мне не приходилось часами ждать, пока он его обнаружит.

эхо 900150983cd24fb0d6963f7d28e17f72 > инкрементный.txt

Самый простой способ сделать это — набрать:

Джон —формат= Сырой-MD5 —инкрементный инкрементный.txt

В качестве альтернативы вы могли бы также написать:

Джон —формат= Сырой-MD5 инкрементный.txt

Без названия6

Как видите, я нашел его менее чем за секунду, и мне даже не пришлось снабжать его словарем.

Далее мы собираемся возиться с файлом конфигурации, расположенным по адресу /etc/john/john.conf.

В файле /etc/john/john.conf вы найдете раздел об инкрементных режимах. Здесь вы можете добавить больше, если хотите, но сначала давайте попробуем использовать один из них.

В /etc/john/john.conf есть такой:

[Инкрементальный: цифры]

Файл = $ДЖОН/цифры.хр
МинДлен = 1
МаксДлен = 20
Количество символов = 10

Здесь давайте воссоздадим хэш MD5 для пароля 123456.

эхо e10adc3949ba59abbe56e057f20f883e > пароль_цифры.txt

Теперь давайте воспользуемся инкрементным режимом:

Джон —формат= Сырой-MD5 —инкрементный=цифры password_digits.txt

Последний будет искать все возможные комбинации цифр. А поскольку это был всего лишь 6-значный пароль, он взломал его менее чем за одну секунду.

Без названия9

Однако вы можете добавлять туда свои собственные файлы и создавать свои собственные инкрементные файлы. Вы можете создавать правила и т. д. Это тяжело!

Джонни: версия графического интерфейса

Теперь для тех, кто предпочитает версию с графическим интерфейсом версии с интерфейсом командной строки, есть Johnny. Чтобы установить Джонни:

судо способный получить установить Джонни

На вкладке «Файл» вы должны найти две опции: открыть файл паролей или открыть файл другого формата. Для демонстрационных целей мы будем использовать первый — открытый файл паролей. Я открою файл hash.txt, содержащий пароль в MD5.

В разделе параметров вы можете выбрать нужный режим атаки. Я выберу список слов и тип хеша (вверху). Затем я дам ему файл паролей.

Без названия11

Затем нажмите «Начать новую атаку».

Без названия12

Просто и легко! Точно так же вы можете выбрать режим атаки. Так что, если вам нужен инкрементный режим, настройте его и посмотрите, как он делает свое дело.

Джон Потрошитель — очень мощный инструмент. На самом деле, он очень широко используется, настолько, что он предустановлен в Kali Linux! Джон Потрошитель в основном используется для восстановления паролей, но всегда можно проверить, безопасны ли выбранные вами пароли или нет, попробовав их взломать. В целом, это фантастический инструмент, который требует времени для изучения и освоения, но он определенно стоит затраченных усилий.

Удачного кодирования!

Понравилась статья? Поделить с друзьями:
  • Тест на овуляцию цена как пользоваться инструкция по применению
  • Бифидумбактерин инструкция по применению для новорожденных в порошке
  • Омепразол тева инструкция по применению цена таблетки взрослым
  • Этамзилат капли глазные инструкция по применению
  • Renault logan руководство по техническому обслуживанию скачать