Игнорирование файлов восстановления Hydra

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

Введение

В этом лабораторном практикуме вы узнаете, как Hydra обрабатывает прерванные атаки и как эффективно их возобновить. Мы смоделируем прерванную атаку Hydra на SSH-сервис на localhost, создав простые списки имен пользователей и паролей, запустив атаку, а затем вручную прервав её с помощью Ctrl+C.

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

Создание тестовых файлов и запуск начальной атаки

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

Сначала перейдите в каталог вашего проекта:

cd ~/project

Теперь создадим простой список паролей. Используйте nano, чтобы создать файл с именем passwords.txt в текущем каталоге:

nano passwords.txt

Добавьте несколько распространённых паролей в файл, по одному паролю в строке. Например:

password
123456
qwerty

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

Далее создадим простой файл с именами пользователей. Используйте nano, чтобы создать файл с именем users.txt в том же каталоге:

nano users.txt

Добавьте в файл единственное имя пользователя:

root

Сохраните файл и выйдите из nano, используя те же шаги, что и раньше.

Теперь запустим полную атаку Hydra, чтобы увидеть нормальное поведение:

hydra -V -L users.txt -P passwords.txt localhost ssh

Рассмотрим этот командный ряд:

  • -V: Включает подробный режим, чтобы отобразить подробные попытки атаки
  • -L users.txt: Указывает Hydra использовать файл users.txt для имён пользователей.
  • -P passwords.txt: Указывает Hydra использовать файл passwords.txt для паролей.
  • localhost: Указывает целевой хост как localhost.
  • ssh: Указывает атакуемый сервис как SSH.

Вы должны увидеть вывод, похожий на этот:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 09:56:06
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 3 tasks per 1 server, overall 3 tasks, 3 login tries (l:1/p:3), ~1 try per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 3 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 3 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "qwerty" - 3 of 3 [child 0] (0/0)
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-05-30 09:56:09

Обратите внимание, что при нормальном завершении атаки Hydra не создаёт файл восстановления. Файлы восстановления создаются только при прерывании атаки.

Моделирование прерванной атаки

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

Для создания более длительной атаки, которую можно прервать, расширим список паролей. Откройте файл passwords.txt снова:

nano passwords.txt

Добавьте больше паролей, чтобы атака заняла больше времени:

password
123456
qwerty
admin
root
test
guest
user
login
pass
secret

Сохраните файл и выйдите из nano.

Теперь запустите атаку Hydra с более медленным темпом, чтобы её было легче прервать:

hydra -V -L users.txt -P passwords.txt -t 1 -W 2 localhost ssh

Дополнительные опции:

  • -V: Включает подробный режим, чтобы отобразить подробные попытки атаки
  • -t 1: Использовать только 1 задачу (более медленное выполнение)
  • -W 2: Ожидать 2 секунды между попытками подключения

ВАЖНО: Пока атака выполняется (вы должны видеть, как Hydra пытается подобрать различные комбинации имя пользователя/пароль), нажмите Ctrl+C, чтобы прервать её после нескольких попыток.

Вы должны увидеть вывод, похожий на этот:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:00:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 1 task per 1 server, overall 1 tasks, 11 login tries (l:1/p:11), ~11 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 11 [child 0] (0/0)
^C
[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written, you can resume with: hydra -R

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

Перезапуск с параметром -R и наблюдение за поведением

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

Для возобновления атаки выполните следующую команду в вашей консоли:

hydra -R

Эта команда использует только опцию -R:

  • -R: Сообщает Hydra возобновить ранее прерванную или аварийно завершенную сессию, используя файл восстановления.

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

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:05:00
[DATA] max 1 task per 1 server, overall 1 tasks, 9 login tries (l:1/p:9), ~9 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "qwerty" - 3 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "admin" - 4 of 11 [child 0] (0/0)
...

Обратите внимание, что Hydra возобновляет атаку с того места, где она была прервана (в этом примере, начиная с "qwerty" как 3-й попытки), а не с самого начала.

Использование параметра -I для игнорирования файлов восстановления

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

Сначала попробуем использовать -R, когда файл восстановления не существует, чтобы увидеть ошибку:

rm -f hydra.restore
hydra -V -R -L users.txt -P passwords.txt localhost ssh

Вы должны увидеть сообщение об ошибке:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
[ERROR] restore file (./hydra.restore) not found - No such file or directory

Теперь давайте снова создадим файл восстановления, прервав атаку:

hydra -V -L users.txt -P passwords.txt -t 1 -W 2 localhost ssh

Прервите её нажатием Ctrl+C после нескольких попыток, чтобы создать файл восстановления.

Теперь выполните следующую команду, чтобы проигнорировать файл восстановления:

hydra -V -I -L users.txt -P passwords.txt localhost ssh

Эта команда включает опцию -I:

  • -I: Сообщает Hydra проигнорировать существующий файл восстановления и не создавать новый.

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

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:10:00
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 3 tasks per 1 server, overall 3 tasks, 11 login tries (l:1/p:11), ~4 tries per task
[DATA] attacking ssh://localhost:22/
[ATTEMPT] target 127.0.0.1 - login "root" - pass "password" - 1 of 11 [child 0] (0/0)
[ATTEMPT] target 127.0.0.1 - login "root" - pass "123456" - 2 of 11 [child 0] (0/0)
...

Обратите внимание, что атака начинается с первого пароля ("password"), независимо от существующего файла восстановления.

Комбинирование параметров -I и -R

На этом шаге вы поймёте, что происходит при объединении опций -I и -R. Это сочетание демонстрирует, как Hydra обрабатывает конфликтующие инструкции.

Выполните следующую команду:

hydra -V -I -R -L users.txt -P passwords.txt localhost ssh

Эта команда включает обе опции:

  • -V: Включает подробный режим, показывающий подробные попытки атаки
  • -I: Игнорировать существующие файлы восстановления
  • -R: Возобновить атаку из файла восстановления

Вы должны увидеть сообщение об ошибке, подобное этому:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

[INFORMATION] reading restore file ./hydra.restore
[ERROR] restore file (./hydra.restore) not found - No such file or directory

Это происходит потому, что:

  1. Опция -R сообщает Hydra искать файл восстановления.
  2. Опция -I сообщает Hydra игнорировать файлы восстановления.
  3. При использовании обоих опций вместе Hydra всё равно пытается прочитать файл восстановления из-за -R, но если файла не существует или он игнорируется из-за -I, это приводит к ошибке.

Это демонстрирует, что опции -I и -R являются конфликтующими и не должны использоваться вместе. Вместо этого:

  • Используйте -R в одиночку для возобновления атаки из файла восстановления.
  • Используйте -I в одиночку для игнорирования файлов восстановления и начала новой атаки.
  • Не используйте ни одну из них для запуска обычной атаки.

Резюме

В этом лабораторном практикуме вы изучили, как Hydra обрабатывает прерванные атаки и файлы восстановления. Ключевые моменты включают:

  1. Файлы восстановления создаются только при прерывании атаки — Обычные завершенные атаки не генерируют файлы восстановления.
  2. Опция -R возобновляет прерванные атаки — Она считывает файл hydra.restore, чтобы продолжить атаку с того места, где она была остановлена.
  3. Опция -I игнорирует файлы восстановления — Она заставляет Hydra начать новую атаку, игнорируя любые данные предыдущей сессии.
  4. Сочетание -I и -R создаёт конфликт — Эти опции имеют противоположные цели и не должны использоваться вместе.
  5. Правильное прерывание — ключевой момент — Чтобы проверить функциональность восстановления, необходимо фактически прервать атаку нажатием Ctrl+C, а не допустить её нормального завершения.

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