Установка John the Ripper в Linux

Kali LinuxBeginner
Практиковаться сейчас

Введение

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

В этой лабораторной работе вы научитесь устанавливать John the Ripper в системе Linux, скачивая исходный код, компилируя его и добавляя в переменную PATH вашей системы для удобного доступа. Все операции будут выполняться в каталоге ~/project.

Загрузка исходного кода John the Ripper

На этом шаге вы загрузите исходный код John the Ripper из его официального репозитория GitHub. Затем мы извлечем загруженный архив для подготовки к компиляции. Ваш текущий рабочий каталог — ~/project.

Сначала используйте команду wget для загрузки конкретной стабильной версии "Jumbo" — расширенной сообществом версии John the Ripper.

wget https://github.com/openwall/john/archive/refs/tags/1.9.0-jumbo-1.tar.gz

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

--2023-10-27 10:30:00--  https://github.com/openwall/john/archive/refs/tags/1.9.0-jumbo-1.tar.gz
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
...
Saving to: ‘1.9.0-jumbo-1.tar.gz’

1.9.0-jumbo-1.tar.gz      100%[===================================>]  22.13M  65.4MB/s    in 0.3s

2023-10-27 10:30:01 (65.4 MB/s) - ‘1.9.0-jumbo-1.tar.gz’ saved [23201448/23201448]

Далее извлеките содержимое загруженного файла .tar.gz с помощью команды tar.

tar -xzvf 1.9.0-jumbo-1.tar.gz

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

ls -l

Вы должны увидеть недавно созданный каталог john-1.9.0-jumbo-1.

total 22668
-rw-r--r-- 1 labex labex 23201448 Jul 25  2021 1.9.0-jumbo-1.tar.gz
drwxr-xr-x 9 labex labex     4096 Jul 25  2021 john-1.9.0-jumbo-1

Установка необходимых зависимостей для компиляции

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

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

sudo apt-get update

Далее установите основные пакеты для сборки программного обеспечения в системах на базе Debian, таких как Ubuntu. Нам понадобятся build-essential (который включает компилятор GCC и make), libssl-dev (для криптографической поддержки) и yasm (ассемблер).

sudo apt-get install -y build-essential libssl-dev yasm

Флаг -y автоматически отвечает "да" на любые запросы, позволяя установке проходить без взаимодействия с пользователем. Вы увидите много вывода по мере загрузки и установки пакетов.

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
The following NEW packages will be installed:
  build-essential dpkg-dev g++ g++-11 libssl-dev libstdc++-11-dev make yasm
...
Setting up libssl-dev:amd64 (3.0.2-0ubuntu1.10) ...
Setting up make (4.3-4.1build1) ...
...

После установки зависимостей вы готовы к компиляции исходного кода.

Компиляция John the Ripper из исходного кода

На этом шаге вы скомпилируете исходный код John the Ripper. Процесс компиляции обычно включает две основные команды: ./configure и make.

Сначала перейдите в каталог src внутри извлеченной папки с исходным кодом.

cd john-1.9.0-jumbo-1/src/

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

./configure

Вывод покажет результаты проверок.

...
checking for yasm... yasm
checking for OpenSSL... yes
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating common.h
...
Configuration finished. You can now run "make".

После завершения настройки вы можете начать компиляцию с помощью команды make. Мы используем make -s clean для удаления любых предыдущих файлов сборки и make -sj4 для выполнения компиляции с использованием 4 параллельных задач, что ускоряет процесс.

make -s clean && make -sj4

Этот процесс может занять несколько минут. По его завершении скомпилированный исполняемый файл john будет помещен в каталог ../run/. Если сборка прошла успешно, командная строка вернется без ошибок.

Проверка установки John the Ripper

На этом шаге вы проверите, успешно ли скомпилирован John the Ripper, запустив исполняемый файл и его встроенный набор тестов.

Скомпилированный бинарный файл находится не в каталоге src, а в каталоге run. Перейдем в него.

cd ../run

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

./john

Вы должны увидеть информацию о версии и использовании, что подтверждает исполняемость программы.

John the Ripper 1.9.0-jumbo-1 [linux-gnu 64-bit x86_64 AVX2 AC]
Copyright (c) 1996-2019 by Solar Designer and others
Homepage: https://www.openwall.com/john/

Usage: john [OPTIONS] [PASSWORD-FILES]
...

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

./john --test

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

Benchmarking: descrypt, traditional crypt(3) [DES 128/128 SSE2-16]... DONE
Many salts:	12032K c/s real, 12032K c/s virtual
Only one salt:	11141K c/s real, 11141K c/s virtual

...

Benchmarking: LM [DES 128/128 SSE2-16]... DONE
Raw-MD5 [MD5 128/128 SSE2-16]... DONE
...
All tests passed

Вид сообщения "All tests passed" в конце подтверждает, что ваша сборка работает корректно.

Добавление John the Ripper в системный PATH

На этом шаге вы добавите каталог, содержащий исполняемый файл john, в переменную окружения PATH вашей системы. Это позволит вам запускать john из любого места в терминале, не вводя полный путь.

Исполняемый файл john в настоящее время находится в каталоге ~/project/john-1.9.0-jumbo-1/run. Чтобы сделать его глобально доступным для вашего пользователя, вам нужно добавить этот путь в конфигурационный файл вашей оболочки. Поскольку в лабораторной среде используется Zsh, этот файл называется ~/.zshrc.

Используйте команду echo для добавления команды export в ваш файл ~/.zshrc.

echo 'export PATH="$HOME/project/john-1.9.0-jumbo-1/run:$PATH"' >> ~/.zshrc

Эта команда добавляет каталог run в начало вашего PATH. Изменение вступит в силу только в новых сессиях терминала. Чтобы применить его к текущей сессии, вам нужно "источникнуть" (source) конфигурационный файл.

source ~/.zshrc

Теперь давайте проверим, работает ли это. Сначала выйдите из каталога run в ваш домашний каталог.

cd ~

Из вашего домашнего каталога попробуйте запустить john, не указывая путь.

john

Если PATH был установлен правильно, вы увидите ту же информацию об использовании, что и раньше. Это подтверждает, что теперь вы можете запускать John the Ripper из любого места.

John the Ripper 1.9.0-jumbo-1 [linux-gnu 64-bit x86_64 AVX2 AC]
Copyright (c) 1996-2019 by Solar Designer and others
Homepage: https://www.openwall.com/john/

Usage: john [OPTIONS] [PASSWORD-FILES]
...

Итоги

Поздравляем! Вы успешно установили John the Ripper из исходного кода в системе Linux.

В этой лабораторной работе вы научились:

  • Загружать исходный код программного пакета с помощью wget.
  • Устанавливать необходимые зависимости для сборки с помощью apt-get.
  • Конфигурировать и компилировать исходный код с помощью ./configure и make.
  • Проверять успешность компиляции, запуская программу и ее встроенные тесты.
  • Добавлять расположение программы в системный PATH для удобного доступа из любого каталога.

Этот процесс компиляции из исходного кода является фундаментальным навыком для пользователей Linux и дает вам больше контроля над установкой программного обеспечения. Теперь вы готовы изучить мощные возможности John the Ripper для аудита безопасности паролей.