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

John the RipperМануалыПрограммное обеспечение

Для тех из вас, кто еще не слышал о 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

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

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


Один из способов-использовать /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