Введение
В этом лабораторном практикуме вы узнаете, как 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
Это происходит потому, что:
- Опция
-Rсообщает Hydra искать файл восстановления. - Опция
-Iсообщает Hydra игнорировать файлы восстановления. - При использовании обоих опций вместе Hydra всё равно пытается прочитать файл восстановления из-за
-R, но если файла не существует или он игнорируется из-за-I, это приводит к ошибке.
Это демонстрирует, что опции -I и -R являются конфликтующими и не должны использоваться вместе. Вместо этого:
- Используйте
-Rв одиночку для возобновления атаки из файла восстановления. - Используйте
-Iв одиночку для игнорирования файлов восстановления и начала новой атаки. - Не используйте ни одну из них для запуска обычной атаки.
Резюме
В этом лабораторном практикуме вы изучили, как Hydra обрабатывает прерванные атаки и файлы восстановления. Ключевые моменты включают:
- Файлы восстановления создаются только при прерывании атаки — Обычные завершенные атаки не генерируют файлы восстановления.
- Опция
-Rвозобновляет прерванные атаки — Она считывает файлhydra.restore, чтобы продолжить атаку с того места, где она была остановлена. - Опция
-Iигнорирует файлы восстановления — Она заставляет Hydra начать новую атаку, игнорируя любые данные предыдущей сессии. - Сочетание
-Iи-Rсоздаёт конфликт — Эти опции имеют противоположные цели и не должны использоваться вместе. - Правильное прерывание — ключевой момент — Чтобы проверить функциональность восстановления, необходимо фактически прервать атаку нажатием
Ctrl+C, а не допустить её нормального завершения.
Это понимание имеет решающее значение для управления длительными атаками Hydra в реальных сценариях, где может потребоваться приостановить и возобновить атаки или обеспечить новые запуски по мере необходимости.


