Добрый день, друзья!

Так что же такое patator? Это универсальная брутфорс утилита, имеющая на борту приличное количество модулей и возможность довольно гибкой настройки, в общем все что нужно чтобы упростить жизнь рядовому пентестеру. Patator представляет собой, как водится, питон скрипт, управление производится из cli.

Доступные модули на данный момент:

Patator включён в Kali Linux 2.0 из коробки, в версиях ниже устанавливаем с Github (утилита часто обновляется, поэтому искать актуальную версию нужно именно тут):

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

Рассмотрим использование на примере модуля smtp_login. Данный модуль предназначен для брутфорса обыкновенной аутентификации почтового протокола SMTP:

Вызываем модуль:

Как видим на скриншоте программа подскажет доступные опции выбранного модуля, в квадратных скобках написано значение по дефолту:

patator1

Итак, мы просканировали сеть и знаем, что на хосте 192.168.17.128 открыт smtp порт (25), попробовали подключиться к нему телнетом и убедились, что все ок.

Начинаем брутить.

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

Синтаксис своеобразен, но довольно прост. Если вы хотите указать список паролей, как в примере выше вы используете конструкцию password=FILE0 0=<путь до словаря>, так же для user. Например если мы хотим брутить список юзернеймов и по каждому юзеру прогонялся список паролей, то конструкция будет выглядеть, например, так:

Вообще каждый параметр модуля может быть заменен списком, например параметр host так же можно подтягивать из файлика, как и любой другой параметр модуля (но не глобальный параметр, о которых речь пойдет ниже).

Так же если SMTP-серверу нужно представиться командой helo\ehlo, в модуле присутствует такая возможность. Команда будет выглядеть например так:

Но в нашем случае в этом необходимости нет.

Запускаем наш пример:

patator2_1

Мы видим, что перебор запустился, он выдает нам статусы авторизации на smtp сервере, но проблема в том, что найти в этом списке успешную попытку авторизации будет крайне сложно.

В patator существует как параметры конкретного модуля (которые мы видели на скриношоте, когда вызывали модуль), так и глобальные, например конструкция -x ignore.

Данная конструкция может фильтровать по размеру ответа (-x ignore:size=57-74),  по статус кода ответа(-x ignore:code=200), по совпадению строки и регулярному выражению(-x ignore:fgrep=’some text or regexp’) и по их комбинациям, например -x ignore:code=500 -x ignore:fgrep=’Internal error’ или ignore:code=200,size=57-74.

Она-то и  уберет из выдачи, то что нам не нужно.  В нашем примере лучше всего будет сделать таким образом:

Теперь он будет висеть таким образом, пока не подберет валидную связку логин\пароль:

patator3

Если вы не знаете, что происходит с ним, беспокоитесь что он завис или просто хотите узнать сколько осталось ждать до полного прогона словарей нажимайте Enter и он покажет в каком статусе он сейчас:

patator5

Так же во время выполнения брута вы можете ввести h, нажать Enter  и он покажет доступные параметры в интерактивном режиме.

Успех! В столбце candidate пароль, который подошел к юзернейму Ololena. В случае если вы брутите по словарю логинов валидные комбинации будут показаны так же, но разделенные двоеточием, например Ololena:1q2w3e

patator4

Надеюсь статья будет полезна не только новичкам.  Если я где-то промахнулся, ошибся не стесняйтесь написать об этом.

Спасибо за внимание!