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

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

Введение

В этой лабораторной работе вы научитесь устанавливать и проверять Hydra — универсальный инструмент для перебора сетевых учётных данных по различным протоколам. Упражнения охватывают установку пакета, проверку версии и базовое тестирование команд, чтобы убедиться в корректной работе инструмента.

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

Установка Hydra в системе

На этом этапе вы установите Hydra — мощный инструмент для перебора паролей, предназначенный для проверки безопасности сетевых служб. Hydra выполняет атаки методом полного перебора против систем аутентификации и поддерживает более 30 протоколов, включая HTTP, FTP, SSH и другие. Мы установим её на виртуальную машину LabEx, которая предоставляет безопасную среду для обучения.

Примечание: бесплатные пользователи не могут подключаться к интернету, поэтому Hydra уже предустановлена в лабораторной среде. Вы можете перейти сразу к пункту 4 и проверить, установлена ли Hydra. Перейдите на тариф Pro, чтобы самостоятельно потренироваться в установке Hydra.

  1. Сначала обновим список пакетов. Это гарантирует, что будут установлены последние доступные версии Hydra и её зависимостей:
sudo apt update

Команда sudo предоставляет права администратора, а apt update обновляет список доступных пакетов в системе.

  1. Теперь установите Hydra с помощью менеджера пакетов apt. Флаг -y автоматически подтверждает все запросы, возникающие во время установки:
sudo apt install -y hydra
  1. В процессе установки автоматически будут обработаны все необходимые зависимости. Это дополнительные программные компоненты, требуемые Hydra для нормальной работы. Дождитесь завершения процесса — после окончания вы увидите соответствующее сообщение.

  2. После установки проверим, что Hydra установлена корректно и доступна для запуска. Команда which показывает, где система находит исполняемый файл Hydra:

which hydra

which hydra

Ожидаемый результат:

/usr/bin/hydra

Этот результат подтверждает, что Hydra установлена правильно. Каталог /usr/bin/ означает, что инструмент доступен в системе глобально и его можно запускать из любого каталога терминала. На следующих этапах мы рассмотрим основные возможности Hydra.

Проверка установленной версии Hydra

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

Запустите справочную команду Hydra и оставьте только первую строку:

hydra -h 2>&1 | head -n 1

Вы должны увидеть результат, похожий на следующий:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak ...

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

Не используйте hydra -v или hydra -V для проверки версии. В Hydra параметр -v включает подробный режим, а -V показывает каждую проверяемую комбинацию имени пользователя и пароля. Оба параметра предназначены для использования с реальной целью: при самостоятельном запуске они выводят баннер, а затем завершаются ошибкой, поскольку цель не указана.

Определение пути к исполняемому файлу Hydra

На этом этапе вы научитесь находить место установки Hydra в системе. Когда мы устанавливаем программное обеспечение вроде Hydra, система размещает его исполняемый файл в определённых каталогах. Знать этот путь важно по нескольким причинам:

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

Начнём с базовой команды для поиска Hydra:

  1. Используйте команду which, чтобы найти исполняемый файл Hydra. Она просматривает переменную окружения PATH и определяет, где установлена Hydra:
which hydra
  1. В результате будет показан полный путь к основному исполняемому файлу Hydra. В типичной системе Linux вы увидите примерно следующее:
/usr/bin/hydra
  1. Теперь получим дополнительную информацию об этом файле. Следующая команда объединяет ls -l, которая отображает сведения о файле, и which hydra, которая возвращает его путь:
ls -l $(which hydra)
  1. Команда выведет важную информацию, включая:
    • Права доступа к файлу — кто может читать, изменять и запускать его
    • Владельца файла — обычно root для программ, установленных на уровне системы
    • Размер файла и дату изменения
    • Фактический путь

Пример результата:

-rwxr-xr-x 1 root root 123456 Jan 1 00:00 /usr/bin/hydra
  1. Чтобы получить ещё больше сведений, можно определить тип исполняемого файла Hydra. Это особенно полезно, если нужно убедиться, что перед вами настоящий двоичный файл, а не скрипт или символическая ссылка:
file $(which hydra)
  1. Результат показывает, что это скомпилированный двоичный файл, а не скрипт, а также содержит технические сведения о его архитектуре и способе связывания:
/usr/bin/hydra: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=abcdef1234567890, for GNU/Linux 3.2.0, stripped

Эти команды дают целостное представление о том, где установлена Hydra и к какому типу относится её исполняемый файл. Это базовые знания, необходимые при работе с любым инструментом командной строки.

Запуск Hydra со справочной командой

На этом этапе вы научитесь обращаться к встроенной справке Hydra, чтобы понять основные принципы использования инструмента и синтаксис команд. Справочная система Hydra — это первый источник информации при работе с программой: в ней подробно описаны доступные команды и параметры.

  1. Чтобы вывести базовое меню справки с общей структурой команд и часто используемыми параметрами, выполните в терминале простую команду:
hydra -h
  1. В результате сначала отобразится информация о версии Hydra, а затем базовый синтаксис команд. В него входят:
  • Форматы обязательных параметров
  • Распространённые флаги
  • Основные примеры использования

Обычно вывод выглядит примерно так:

Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]

Options:
  -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
  ...
  1. Для получения справки по конкретному протоколу с расширенными параметрами определённой службы, например HTTP или FTP, используйте следующий формат команды:
hydra -U SERVICE

Замените SERVICE фактическим названием протокола, с которым вы работаете, например http, ftp или ssh. Команда выведет специализированные параметры для выбранной службы.

  1. Чтобы узнать, с какими модулями служб может работать Hydra, выполните следующую команду. Обратите внимание: foo и bar здесь используются только как условные значения:
hydra -l foo -p bar -U
  1. Подробный справочный вывод содержит важную информацию, включая:
  • Обязательные и необязательные параметры каждого модуля
  • Практические примеры использования
  • Полный список поддерживаемых протоколов
  • Параметры производительности для настройки тестов

Помните, что справочная система Hydra учитывает контекст: отображаемая информация зависит от того, какие параметры используются вместе с флагами -h или -U.

Тестирование Hydra с помощью фиктивной команды

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

  1. Сначала создайте тестовый список паролей. В этот файл будут записаны примеры паролей, которые Hydra проверит во время теста:
echo -e "password\n123456\nqwerty" > ~/project/test_passwords.txt
  1. Создайте тестовый список имён пользователей. Аналогично, этот файл будет содержать примеры имён, которые Hydra попытается использовать:
echo -e "admin\ntest\nroot" > ~/project/test_usernames.txt
  1. Теперь запустим Hydra в тестовом режиме против localhost, то есть собственного компьютера. Это полностью безопасно: целью является ваша локальная система, а используемые тестовые учётные данные заведомо не должны подойти:
hydra -L ~/project/test_usernames.txt -P ~/project/test_passwords.txt 127.0.0.1 ssh -t 1 -vV
  1. Вы должны увидеть вывод с результатами тестовых попыток. Он демонстрирует, как Hydra перебирает комбинации паролей, хотя фактический вход выполнен не будет:
[DATA] attacking ssh://127.0.0.1:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://127.0.0.1:22
[22][ssh] host: 127.0.0.1   login: admin   password: password
[22][ssh] host: 127.0.0.1   login: admin   password: 123456
[22][ssh] host: 127.0.0.1   login: admin   password: qwerty
...
[STATUS] attack finished for 127.0.0.1 (waiting for children to complete tests)
  1. В команде используются следующие безопасные параметры:
  • -L: задаёт путь к созданному нами файлу со списком имён пользователей
  • -P: задаёт путь к созданному нами файлу со списком паролей
  • -t 1: ограничивает Hydra одним параллельным соединением, благодаря чему тест выполняется медленнее, но безопаснее
  • -vV: включает подробный вывод, чтобы видеть действия Hydra
  • ssh: указывает, что проверяется протокол SSH, хотя этот тест не должен завершиться успешной аутентификацией

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

Итоги

В этой лабораторной работе вы научились устанавливать и проверять инструмент Hydra для взлома паролей на виртуальной машине LabEx. Процесс включал обновление списка пакетов, установку Hydra с помощью apt и проверку пути установки /usr/bin/hydra. Также вы проверили установку с помощью команд hydra -v и hydra -V.

Кроме того, вы изучили базовые возможности Hydra: нашли путь к исполняемому файлу с помощью which hydra и протестировали справочную команду hydra -h. Эти действия подтвердили, что Hydra установлена корректно и готова к практическому применению в сценариях тестирования безопасности.