Перебор паролей в атаках Hydra

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

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

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/single_username("Single Username Attack") hydra/HydraGroup -.-> hydra/single_password("Single Password Attack") hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") subgraph Lab Skills hydra/password_creation -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} hydra/username_creation -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} hydra/single_username -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} hydra/single_password -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} hydra/target_ip -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} hydra/target_service -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} hydra/ssh_attack -.-> lab-550771{{"Перебор паролей в атаках Hydra"}} end

Подготовка списков имен пользователей и паролей

На этом этапе мы создадим два важных файла: список имен пользователей и список паролей. Эти списки будут использоваться Hydra для попыток входа по SSH. Создание этих списков позволяет нам систематически проверять различные комбинации имен пользователей и паролей на нашей цели.

Сначала создадим список имен пользователей. Мы будем использовать текстовый редактор nano для создания файла с именем usernames.txt в директории ~/project.

nano ~/project/usernames.txt

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

root
admin
test
user
ubuntu

Нажмите Ctrl+O, чтобы сохранить файл, затем нажмите Enter, чтобы подтвердить имя файла, и, наконец, нажмите Ctrl+X, чтобы выйти из nano.

Далее мы создадим список паролей. Опять же, мы будем использовать nano для создания файла с именем passwords.txt в директории ~/project.

nano ~/project/passwords.txt

Добавьте в файл следующие пароли. Помните, что это только примеры.

password
123456
qwerty
secret
ubuntu

Нажмите Ctrl+O, чтобы сохранить файл, затем нажмите Enter, чтобы подтвердить имя файла, и, наконец, нажмите Ctrl+X, чтобы выйти из nano.

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

cat ~/project/usernames.txt

Вы должны увидеть список имен пользователей, которые вы ввели.

root
admin
test
user
ubuntu

Аналогично, проверьте список паролей:

cat ~/project/passwords.txt

Вы должны увидеть список паролей, которые вы ввели.

password
123456
qwerty
secret
ubuntu

Эти файлы, usernames.txt и passwords.txt, теперь готовы к использованию с Hydra на следующих этапах.

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

На этом этапе мы выполним базовую SSH-атаку с использованием Hydra и списков имен пользователей и паролей, которые мы создали на предыдущем этапе. Это продемонстрирует поведение Hydra по умолчанию при переборе имен пользователей и паролей.

Перед запуском атаки важно понять базовый синтаксис команды Hydra:

hydra [options] <target> <service> [additional options]
  • hydra: Команда для запуска инструмента Hydra.
  • [options]: Различные параметры для настройки атаки, например, указание списков имен пользователей и паролей.
  • <target>: IP-адрес или имя хоста целевого SSH-сервера. В рамках этого лабораторного занятия мы будем использовать 127.0.0.1 (локальный хост) в качестве цели. Важно: В реальной ситуации вы должны заменить это на фактический IP-адрес сервера, который вы тестируете. Атака на системы без разрешения является незаконной.
  • <service>: Сервис, на который будет произведена атака (например, ssh, ftp, http). В нашем случае это ssh.
  • [additional options]: Параметры, специфичные для сервиса.

Теперь запустим стандартную SSH-атаку. Мы будем использовать опцию -L для указания списка имен пользователей и опцию -P для указания списка паролей.

hydra -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh

Эта команда сообщает Hydra:

  • -L ~/project/usernames.txt: Использовать файл usernames.txt в директории ~/project в качестве списка имен пользователей.
  • -P ~/project/passwords.txt: Использовать файл passwords.txt в директории ~/project в качестве списка паролей.
  • 127.0.0.1: Нацелиться на SSH-сервис, работающий на локальном хосте.
  • ssh: Указать, что мы атакуем SSH-сервис.

Выполните команду. Теперь Hydra попытается войти в SSH-сервис на 127.0.0.1, используя каждое имя пользователя из файла usernames.txt и каждый пароль из файла passwords.txt. По умолчанию Hydra сначала перебирает имена пользователей, пытаясь каждый пароль для одного имени пользователя, прежде чем перейти к следующему имени.

Вывод команды покажет, какие попытки входа выполняются. Вероятно, будут отображаться многие сообщения "login failed" (неудачная попытка входа). Если удачная попытка входа будет найдена, будут отображены имя пользователя и пароль. Поскольку мы используем слабые пароли и нацелены на локальный хост, возможно, удастся войти.

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

Запуск с опцией -u для первичного перебора паролей

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

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

Для использования опции -u мы просто добавляем ее в нашу команду Hydra.

hydra -u -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh

Эта команда сообщает Hydra:

  • -u: Сначала перебирать пароли.
  • -L ~/project/usernames.txt: Использовать файл usernames.txt в директории ~/project в качестве списка имен пользователей.
  • -P ~/project/passwords.txt: Использовать файл passwords.txt в директории ~/project в качестве списка паролей.
  • 127.0.0.1: Нацелиться на SSH-сервис, работающий на локальном хосте.
  • ssh: Указать, что мы атакуем SSH-сервис.

Выполните команду. Теперь Hydra попытается войти в SSH-сервис на 127.0.0.1. На этот раз он попробует первый пароль из файла passwords.txt для каждого имени пользователя из файла usernames.txt, прежде чем перейти к следующему паролю.

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

Как и раньше, вывод покажет, какие попытки входа выполняются. Вероятно, будут отображаться многие сообщения "login failed" (неудачная попытка входа). Если удачная попытка входа будет найдена, будут отображены имя пользователя и пароль.

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

Сравнение порядка попыток входа

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

Для эффективного сравнения порядка попыток мы можем использовать команду script для записи вывода обеих команд Hydra и последующего анализа записанного вывода.

Сначала запишем вывод стандартной команды Hydra (без опции -u) в файл с именем default_attack.log в директории ~/project.

script -c "hydra -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh" ~/project/default_attack.log

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

Далее запишем вывод команды Hydra с опцией -u в файл с именем u_attack.log в директории ~/project.

script -c "hydra -u -L ~/project/usernames.txt -P ~/project/passwords.txt 127.0.0.1 ssh" ~/project/u_attack.log

Аналогично, эта команда запишет вывод команды Hydra с опцией -u в файл u_attack.log. Введите exit, чтобы завершить сессию script после завершения работы Hydra.

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

head ~/project/default_attack.log

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

Далее просмотрите первые несколько строк файла u_attack.log:

head ~/project/u_attack.log

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

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

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

Резюме

В этом лабораторном занятии мы начали с подготовки необходимых файлов для атаки на SSH с использованием Hydra. В частности, мы создали файлы usernames.txt и passwords.txt в директории ~/project с помощью текстового редактора nano. Эти файлы содержат списки возможных имен пользователей и паролей, которые Hydra будет использовать для попыток входа в SSH. Затем мы использовали команду cat для проверки содержимого обоих файлов, чтобы убедиться, что они были созданы правильно и содержат нужные списки.

Следующим этапом было выполнение стандартной атаки на SSH с использованием Hydra и созданных списков имен пользователей и паролей. Это продемонстрировало стандартное поведение Hydra при переборе для взлома доступа к SSH.