Изучение основных команд Hydra

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе вы изучите основные команды и методы использования Hydra, универсального инструмента для взлома паролей. Вы изучите базовые структуры команд с ключевыми опциями, такими как имя пользователя (-l/-L), пароль (-p/-P) и указание порта (-s), а также потренируетесь в простой SSH-атаке на тестовый сервер.

Упражнения проведут вас через конфигурацию цели, выполнение атаки и интерпретацию вывода. Выполнив эту лабораторную работу, вы получите практический опыт работы с основной функциональностью Hydra для базовых атак методом перебора (brute-force attempts) против сетевых сервисов.

Важно: Эта лабораторная работа предназначена для Desktop Interface (графического интерфейса). НЕ запускайте команды в Single-Terminal Interface (однотерминальном интерфейсе).

Понимание структуры команд Hydra

В этом шаге мы изучим фундаментальную структуру команд Hydra, мощного инструмента для проверки безопасности паролей с помощью атак методом перебора (brute-force attacks). Прежде чем мы начнем, важно понимать, что Hydra систематически пробует различные комбинации имени пользователя и пароля для сетевых сервисов, чтобы выявить слабые учетные данные.

Базовая команда Hydra имеет следующий вид:

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]]

Давайте разберем наиболее часто используемые опции, чтобы понять, что делает каждая часть:

  • -l или -L: Они позволяют указать либо одно имя пользователя (-l) для тестирования, либо файл, содержащий несколько имен пользователей (-L).
  • -p или -P: Аналогично именам пользователей, они позволяют протестировать либо один пароль (-p), либо несколько паролей из файла (-P).
  • -t: Контролирует, сколько попыток Hydra предпринимает одновременно (параллельные потоки).
  • -s: Важно, когда тестируемый сервис не использует свой стандартный номер порта.
  • -vV: Показывает подробную информацию о ходе атаки.
  • -o: Сохраняет ваши результаты в указанный файл для последующего просмотра.

Чтобы убедиться, что Hydra работает правильно, и увидеть все доступные опции, мы начнем с простой команды, которая отображает меню справки:

hydra -h
hydra help menu

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

Указание целевого хоста и порта

В этом шаге вы узнаете, как указать целевой хост и порт при использовании Hydra. Это необходимо для направления вашей атаки на правильный сервис. Представьте это как адрес на конверте - вам нужен правильный пункт назначения (IP/имя хоста) и конкретный почтовый ящик (порт), чтобы доставить ваше сообщение.

Основной формат для указания целевой информации в Hydra:

hydra [options] < service > :// < target > [:port]

Давайте разберем каждый компонент:

  • <service>: Протокол или сервис, который вы атакуете (например, ssh, ftp, http). Это говорит Hydra, какой тип аутентификации следует предпринять.
  • <target>: IP-адрес или имя хоста целевого сервера. Это как адрес здания, к которому вы пытаетесь получить доступ.
  • [:port]: Необязательный номер порта. Сервисы обычно работают на стандартных портах (например, 22 для SSH), но иногда их перемещают на другие порты для безопасности.

Для практики мы будем использовать тестовый SSH-сервер, работающий на localhost (127.0.0.1) на порту 22. Это означает, что мы атакуем нашу собственную машину, что безопасно для обучения. Попробуйте эту команду, чтобы проверить спецификацию цели:

hydra -vV -l testuser -p testpass ssh://127.0.0.1:22
hydra test command

Вот что происходит в этой тестовой команде:

  • -vV заставляет Hydra показывать подробный вывод, чтобы вы могли видеть, что происходит
  • -l testuser указывает тестовое имя пользователя
  • -p testpass предоставляет тестовый пароль
  • ssh://127.0.0.1:22 говорит Hydra предпринять попытку SSH-аутентификации на нашей локальной машине

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

Использование опций имени пользователя и пароля

В этом шаге мы рассмотрим, как Hydra обрабатывает учетные данные для аутентификации при атаках методом перебора (brute-force attacks). Понимание этих опций имеет решающее значение, поскольку Hydra необходимо знать, какие комбинации пробовать при попытке входа в целевую систему.

Hydra предоставляет три основных метода указания учетных данных, каждый из которых подходит для разных сценариев:

  1. Тестирование с использованием одной пары учетных данных (полезно для быстрой проверки):
hydra -l username -p password ssh://127.0.0.1

Эта команда пробует ровно одну комбинацию имени пользователя и пароля для SSH-сервиса.

  1. Тестирование на основе списков (обычно используется для атак по словарю):
hydra -L usernames.txt -P passwords.txt ssh://127.0.0.1

Здесь Hydra будет пробовать все возможные комбинации между именами пользователей в usernames.txt и паролями в passwords.txt.

  1. Файл парных учетных данных (когда имена пользователей и пароли напрямую связаны):
hydra -C creds.txt ssh://127.0.0.1

В этом случае используется файл, где каждая строка содержит имя пользователя и пароль, разделенные двоеточием (username:password).

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

echo -e "admin\nroot\ntestuser" > usernames.txt

Затем мы создадим список паролей с некоторыми слабыми паролями, которые часто встречаются в реальных системах:

echo -e "password\n123456\nadmin123" > passwords.txt

Теперь мы можем запустить тестовую команду с подробным выводом (-vV), чтобы увидеть, как Hydra обрабатывает эти файлы:

hydra -vV -L usernames.txt -P passwords.txt ssh://127.0.0.1
hydra test command

Флаги -vV заставляют Hydra показывать подробный вывод, чтобы вы могли наблюдать за ходом атаки и понимать, что происходит на каждом шаге.

Запуск простой команды SSH-атаки

В этом шаге вы объедините все предыдущие знания для выполнения полной SSH brute-force атаки с использованием Hydra. Мы будем использовать тестовый SSH-сервер, работающий на localhost (127.0.0.1), с учетными данными, которые мы подготовили ранее. Это практическое упражнение поможет вам понять, как Hydra систематически пробует различные комбинации имени пользователя и пароля для SSH-сервиса.

Прежде чем начать атаку, давайте убедимся, что наша целевая установка работает правильно. Мы попытаемся установить ручное SSH-соединение, чтобы подтвердить, что служба запущена:

ssh testuser@127.0.0.1

(Нажмите "Ctrl+C" при запросе пароля, чтобы вернуться к вашей сессии)

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

LabEx VM предоставляет пароль для labex в переменной окружения PASSWORD. Давайте добавим его в файл паролей для тестирования:

Важно: Выполните следующие команды в Desktop Interface, иначе вы не получите переменную окружения PASSWORD.

echo "labex" > usernames.txt
echo -e "$PASSWORD" >> passwords.txt
environment variable

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

hydra -vV -L usernames.txt -P passwords.txt -t 4 ssh://127.0.0.1
hydra test command

Давайте разберем, что делает каждый параметр:

  • -vV: Включает подробный вывод, чтобы вы могли видеть прогресс Hydra в режиме реального времени
  • -L usernames.txt: Указывает файл, содержащий потенциальные имена пользователей для попыток
  • -P passwords.txt: Указывает файл, содержащий потенциальные пароли для тестирования
  • -t 4: Устанавливает количество параллельных соединений (потоков) для использования
  • ssh://127.0.0.1: Определяет нашу цель как SSH-сервис на localhost

Команда будет систематически тестировать все комбинации из наших списков имен пользователей и паролей. В нашей контролируемой тестовой среде это намеренно не приведет к поиску действительных учетных данных, но вы увидите, как именно Hydra работает с комбинациями. Подробный вывод покажет вам каждую попытку, которую делает Hydra, помогая вам понять процесс brute-force (перебора).

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

Проверка вывода команды

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

Когда вы выполнили команду SSH-атаки в шаге 4, Hydra сгенерировала вывод, который выглядит следующим образом:

[DATA] attacking ssh://127.0.0.1:22/
[VERBOSE] Resolving addresses ... done
[STATUS] 80.00 tries/min, 80 tries in 00:01h, 19 to do in 00:01h
[22][ssh] host: 127.0.0.1   login: testuser   password: testpass
1 of 1 target successfully completed, 1 valid password found

Давайте разберем, что означает каждая часть:

  1. Строка [DATA] показывает целевой сервис и адрес, на который производится атака
  2. [STATUS] предоставляет статистику в реальном времени о ходе атаки
  3. Самая важная строка показывает любые найденные учетные данные в формате: [port][service] host: IP login: username password: password
  4. Последняя строка суммирует результаты атаки

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

hydra -vV -L usernames.txt -P passwords.txt -t 4 -o results.txt ssh://127.0.0.1

После завершения команды вы можете просмотреть сохраненные результаты с помощью:

cat results.txt
hydra test command

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

Итог

В этой лабораторной работе вы изучили основные команды и методы проведения атак для взлома паролей с использованием Hydra. Упражнения охватывали основной синтаксис команд, включая указание имени пользователя/пароля с помощью флагов -l/-L и -p/-P, настройку порта с помощью -s и базовую проверку установки Hydra.

Вы также попрактиковались в указании цели, используя формат <service>://<target>[:port] на практических примерах SSH-атак. Эти фундаментальные навыки позволяют вам выполнять основные операции Hydra, понимая правильную структуру команд и определение цели.