Hydra kali linux как пользоваться

Обновлено: 07.07.2024

Время чтения: 13 мин.

Внимание! Данный пост был опубликован более года назад и, возможно, уже утратил свою былую актуальность. Но это не точно.

Статья носит носит строго познавательный характер, за применение кем либо описанных в статье методик автор ответственности не несет.

В тот момент, когда пинтест заходит в тупик - одним из крайних аргументов в тесте на проникновение является подбор паролей. Сервисы, к которым можно применить данный метод атаки - самые различные. А как следствие - различны и протоколы, и форматы обращений. Надо бы как то унифицировать инструменты для решения этой задачи - не хорошо под каждый новый случай писать новый брутер своими ручками.

Установка

Пользователям CentOS будет достаточно подключить репозиторий epel и выполнить:

Или для сборки из сорсов (актуально для linux, *bsd, solaris и т.д., а так же MacOS и мобильных системах, базирующихся на Linux):

По умолчанию бинарники гидры будут в директории /usr/local/bin/ , ежели что пропиши этот путь в

/.bash_profile , дописав его в переменной PATH .

При сборке из сорсов мы разумеется получаем самую свежую и сочную версию. В репах как правило лежит уже несколько устаревшая.

И ещё более простой вариант - использовать дистрибутив Kali Linux - там уже всё есть.

Словари

Брутить можно как с помощью подбора посимвольно, так и с помощью подготовленного словаря наиболее часто используемых паролей. Таки рекомендую первым делом попытаться подобрать пароль со словарем, и уже если и этот способ не увенчался успехом - переходить к прямому бруту посмивольно.

Где взять словари? Например, можно пошариться на этой странице или глянуть сразу здесь - имена архивов более чем говорящие. От себя лишь скажу, что использую в основном 3 словаря:

  • Очень маленький и очень популярный (топ первые 500 паролей)
  • Второй побольше - на 5000 паролей
  • Третий от Cain & Abel на

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

В качестве бонуса можешь забрать готовые списки паролей (top500; top4000; cain&abel (300k); пароли от яндекса (700k); пароли от маил.ру (2740k); маил.ру + яндекс (3300k)):

В общем, считаем что словари у тебя готовы к применению. Как пользоваться гидрой?

Я есть Грут Брут

Какие настройки и возможности предоставляет нам гидра? Давай рассмотрим флаги запуска по порядку:

Гидра - фас!

Теперь давай рассмотрим пример работы на определенных целях. Все IP - вымышленные, соответствие с реальными - чистейшей воды совпадение ;)

Ахтунг! Юзай proxy/socks/vpn для безопасности собственной задницы. Так, сугубо на всякий случай

Basic Authentication

И у нас стоит задача вспомнить наш же забытый пароль ;) Давай определимся с тем, какие данные у нас есть:

Пабам - и через 1 секунду стандартный пароль admin успешно сбручен!

Брутить вебморду микротика можно, но проходит это значительно медленнее, чем например брутить ftp. А мы знаем, что стандартный логин на микротиках admin , и используется один пароль ко всем сервисам. Получив пароль для ftp - получим доступ ко всему остальному:

  • IP сервера 178.72.83.246
  • Сервис ftp
  • Стандартный логин admin
  • Порт, на котором работает ftp сервер 21 (стандартный)

И наблюдаем процесс подбора (

900 паролей в минуту):

Спустя каких то 30 секунд ещё один словарный пароль adminadmin был успешно подобран. После этого успешно логинимся в веб-панель:

Выясняем контакты администратора, сообщаем ему о наличии уязвимости, и больше ничего не делаем ;)

Веб - авторизация

Например - мы забыли пароль к роутеру, который использует веб-авторизацию. Т.е. не просто “выплывающее окошко браузера”, а полноценные поля для ввода пары логин:пароль. Давай попытаемся подобрать пароль и к нему. В рассматриваемом примере это OpenWrt:

Открываем панель отладки браузера ( F12 в Chromium-based браузерах), вкладка Network и отмечаем галочкой Preserve log . После этого вводим пароль, например, test_passw0rd (логин у нас уже введен), жмем кнопку “Login”, и смотрим в консоли что и куда уходит:

Отлично, теперь давай подытожим те данные, которыми мы располагаем:

Приступим к запуску гидры:

  1. Путь до скрипта, который обрабатывает процесс аутентификации. В нашем случае это /cgi-bin/luci
  2. Строка, которая передается методом POST, в которой логин и пароль заменены на ^USER^ и ^PASS^ соответственно. У нас это username=^USER^&password=^PASS^
  3. Строка, которая присутствует на странице при неудачной аутентификации. При её отсутствии гидра поймет что мы успешно вошли. В нашем случае это Invalid username

Подбор в моем случае идет довольно медленно (

16 паролей в минуту), и связано это в первую очередь с качеством канала и способностью железки обрабатывать запросы. Как мы видим - ей довольно тяжело это делать:

И видим что процесс успешно запустился:

И понимая безысходность данного подхода останавливаем процесс, возвращаясь к перебору по большому словарю.

Кстати, для запуска hydra в фоне с продолжением её работы после того, как ты отключишься от ssh можно поступить следующим образом:

Вместо заключения

Не ленись настраивать на своих сервисах/железках защиту от брутфорса. Не используй фуфлыжные пароли. Не расценивай данный материал как призыв к каким-либо действиям. Используй для тестирования своих сервисов.

Список инструментов для тестирования на проникновение и их описание

Описание Hydra

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

Программа прекрасно компилируется и работает на Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10) и OSX.

Автор: Van Hauser, Roland Kessler

Справка по Hydra

Руководство по Hydra

Поддерживаемые службы (это же название модулей):

Дополнительная информация об опции -x

Сгенерировать пароли длинной от 3 до 5, состоящие из букв нижнего регистра:

Сгенерировать пароли длинной от 5 до 8, состоящие из букв верхнего регистра и цифр:

Сгенерировать пароли длинной от 1 до 3 символов, содержащих только слэши:

Сгенерировать пароли длинной 5 символов, которые состоят только из /%,.-

Информация о дополнительных параметрах для модулей Hydra, в которых они требуются

cisco

Модуль cisco опционально принимает ключевое слово ENTER, затем он отправляет начальное ENTER при подключении к службе.

cisco-enable

Модуль cisco-enable опционально принимает пароль входа для устройства cisco.

Примечание: если используется AAA аутентификация, используйте опцию -l для имени пользователя и опциональный параметр для пароля пользователя.

cvs

Модуль cvs опционально принимает имя репозитория для атаки, по умолчанию это "/root"

firebird

Модуль firebird опционально принимает имя базы данных для атаки, по умолчанию это "C:\Program Files\Firebird\Firebird_1_5\security.fdb"

Модули требует страницу для аутентификации.

Модули требует страницу и параметры веб-формы.

По умолчанию этот модуль настроен следовать максимум пяти редиректам подряд. Он каждый раз собирает новое куки с того же URL без переменных. Параметр принимает три разделённых ":" значения, плюс опциональные значения.

(Примечание: если вам нужно двоеточие в строке опций в качестве значения, экранируйте его с "\:", но не экранируйте "\" с "\\".)

  • Первое — это страница на сервере (URL) на которую отправляются данные методом GET или POST.
  • Второе — это переменные POST/GET получаемые либо из браузера, либо прокси и т. д. Имена пользователей и пароли будут подставлены вместо заполнителей "^USER^" и "^PASS^" (ПАРАМЕТРЫ ФОРМЫ).
  • Третье — это строка, которая проверяет неверный вход (по умолчанию). Перед условием неверного входа должна стоять "F=", перед условиям успешного входа должна стоять "S=". Это то место, где больше всего людей ошибаются. Вы должны проверить веб-приложение, на что похожа строка, которую он выдаёт при неуспешном входе и указать её в этом параметре!

Следующие параметры опциональны:

задаёт другую страницу с которой собрать начальные кукиз.

^USER^ и ^PASS^ также могут быть размещены в этих заголовках!

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

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

Поддерживаются и согласовываются автоматически Basic, DIGEST-MD5 и NTLM.

imap, imaps

Модуль imap опционально принимает тип аутентификации: CLEAR or APOP (default), LOGIN, PLAIN, CRAM-MD5, CRAM-SHA1, CRAM-SHA256, DIGEST-MD5, NTLM

Дополнительно опцией TLS может быть принудительно выбрано TLS шифрование через STARTTLS.

irc

Модуль irc опционально принимает общий пароль сервера, если сервер его требует, и если ничего не указано, то будет использоваться пароль из -p/-P.

ldap2, ldap2s, ldap3, ldap3s, ldap3-crammd5, ldap3-crammd5s, ldap3-digestmd5, ldap3-digestmd5s

Модули опционально принимают DN (в зависимости от выбранного метода.

Примечание: вы также можете указать DN как логин, когда используется Простой метод аутентификации).

Ключевое слово "^USER^" заменяется логином.

Специальные указания для Простого метода имеют 3 режима работы: анонимный (без пользователя и пароля), не прошедший проверку подлинности (с пользователем, но без пароля), с проверкой подлинности юзер/пароль (пользователей и пароль).

Поэтому не забудьте установить пустую строку в качестве пользователя/пароля для тестирования всех режимов.

mysql

Модуль mysql is опционально принимает базу данных для атаки, по умолчанию это "mysql"

nntp

Модуль nntp опционально принимает один тип аутентификации из: USER (по умолчанию), LOGIN, PLAIN, CRAM-MD5, DIGEST-MD5, NTLM.

oracle-listener

Модуль oracle-listener / tns опционально принимает режим, в котором сохранён пароль, это может быть PLAIN (по умолчанию) или CLEAR.

pop3, pop3s

Модуль pop3 опционально принимает один из типов аутентификации: CLEAR (по умолчанию), LOGIN, PLAIN, CRAM-MD5, CRAM-SHA1, CRAM-SHA256, DIGEST-MD5, NTLM.

Дополнительно опцией TLS можно выбрать принудительное TLS шифрование через STLS.

postgres

Модуль postgres опционально принимает имя базы данных для атаки, по умолчанию это "template1".

rdp

Модуль rdp опционально принимает доменное имя Windows.

s7-300

Модуль S7-300 специально для Siemens PLC. Ему нужен только пароль или отсутствие аутентификации, поэтому просто используйте опцию -p или -P.

smb

По умолчанию модуль smb настроен для тестирования и локального и доменного аккаунта, используя простой пароль с диалектом NTLM.

Примечание: вы можете выбрать тип группы используя ключевое слово LOCAL или DOMAIN или other_domain: для указания доверенного домена.

Вы можете задать тип пароля используя ключевое слово HASH или MACHINE (для использования машинное имя NetBIOS в качестве пароля).

Вы можете установить диалект используя ключевое слово NTLMV2, NTLM, LMV2, LM.

smtp, smtps

Модуль smtp опционально принимает тип аутентификации из: LOGIN (по умолчанию), PLAIN, CRAM-MD5, DIGEST-MD5, NTLM.

Дополнительно опцией TLS может быть принудительно выбрано TLS шифрование через STARTTLS.

smtp-enum

Модуль smtp-enum опционально принимает SMTP команду из: VRFY (по умолчанию), EXPN, RCPT (который подключится используя аккаунт "root")

Параметр входа используются как параметры имени и пользователя и пароля в качестве доменного имени.

Например, для тестирования, существует ли john@localhost на 192.168.0.1:

snmp

Модуль snmp опционально принимает следующие параметры:

Для комбинирования опций используйте двоеточие (":"), например:

sshkey

Модуль sshkey не обеспечивает дополнительных опций, хотя меняется значение опций -p и -P:

  • -p ожидает путь до незашифрованного приватного ключа в формате PEM.
  • -P ожидает имя файла, содержащего список путей до некоторых незашифрованных ключей в формате PEM.

svn

Модуль svn опционально принимает имя репозитория для атаки, по умолчанию это "trunk"

telnet, telnets

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

xmpp

Модуль xmpp опционально принимает тип аутентификации из: LOGIN (default), PLAIN, CRAM-MD5, DIGEST-MD5, SCRAM-SHA1.

Примеры запуска Hydra

Попытаться войти как пользователь root (-l root) используя список паролей (-P /usr/share/wordlists/metasploit/unix_passwords.txt) в 6 потоков (-t 6) на данный SSH сервер (ssh://192.168.1.123):

Попытаться войти как пользователь user (-l user) используя список паролей (-P passlist.txt) на данный FTP сервер (ftp://192.168.0.1):

Попытаться войти на SSH сервера (ssh) из списка (-M targets.txt) используя список пользователей (-L logins.txt) и список паролей (-P pws.txt):

Попробовать зайти на FTP сервера в указанной подсети (ftp://[192.168.0.0/24]/) с именем пользователя admin (-l admin) и паролем password (-p password):

Зайти на почтовый сервер (imap://192.168.0.1/), использующий протокол IMAP с именам пользователей из списка (-L userlist.txt) и паролем defaultpw (-p defaultpw), в качестве типа аутентификации выбран PLAIN:

Зайти на почтовый сервер с протоколом POP3S, размещённом указанном на IPv6 (-6) адресе 2001:db8::1, на порту 143 со списком учётных данных в формате "логин:пароль" размещённом в файле defaults.txt (-C defaults.txt) с использованием типа аутентификации DIGEST-MD5 и принудительным TLS шифрованием через STLS:

Установка Hydra

Программа предустановлена в Kali Linux.

Установка в BlackArch

Программа предустановлена в BlackArch.

Установка в Debian, Ubuntu, Linux Mint

Информация об установке в другие операционные системы будет добавлена позже.

xHydra (графический интерфейс для THC-Hydra)

Для запуска графического интерфейса xHydra выполните команду:

Программы, входящие в пакет THC-Hydra

В пакет Hydra входит программа pw-inspector — инструмент для уменьшения списка паролей за счёт отфильтровывания их по заданным параметрам.


Мануал

Hydra поддерживает 30+ протоколов, включая их SSL-совместимые.

Это брутфорсинг в отношении сервисов, которые мы указываем с помощью списков пользователей и списков слов.

Hydra работает в 4 режимах:

  • Одно имя пользователя и один пароль
  • Список пользователей и один пароль
  • Одно имя пользователя и пароль
  • Список пользователей и пароль

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

Мы обсудим этот инструмент в следующем учебном пособии.

Опции

Вы можете открыть xHydra из меню или терминала Kali linux.


Target- настройки различных целевых пулов

Passwords – укажите параметры пароля и списки wordlist

Tuning – Определите, насколько быстро будет работать гидра. Также доступны другие варианты синхронизации.

Start – Start / Stop & показывает вывод.

Как взломать пароль с помощью Hydra в Kali Linux

В этой лабораторке мы пытаемся нарушить аутентификацию ssh на удаленном компьютере, у которого есть IP-адрес 192.168.0.103.

Здесь мы делаем атаку типа wordlist, используя список слов, содержащий наиболее распространенные пароли, чтобы проникнуть в учетную запись root.

Шаг 1: Откройте thc-hydra

Шаг 2. Установите целевой и протокол на целевой вкладке. <Здесь 192.168.0.103> <используйте свою цель>


Шаг 3: Задайте имя пользователя как root и укажите местоположение списка слов на вкладке паролей.

Примечание: Kali Linux поставляется со встроенными списками слов.

Найдите их с помощью команды: найдите * .lst в терминале.

Другие широкие диапазоны списка слов в диапазоне до 3 ГБ или более доступны в Интернете.

Просто используйте Google для поиска и в течение 5 минут вы их найдете.

Шаг 4: Задайте количество задач до 1 на вкладке настройки, так как это уменьшит скопление и вероятность обнаружения.

Но для завершения требуется больше времени.

Это также необходимо для уменьшения продолжительности блокировки учетной записи.


Шаг 5: Запустите thc-hydra с вкладки «Start».


Шаг 6: Прокрутите вниз и подождите, пока пароль не будет взломан


Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

Как пользоваться программой THC-Hydra

Тестирование уязвимостей важно для владельцев веб-сайтов и серверов. Важно понимать, насколько они защищены от действий вероятных злоумышленников, особенно от популярного метода взлома путем перебора паролей (Brute Force). Один из популярных инструментов для этого – программное обеспечение THC-Hydra.

Установка THC-Hydra

В ПО встроены функции перебора паролей с прямым обращением к серверу. Такой подход дает возможность заодно проверить настройку брандмауэра, блокируются ли хакерские запросы к серверу или пропускаются, определяется ли тип атаки. Перечень поддерживаемых сервисов включает веб-приложения, FTP, SSH и другие протоколы соединения через интернет.

Процедура инсталляции из официального репозитория выглядит просто:

$ sudo apt install hydra – в системе Ubuntu.

$ sudo yum install hydra – то же, но в Red Hat или CentOS.

По приведенной команде будет скачана последняя стабильная версия программы. Если же хочется получить наиболее свежий релиз, пусть и в стадии бета-тестирования, придется устанавливать его вручную. Так, исходник THC-Hydra 8.4 скачивается командой:

Следующие действия включают распаковку, компиляцию и установку приложения:

Рабочие файлы программы копируются в директорию /usr/local. Это удобнее, чем затем искать их по всему накопителю. Пользователю предоставляется выбор – использовать приложение через консоль или установить графическую оболочку. Второй вариант активируется командами:

Они вводятся в командную строку после перехода в каталог hydra-gtk. Оконный интерфейс особо не востребован, в большинстве случаев достаточно консоли, чтобы воспользоваться всем имеющимся в программе функционалом.

Основы работы в THC-Hydra

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

Программа Hydra

Общий формат выглядит так:

Опциями меняются глобальные параметры, ими же задаются списки логинов и паролей для перебора. Также указывается IP-адрес удаленного хоста, который будет подвергаться проверке «атакой». Перечень основных опций представлен ниже:

  • -R – повторно запустить незавершенную сессию;
  • -S – подключаться с использованием протокола SSL;
  • -s – вручную указать порт подключения к серверу;
  • -l – указать определенный логин пользователя;
  • -L – подключить файл со списком логинов;
  • -p – внести конкретный пароль;
  • -P – использовать пароли из текстового файла;
  • -M – атаковать цели, указанные в списке;
  • -x – активировать генератор паролей;
  • -u – включается проверка одного пароля для всех логинов;
  • -f – закрыть программу, если обнаружена правильная связка «логин-пароль»;
  • -o – сохранить результаты сканирования в указанный файл;
  • -t – принудительно задать количество потоков;
  • -w – указать время, которое проходит между запросами (в секундах);
  • -v – включить режим подробного вывода информации;
  • -V – выводить тестируемые логины и пароли.

Программа поддерживает более 30 видов запросов, среди них есть POP3, SMTP, FTP, CISCO, ICQ, VNC, TELNET. Всего одним инструментом легко обеспечить проверку всей инфраструктуры – от хостинга и облачного хранилища до сервера, используемого для развертывания учетных программ класса ERP.

Далее рассмотрим наиболее востребованные функции приложения.

Как пользоваться THC-Hydra

Простейший вариант использования THC-Hydra – найти в интернете стандартные списки для Brute Force, подключить их при помощи опций и ждать результата. Также понадобятся данные сервера, на который будет осуществляться атака. Перечни паролей подходят и от других программ вроде John the Ripper.

Перебор пароля FTP

По протоколу FTP осуществляется подключение к файловой системе удаленных серверов в режиме «как на локальном компьютере». Поэтому это один из первых каналов взаимодействия с удаленным ресурсом, который рекомендуется проверять на защищенность. Запускается тестирование для FTP командой:

Брутфорс

Опция –l здесь задает логин пользователя, а –P подключает файл со списком вероятных паролей. За ними указывается путь к файлу, протокол и IP-адрес целевого хоста. После нажатия клавиши Enter программа начинает перебор со скоростью 300 шт. в минуту. Если реальный пароль достаточно сложный, результата придется ждать долго.

Чтобы сделать подбор более информативным, достаточно в командную строку внести опции –v и –V. Также есть возможность указать не один IP-адрес, а целую сеть или подсеть. Выполняется это при помощи квадратных скобок. Команда будет выглядеть так:

Если есть заранее известный список IP-адресов, по которым требуется провести тестирование, он подключается в виде текстового файла:

Метод перебора с автоматической генерацией пароля подключается на основе заданного набора символов. Тогда вместо списка задается опция –x, а после нее вставляется строка с параметрами. Синтаксис команды такой:

Минимальное и максимальное количество знаков указывается цифрами, буквы указываются как в нижнем, так и в верхнем регистре (указывается A и a). Плюс рекомендуется добавлять цифры от 1 до 9 – в этом случае будет охвачен весь диапазон, кроме спецсимволов. Выглядеть строка будет следующим образом:

В приведенном примере программа будет подбирать пароль размером в 4 символа, состоящий из букв обоих регистров и цифр. Есть альтернативное написание, где протокол подключения указан в конце, после IP-адреса:

THC-Hydra

Пароли по протоколам SSH, TELNET и схожих по назначению тестируются тем же образом, только в строке указывается соответствующая им команда.

Перебор паролей веб-форм

Несколько сложнее запускается перебор для веб-форм. Здесь сначала понадобится выяснить, какие формы передаются на сервер, а какие обрабатываются на уровне локального компьютера. Поможет в этом исходный код, который легко просмотреть функциями браузера. Там нужно «подсмотреть» протокол, используемый для подключения. Например, на приведенном скрине это метод POST.

Проверка безопасноси формы

Переменные ^USER^ и ^PASS^ принимают значения, взятые из указанного файла (логин и пароль соответственно). В этом режиме скорость перебора выше – обычно она достигает 1000 паролей в минуту.

Выводы

Мы рассмотрели основные методы сканирования защиты серверов в программе Hydra. Графическая оболочка (xHydra) упрощает применение утилиты, когда приходится постоянно тестировать различные хосты, но при «одиночном» запуске обычно достаточно консоли.

xHydra

В графическом интерфейсе имеется несколько вкладок:

  1. Target – цель атаки;
  2. Passwords – списки паролей;
  3. Tuning – дополнительные настройки;
  4. Specific – настройки модулей;
  5. Start – запуск и просмотр статуса.

Освоиться легко, но важно помнить, что использование приложения вне собственной компании, в частном порядке, может оказаться преступлением. Поэтому не стоит соглашаться на просьбы «проверить» безопасность на чужом сайте. Все должно проводиться официально.

Читайте также: