Интеграция John the Ripper с другими инструментами

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

Введение

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

В этой лаборатории вы изучите, как John the Ripper может быть интегрирован с другими распространенными инструментами безопасности. Мы рассмотрим концептуальные рабочие процессы использования JtR с Hashcat, Metasploit и Aircrack-ng. Затем вы получите практический опыт, написав простой bash-скрипт для автоматизации сеанса взлома JtR.

Использование John the Ripper с Hashcat (Концептуально)

На этом этапе мы обсудим концептуальную интеграцию John the Ripper и Hashcat. Оба являются ведущими инструментами для взлома паролей, но у них разные сильные стороны. John the Ripper известен своей производительностью при взломе на основе ЦП (CPU) и способностью автоматически обнаруживать множество типов хешей. Hashcat, с другой стороны, является самым быстрым в мире инструментом для взлома паролей, превосходно справляющимся с атаками на основе ГП (GPU).

Хотя их часто рассматривают как альтернативы, их можно использовать вместе в рабочем процессе. Например, вы можете использовать утилиты John the Ripper, такие как unshadow, для извлечения и объединения файлов паролей и теневых файлов (shadow files) из системы Linux.

Пример рабочего процесса:

  1. Получите файлы /etc/passwd и /etc/shadow из целевой системы Linux.
  2. Используйте утилиту JtR unshadow для объединения их в один файл, содержащий имена пользователей и хеши: unshadow passwd shadow > hashes_for_cracking.txt.
  3. Передайте полученный файл hashes_for_cracking.txt в Hashcat, чтобы использовать его мощные возможности взлома на основе ГП.

Этот этап является чисто концептуальным, чтобы помочь вам понять потенциальные синергии. Здесь нет команд для выполнения. Главное, что утилиты одного инструмента могут использоваться для подготовки данных для другого.

Интеграция John the Ripper с Metasploit (Концептуально)

На этом этапе мы рассмотрим концептуальную интеграцию John the Ripper с Metasploit Framework. Metasploit — это мощный фреймворк для тестирования на проникновение, используемый для обнаружения, эксплуатации и проверки уязвимостей. Распространенной задачей после эксплуатации является дамп (dump) хешей паролей из скомпрометированной системы. Именно здесь JtR становится важной частью рабочего процесса.

Пример рабочего процесса:

  1. Злоумышленник получает первоначальный доступ к системе, используя эксплойт Metasploit.
  2. Используя модуль пост-эксплуатации в сеансе Meterpreter, такой как run post/windows/gather/hashdump, злоумышленник выгружает хеши паролей (например, NTLM хеши из базы данных SAM Windows).
  3. Злоумышленник сохраняет эти хеши в файл на своей локальной машине.
  4. Затем John the Ripper используется в автономном режиме для взлома этих хешей, используя различные методы, такие как атаки по словарю или брутфорс.
  5. После взлома пароля он может быть использован для повышения привилегий или для перехода к другим системам в сети, потенциально с использованием других модулей Metasploit, таких как psexec.

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

Использование John the Ripper с Aircrack-ng (Концептуально)

На этом этапе мы обсудим, как John the Ripper может использоваться с набором инструментов Aircrack-ng для взлома паролей Wi-Fi. Aircrack-ng — это набор инструментов для аудита беспроводных сетей. Ключевой частью аудита WPA/WPA2 является захват 4-стороннего рукопожатия (4-way handshake), которое происходит, когда клиент подключается к точке доступа. Это рукопожатие содержит хеш, который может быть взломан для раскрытия общего ключа сети (PSK).

Пример рабочего процесса:

  1. Используйте инструменты из набора Aircrack-ng, такие как airodump-ng, для мониторинга беспроводного трафика и захвата рукопожатия WPA/WPA2. Обычно оно сохраняется в файл с расширением .cap.
  2. Сам файл .cap не является хешем. Его необходимо преобразовать в формат, понятный для программы для взлома паролей. Для этого преобразования можно использовать aircrack-ng или другие инструменты, такие как hcxpcaptool.
  3. Например, вы можете использовать aircrack-ng с опцией -J для создания файла, совместимого с Hashcat (.hccapx), который также может обрабатывать John the Ripper. Команда будет выглядеть примерно так: aircrack-ng your_capture.cap -J output_hash_file.
  4. Наконец, вы используете John the Ripper для взлома файла хешей с помощью списка паролей (wordlist): john --wordlist=passwords.txt output_hash_file.hccapx.

Этот рабочий процесс показывает, как специализированный инструмент для одной области (Wi-Fi) может предоставить сырые данные для обработки универсальным инструментом, таким как JtR. Этот шаг является концептуальным, и никаких команд выполнять не требуется.

Скрипт John the Ripper для автоматизации

На этом этапе мы перейдем от теории к практике. Наиболее распространенный способ "интегрировать" John the Ripper — это обернуть его интерфейс командной строки в скрипты. Это позволяет автоматизировать повторяющиеся задачи и встраивать его в более крупные цепочки инструментов. Мы создадим простой bash-скрипт для выполнения атаки по словарю, а затем покажем результаты.

Сначала создадим скрипт автоматизации. Используйте редактор nano для создания нового файла с именем crack.sh в вашем текущем каталоге, ~/project.

nano crack.sh

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

#!/bin/bash

if [ "$#" -ne 2 ]; then
  echo "Usage: $0 <hash_file> <wordlist_file>"
  exit 1
fi

HASH_FILE=$1
WORDLIST=$2

echo "[-] Starting John the Ripper..."
john --wordlist="$WORDLIST" "$HASH_FILE" > /dev/null 2>&1

echo "[+] Cracking attempt finished."
echo "[+] Showing cracked passwords:"
john --show "$HASH_FILE"

Сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y и затем Enter.

Далее нам нужно сделать скрипт исполняемым.

chmod +x crack.sh

Теперь создадим простой файл списка паролей для нашего теста. Скрипт настройки для этой лаборатории уже создал файл с именем hashes.txt, содержащий пример хеша. Пароль для этого хеша — password123.

echo "password123" > wordlist.txt

Наконец, запустите ваш скрипт автоматизации. Передайте ему файл hashes.txt и ваш новый wordlist.txt.

./crack.sh hashes.txt wordlist.txt

Вы должны увидеть следующий вывод, указывающий, что скрипт успешно запустил John и нашел пароль.

[-] Starting John the Ripper...
[+] Cracking attempt finished.
[+] Showing cracked passwords:
user1:password123

1 password hash cracked, 0 left

Теперь вы успешно создали простой скрипт для автоматизации John the Ripper!

Понимание API John the Ripper (если применимо)

На этом заключительном этапе мы проясним концепцию "API John the Ripper". Когда разработчики говорят об API (Application Programming Interfaces), они часто имеют в виду REST API для веб-сервисов или хорошо документированную библиотеку для конкретного языка программирования.

John the Ripper не имеет формального, стабильного публичного API в этом смысле. Его основной интерфейс — командная строка (CLI), которая является мощной, гибкой и предназначенной для взаимодействия и написания скриптов, как вы продемонстрировали на предыдущем шаге.

Основная функциональность JtR содержится в библиотеке, иногда называемой libjohn. Технически возможно для опытных C-программистов использовать эту библиотеку для создания пользовательских приложений. Однако это сложная задача, не являющаяся типичным сценарием использования, и она не поддерживается как публичный API.

Следовательно, для подавляющего большинства пользователей и интеграций "использование API JtR" означает:

  • Вызов исполняемого файла JtR из скрипта (например, Bash, Python, Perl).
  • Парсинг вывода командной строки инструмента.
  • Взаимодействие с его файлами, такими как входной файл хешей и файл john.pot, где хранятся взломанные пароли.

Ключевой вывод заключается в том, что интеграция и автоматизация с John the Ripper достигаются с помощью скриптов командной строки, а не традиционной библиотеки программирования или веб-API.

Резюме

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

Вы изучили концептуальные рабочие процессы для объединения JtR с другими основными инструментами безопасности:

  • Использование утилит JtR для подготовки хешей для GPU-брутфорса Hashcat.
  • Использование JtR для взлома хешей, полученных во время пост-эксплуатации с помощью Metasploit Framework.
  • Использование JtR для взлома Wi-Fi рукопожатий (handshakes), захваченных набором инструментов Aircrack-ng.

Затем вы применили теорию на практике, написав и выполнив bash-скрипт для автоматизации сеанса взлома паролей, что является основным методом интеграции JtR в более крупные рабочие процессы. Наконец, вы выяснили, что "API" JtR — это его мощный интерфейс командной строки, который является ключом к его гибкости и потенциалу интеграции.