Введение
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 для аудита безопасности паролей.


