Найти в Дзене

Атака по словарю с помощью Hydra.

Если у Вас уже есть словарь, который Вы самостоятельно сгенерировали или скачали с интернета, то возникает вопрос, что делать с ним.
В данной ситуации есть множество решений, и об одном из них я хотел бы поведать.
При наличии словаря, можно запустить атаку по словарю соответственно, для того, чтобы совершить подбор логина и пароля. Мы можем получить доступ к сайту цели, и я буду использовать

Если у Вас уже есть словарь, который Вы самостоятельно сгенерировали или скачали с интернета, то возникает вопрос, что делать с ним.
В данной ситуации есть множество решений, и об одном из них я хотел бы поведать.

При наличии словаря, можно запустить атаку по словарю соответственно, для того, чтобы совершить подбор логина и пароля. Мы можем получить доступ к сайту цели, и я буду использовать инструмент, который называется “Hydra”. С его помощью можно брутфорсить как фактически любой сайт, так и получать доступ к SSH, FTP, роутерам и т.д.

Давайте перейдем к практике и рассмотрим этот инструмент. Введем в терминале команду “hydra -help”:

-2

Внимательно изучите данную инструкцию. В принципе сложного ничего нет в этом инструменте, и это кажется на первый взгляд, что все запутанно. Обратите внимание на синтаксис, т.е. то, с чего можно начинать работу с “Hydra”:

-3

Как видим, начинается команда со слова “hydra”, так и запишем в терминале. Затем указываем сервис, который будем атаковать. В моем случае, я хотел бы получить доступ к тестовой странице авторизации. Ее адрес будет выглядеть как, “http://10.0.2.7/mutillidae/index.php?page=login.php”. Как Вы догадались - это уязвимая машина, которая называется “Metasploitable 2”, с веб-приложением “Mutilidae”:

-4

Продолжаем заполнять команду в терминале, и на очереди идет ip-адрес. Он у меня выглядит как “10.0.2.7”, и запишем его после имени инструмента. Если мы детально изучим синтаксис, то увидим, что следующей записью идет логин и пароль:

-5

Рассмотрим логин, и у нас есть выбор между единичным указанием логина, с помощью опции “-l”, и выбора файла с логинами, и это опция “-L”. В нашей ситуации мы не будем использовать список имен пользователей, а будем использовать одно имя “admin”. Запись будет выглядеть следующим образом:

-6

В случае с опцией выбора паролей, все аналогично логинам. Иными словами опция “-p” означает выбор одного пароля, а опция “-P” - выбор файла с паролями.

Сейчас мне нужно отредактировать файл с паролями, чтобы протестировать инструмент. Пароль от этой учетной записи я знаю, и добавлю его в середину словаря, который ранее создавал.

Если не знаете, как создавать словари, то посмотрите видео у меня на канале Ютуб (https://www.youtube.com/watch?v=AaT3WbxeaUs) или почитайте статью.

Пароль выглядит как “adminpass”, и мне нужно его внести в существующий словарь. Он у меня лежит на рабочем столе и называется как “passwords.txt”. Я его открою и внесу в середину словаря пароль “adminpass”:

-7

Теперь мне нужно прописать в нашей команде опцию “-P” с указанием пути к словарю. Команда выглядит как “-P /root/ Desktop/ passwords.txt”:

-8

После этого нам нужно указать сервис, который инструмент будет атаковать. Это то место, где мы можем ошибиться, но продолжим.

Обратите внимание на справку, где указаны все поддерживаемые сервисы:

-9

В моем случае меня интересует сервис “http[s]” и соответствующий метод с формой. Это можно проверить с помощью браузера, посмотрев код с помощью инспектора кода:

-10

Как видим, метод, который используется на сайте – это “Post”, и если мы взгянем на url в браузере, то убедимся, что это “http”, а не “https”.

Для того, чтобы разобрать дальнейшую запись в команде, нам нужно ввести в терминале следующую запись “hydra -U http-post-form”:

-11

Я заранее выделил пример, который нам будет нужен, но прошу ознакомиться с описанием этих параметров. Скопирую этот пример в блокнот для дальнейшего редактирования:

-12

Для начала нам нужно указать страницу, с которой мы будем осуществлять брутфорс. У меня это “/mutillidae/index.php?page=login.php”.

Далее указываем параметр “user” и параметр “pass”, а также сообщение, которое выводится в случае, если был введен не верный пароль.

Редактируем наш пример, и у меня получается запись вида: “/mutillidae/index.php?page=login.php:user=^USER^&pass=^PASS^:incorrect”.

Нам нужно изменить параметры “user” и “pass”. Это параметры, которые отправляются веб-приложению, и мы не знаем как они называются. Для того, чтобы узнать это, нам понадобится инструмент “BurpSuite”.

Для начала нужно запустить Burp и настроить браузер. Я уже неоднокрано показывал, как это настроить, но повторю еще раз:

-13
-14

Далее переходим в BurpSuite на вкладку Proxy, далее Options:

-15

Ставим ip-адрес: 127.0.0.1 и порт: 8080.

Переходим на вкладку “Intercept” и включаем опцию “Intercept is on”:

-16

Вводим произвольный логин и пароль:

-17

Переходим на вкладку “Headers” в BurpSuite:

-18

Как видим, передаются некие параметры, в частности “username” и “login”. Их нужно поменять на значения из примера. Запись примет вид: “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^:incorrect”:

-19

Не менее важная последняя часть, которую мы перехватили:

-20

Копируем эту часть параметров и вставляем в нашу запись, получаем в итоге “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:incorrect”:

-21

Последнее, что нам нужно отредактировать – это неудачные попытки входа. Это можно указать с помощью буквы “F”. Иными словами, в случае неудачной попытки авторизации, будет появляться текстовое предупреждение. Наша запись будет иметь вид “/mutillidae/index.php?page=login.php:username=^USER^&password=^PASS^&login-php-submit-button=Login:F=incorrect”.

Отключим “Intercept” в BurpSuite и перейдем на сайт. Можно заметить запись в случае неудачной авторизации, и она выглядит как “Not Logged In”:

-22

Эту запись и добавим в конец нашей команды. Получим “/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"”:

-23

Нужно добавить тип сервиса, чтобы не было ошибки. Корректируем запись, добавив “http-post-form”:

-24

Укажем еще опцию “-V”, для того, чтобы выводить попытки авторизации этого инструмента:

-25

Жмем “Enter” и видим вывод попыток авторизации:

-26

По итогу брутфорса мы получаем валидный пароль, который я изначально указывал как “adminpass”:

-27

Добавлю, что можно приостанавливать работу этого инструмента, и затем восстанавливать перебор, с помощью опции “-R”.

Так на этом все. Всем хорошего дня.