В этом лабораторном занятии мы научимся восстанавливать предыдущую сессию Hydra после прерывания. Это достигается путем имитации прерванной атаки Hydra на службу ssh на localhost с использованием простого списка паролей. Затем мы используем опцию -R для восстановления сессии и проверяем, что атака возобновляется с последней точки.
В рамках лабораторной работы необходимо создать список паролей, сконструировать команду Hydra для атаки на службу ssh, прервать атаку с помощью Ctrl+C и затем восстановить сессию с использованием опции -R. Наконец, мы рассмотрим, как изменить восстановленную сессию с помощью новой опции.
На этом этапе мы имитируем прерванную атаку Hydra. Это важный этап для понимания того, как использовать опцию -R для восстановления сессии. Мы запустим атаку Hydra, а затем вручную прервем ее, имитируя реальную ситуацию, когда атака может быть остановлена из-за сетевых проблем или других непредвиденных обстоятельств.
Сначала давайте предварительно просмотрим простой список паролей. Этот список будет содержать несколько распространенных паролей, которые Hydra попытается использовать.
cd ~/project
head -n 5 passwords.txt
Добавьте следующие пароли в файл:
password
123456
qwerty
admin
1234567890
Далее нам нужна цель для атаки. В демонстрационных целях мы будем использовать службу ssh на localhost. Убедитесь, что служба ssh запущена на вашей виртуальной машине LabEx. Если она не запущена, обычно вы можете запустить ее с помощью команды sudo service ssh start. Однако, так как это Docker-контейнер, вы, возможно, не сможете использовать systemctl или service. В этом случае вы можете пропустить фактическую атаку и сосредоточиться только на создании команды и ее прерывании. Для данного упражнения мы предполагаем, что служба ssh запущена.
sudo service ssh start
sudo service ssh status
Теперь давайте сконструируем команду Hydra. Мы будем использовать модуль ssh, укажем имя пользователя labex, используем наш файл passwords.txt и укажем цель localhost. Мы также добавим опцию -t 1, чтобы ограничить количество одновременных задач до 1, что упростит наблюдение за прерыванием.
Эта команда запустит атаку Hydra на службу ssh на localhost, пытаясь войти в систему как пользователь labex с использованием паролей из файла ~/project/passwords.txt.
Позвольте атаке работать несколько секунд (например, 5 - 10 секунд). Во время ее выполнения нажмите Ctrl+C, чтобы прервать атаку.
Вы должны увидеть вывод, похожий на следующий (точный вывод может отличаться в зависимости от скорости вашей системы и количества паролей, которые 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-04-02 13:56:44
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[ATTEMPT] target localhost - login "labex" - pass "password" - 1 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "123456" - 2 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
Символ ^C означает, что вы нажали Ctrl+C, чтобы прервать процесс. Hydra перестанет пытаться подобрать пароли.
Это прерывание имитирует ситуацию, когда атака неожиданно останавливается. На следующем этапе мы узнаем, как использовать опцию -R для возобновления этой прерванной сессии.
Восстановление сессии с помощью опции -R
На предыдущем этапе мы имитировали прерванную атаку Hydra. Теперь мы используем опцию -R для восстановления сессии с того места, где она была прервана. Hydra автоматически сохраняет свой прогресс в файл .restore в текущем каталоге. Опция -R сообщает Hydra прочитать этот файл и продолжить атаку.
Для восстановления сессии просто запустите ту же команду Hydra, что и раньше, но добавьте опцию -R:
Теперь Hydra прочитает файл hydra.restore (который создается автоматически) и возобновит атаку с того места, где она была прервана. Вы должны увидеть, как Hydra продолжает пытаться подобрать пароли из файла ~/project/passwords.txt.
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
[WARNING] options after -R are now honored (since v8.6)
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:57:58
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://labex@127.0.0.1:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[RE-ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "admin" - 4 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "1234567890" - 5 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
Позвольте атаке работать еще несколько секунд. Вы, возможно, заметите, что Hydra пропускает пароли, которые он уже пытался использовать на предыдущем этапе.
Опция -R чрезвычайно полезна в ситуациях, когда у вас большой список паролей или медленное сетевое соединение. Она позволяет вам возобновить атаку без необходимости начинать с начала, экономя ваше время и ресурсы.
Важно отметить, что файл hydra.restore автоматически обновляется по мере выполнения атаки Hydra. Если вы снова прервете атаку, вы можете использовать ту же команду с опцией -R для возобновления атаки с новой точки прерывания.
Резюме
В этом лабораторном занятии мы имитировали прерванную атаку Hydra на службу SSH на локальном хосте (localhost), чтобы понять, как восстановить сессию. Мы создали список паролей и запустили атаку Hydra на пользователя 'labex', а затем вручную прервали процесс с помощью клавиши Ctrl+C.
Это прерывание позволило нам подготовиться к следующим этапам, где мы узнаем, как использовать опцию -R для восстановления прерванной сессии и продолжения атаки с того места, где она была прервана, а также как модифицировать восстановленную сессию с использованием новых параметров.