Если у Вас уже есть словарь, который Вы самостоятельно сгенерировали или скачали с интернета, то возникает вопрос, что делать с ним.
В данной ситуации есть множество решений, и об одном из них я хотел бы поведать.
При наличии словаря, можно запустить атаку по словарю соответственно, для того, чтобы совершить подбор логина и пароля. Мы можем получить доступ к сайту цели, и я буду использовать инструмент, который называется “Hydra”. С его помощью можно брутфорсить как фактически любой сайт, так и получать доступ к SSH, FTP, роутерам и т.д.
Давайте перейдем к практике и рассмотрим этот инструмент. Введем в терминале команду “hydra -help”:
Внимательно изучите данную инструкцию. В принципе сложного ничего нет в этом инструменте, и это кажется на первый взгляд, что все запутанно. Обратите внимание на синтаксис, т.е. то, с чего можно начинать работу с “Hydra”:
Как видим, начинается команда со слова “hydra”, так и запишем в терминале. Затем указываем сервис, который будем атаковать. В моем случае, я хотел бы получить доступ к тестовой странице авторизации. Ее адрес будет выглядеть как, “http://10.0.2.7/mutillidae/index.php?page=login.php”. Как Вы догадались - это уязвимая машина, которая называется “Metasploitable 2”, с веб-приложением “Mutilidae”:
Продолжаем заполнять команду в терминале, и на очереди идет ip-адрес. Он у меня выглядит как “10.0.2.7”, и запишем его после имени инструмента. Если мы детально изучим синтаксис, то увидим, что следующей записью идет логин и пароль:
Рассмотрим логин, и у нас есть выбор между единичным указанием логина, с помощью опции “-l”, и выбора файла с логинами, и это опция “-L”. В нашей ситуации мы не будем использовать список имен пользователей, а будем использовать одно имя “admin”. Запись будет выглядеть следующим образом:
В случае с опцией выбора паролей, все аналогично логинам. Иными словами опция “-p” означает выбор одного пароля, а опция “-P” - выбор файла с паролями.
Сейчас мне нужно отредактировать файл с паролями, чтобы протестировать инструмент. Пароль от этой учетной записи я знаю, и добавлю его в середину словаря, который ранее создавал.
Если не знаете, как создавать словари, то посмотрите видео у меня на канале Ютуб (https://www.youtube.com/watch?v=AaT3WbxeaUs) или почитайте статью.
Пароль выглядит как “adminpass”, и мне нужно его внести в существующий словарь. Он у меня лежит на рабочем столе и называется как “passwords.txt”. Я его открою и внесу в середину словаря пароль “adminpass”:
Теперь мне нужно прописать в нашей команде опцию “-P” с указанием пути к словарю. Команда выглядит как “-P /root/ Desktop/ passwords.txt”:
После этого нам нужно указать сервис, который инструмент будет атаковать. Это то место, где мы можем ошибиться, но продолжим.
Обратите внимание на справку, где указаны все поддерживаемые сервисы:
В моем случае меня интересует сервис “http[s]” и соответствующий метод с формой. Это можно проверить с помощью браузера, посмотрев код с помощью инспектора кода:
Как видим, метод, который используется на сайте – это “Post”, и если мы взгянем на url в браузере, то убедимся, что это “http”, а не “https”.
Для того, чтобы разобрать дальнейшую запись в команде, нам нужно ввести в терминале следующую запись “hydra -U http-post-form”:
Я заранее выделил пример, который нам будет нужен, но прошу ознакомиться с описанием этих параметров. Скопирую этот пример в блокнот для дальнейшего редактирования:
Для начала нам нужно указать страницу, с которой мы будем осуществлять брутфорс. У меня это “/mutillidae/index.php?page=login.php”.
Далее указываем параметр “user” и параметр “pass”, а также сообщение, которое выводится в случае, если был введен не верный пароль.
Редактируем наш пример, и у меня получается запись вида: “/mutillidae/index.php?page=login.php:user=^USER^&pass=^PASS^:incorrect”.
Нам нужно изменить параметры “user” и “pass”. Это параметры, которые отправляются веб-приложению, и мы не знаем как они называются. Для того, чтобы узнать это, нам понадобится инструмент “BurpSuite”.
Для начала нужно запустить Burp и настроить браузер. Я уже неоднокрано показывал, как это настроить, но повторю еще раз:
Далее переходим в BurpSuite на вкладку Proxy, далее Options:
Ставим ip-адрес: 127.0.0.1 и порт: 8080.
Переходим на вкладку “Intercept” и включаем опцию “Intercept is on”:
Вводим произвольный логин и пароль:
Переходим на вкладку “Headers” в BurpSuite:
Как видим, передаются некие параметры, в частности “username” и “login”. Их нужно поменять на значения из примера. Запись примет вид: “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^:incorrect”:
Не менее важная последняя часть, которую мы перехватили:
Копируем эту часть параметров и вставляем в нашу запись, получаем в итоге “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:incorrect”:
Последнее, что нам нужно отредактировать – это неудачные попытки входа. Это можно указать с помощью буквы “F”. Иными словами, в случае неудачной попытки авторизации, будет появляться текстовое предупреждение. Наша запись будет иметь вид “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:F=incorrect”.
Отключим “Intercept” в BurpSuite и перейдем на сайт. Можно заметить запись в случае неудачной авторизации, и она выглядит как “Not Logged In”:
Эту запись и добавим в конец нашей команды. Получим “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:F=Not Logged In”.
Нам нужно объединить часть команды с начальной записью. Конечная команда будет иметь вид “hydra 10.0.2.7 -l admin -P /root/Desktop/passwords.txt "/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:F=Not Logged In"”:
Нужно добавить тип сервиса, чтобы не было ошибки. Корректируем запись, добавив “http-post-form”:
Укажем еще опцию “-V”, для того, чтобы выводить попытки авторизации этого инструмента:
Жмем “Enter” и видим вывод попыток авторизации:
По итогу брутфорса мы получаем валидный пароль, который я изначально указывал как “adminpass”:
Добавлю, что можно приостанавливать работу этого инструмента, и затем восстанавливать перебор, с помощью опции “-R”.
Так на этом все. Всем хорошего дня.