Меню Рубрики

Использование hydra в kali linux

Статья THC-Hydra: очень быстрый взломщик сетевого входа в систему (часть первая)

The Codeby

ООО Кодебай

Программа hydra поддерживает огромное количество служб, благодаря своей быстроте и надёжности она завоевала заслуженную признательность среди тестеров на проникновение. Будучи очень мощной и гибкой, программу hydra нельзя отнести к простым и легко дающимся новичкам. Не надо отчаиваться, если вам не удалось оседлать hydra, я рекомендую вам посмотреть на программу BruteX. Она значительно автоматизирует процесс подбора, более того, она использует ту же самую hydra, но сама вводит необходимые ключи и даже не нужно искать файлы с именами и паролями, поскольку они поставляются вместе с программой. Если я вас заинтересовал, то рекомендую статью «BruteX: программа для автоматического брутфорса всех служб».

Этот инструмент — THC-Hydra — предназначен только для законных целей.

Программа прекрасно компилируется и работает на Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10) и OSX. Лучше всех пользователям Kali Linux – у них программа уже установлена.

В настоящее время поддерживаются следующие протоколы: Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 и v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC и XMPP.

Ну т. е. правда — много.

Прибавилось ли понимания после увиденного синтаксиса? )) Не переживайте, сейчас рассмотрим опции THC-Hydra, а потом углубимся в понимание работы с этой программой.

Как использовать hydra

THC-Hydra поставляется без логинов/паролей. Нам нужно самим где-то их раздобыть. И вот здесь нам поможет недавняя статья «Списки слов для атаки по словарю: пароли, имена пользователей, каталоги». Изучайте её, скачивайте свои пароли.

Ещё файлы с дефолтными паролями позволяет генерировать утилита от hydra — dpl4hydra.sh. Чтобы узнать, какие устройства есть в базе, зайдите

Чтобы воспользоваться программой dpl4hydra.sh на Kali Linux, нам сначала нужно её скачать (по какой-то причине авторы Kali не включили её в стандартную установку).

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

Графический интерфейс Hydra

Кстати, для пользователей Linux доступен графический интерфейс (GTK gui), для его запуска наберите

Использование Hydra в командной строке

Для использования в командной строке синтаксис следующий:

  • Для атаки одной цели или сети, вы можете использовать новый стиль ://

hydra [некоторые опции командной строки] ПРОТОКОЛ://ЦЕЛЬ:ПОРТ/ОПЦИИ

  • Старая старый синтаксис также поддерживается, а если вы хотите, то дополнительно можете задать цели из текстового файла, при этом вы *должны* использовать этот синтаксис:

hydra [некоторые опции командной строки] [-s порт] ЦЕЛЬ ПРОТОКОЛ ОПЦИИ
Через опции командной строки вы определяете, какие логины и пароли перебирать, нужно ли использовать SSL, во сколько потоков осуществлять атаку и т.д.

ПРОТОКОЛ — это протокол, который вы хотите атаковать, например, ftp, smtp, http-get или любой из доступных
ЦЕЛЬ — это целевая машина, которую вы хотите атаковать
TARGET is the target you want to attack
ОПЦИИ дополнительные значения, которые задаются для модуля ПРОТОКОЛ

Первое — выберите вашу цель

есть три способа задать цель для атаки:

  1. единичная цель в командной строке: просто введите IP или DNS адрес
  2. диапазон подсети в командной строке:
  3. список хостов в текстовом файле: один хост на строку (подробности ниже)

Второе — выберите ваш протоколов

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

Третье — проверьте, имеет ли модуль дополнительные параметры

hydra -U ПРОТОКОЛ
например,

Четвёртое — порт назначение

Это необязательно! Если на удалённой машине используется порт по умолчанию для этой службы, то программа hydra сама знает, какие порты используется для ПРОТОКОЛов

Если вы задали использовать SSL (опция «-S»), то по умолчанию будет использоваться обычный порт SSL.

Если вы используете нотацию «://», то вы должны использовать квадратные скобки [ ], если вы хотите цель для атак определить адресами IPv6 или CIDR («192.168.0.0/24»)

Обратите внимание, что hydra делает все атаки только на IPv4!

Если вы хотите атаковать адреса IPv6 вы должны добавить опцию «-6». Тогда все атаки будут на IPv6.

Если вы хотите задать цели через текстовый файл, вы не можете использовать обозначение ://, используйте старый стиль и задайте протокол (и опции модуля):

Логины и пароли Hydra

Есть много разных опций, как атаковать с логинами и паролями.

Опциями -l для логина и -p для пароля, вы можете сказать hydra использовать только эти логин и/или пароль для попытки.

С -L для логинов и -P для паролей вы указываете текстовые файлы с записями, например:

Дополнительно вы также можете пробовать пароли, основанные на логины, это делается опцией «-e».

Опция «-e» имеет три параметра:

  • s — пробовать логин как пароль
  • n — пробовать пустой пароль
  • r — перестановка в логине символов с зада на перёд и использование получившегося слова в качестве пароля

К примеру, если вы хотите попробовать логин в качестве пароля и пустой пароль, то вам нужно в командной строке указать «-e sn».

Для пароля кроме -p/-P есть ещё пара режимов:

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

Это популярный стиль записи листинга дефольтных значений аккаунта. В таком же виде генерирует файлы dpl4hydra.sh (генератор дефолтных логинов и паролей для hydra).

Использовать такой текстовый файл нужно с опцией -C, обратите внимание, что в этом режиме нельзя использовать опции -l/-L/-p/-P (хотя -e nsr можно).

И наконец, есть режим брутфорса с опцией -x (её нельзя использовать с -p/-P/-C):

Набор символов определяет ‘a’ для букв в нижнем регистре, ‘A’ — для букв в вернем регистре, ‘1’ — для цифр, а для всего другого используйте их реальные символы.

Примеры:

  • -x 1:3:a генерирует пароли длинной от 1 до 3 символов, состоящие только из букв в нижнем регистре
  • -x 2:5:/ генерирует пароли длинной от 2 до 5 символов, содержание только слэши
  • -x 5:8:A1 генерирует пароли длинной от 5 до 8 символов, с большими буквами и цифрами

Пример:

Специальные опции для модулей

Через третий параметр командной строки (ЦЕЛЬ СЛУЖБА ОПЦИИ) или после ключа -m , вы можете передать модулю одну опцию.

Многие модули используют их, а некоторые требуют их!

Чтобы получить дополнительную информацию по опции модуля, наберите

Специальные опции могут быть переданы через параметр -m или третьей опцией в командной строке или в формате сжуба://цель/опция.

Примеры (они все означают одно и то же):

Возобновление прерванной/оборванной сессии

Когда hydra прерывается командой Control-C , убивается или вылетает с ошибкой, она оставляет файл «hydra.restore» в котором содержится вся необходимая информация для восстановления сессии. Этот файл сессии пишется каждые 5 минут.

Примечание: файл hydra.restore НЕ может быть скопирован между различными платформами (например с little indian на big indian или с solaris на aix)

Как сканировать/взламывать через прокси

Переменная среды HYDRA_PROXY_HTTP определяет веб прокси (это работает только для службы http/www!)

Следующий синтаксис является валидными:

Источник

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

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

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

Установка THC Hydra

Первым делом нам необходимо установить этот инструмент. Это довольно популярная утилита для тестирования безопасности, поэтому вы можете найти ее в официальных репозиториях. Для установки нужных пакетов в Ubuntu выполните:

sudo apt install hydra

Чтобы установить программу в Red Hat/CentOS команда аналогичная:

sudo yum install hydra

Но в официальных репозиториях, как правило, находятся более старые версии программы. Если вы хотите самую свежую, то придется собрать ее из исходников. Но здесь нет ничего сложного. Сначала загрузим исходники последней версии с GitHub, на данный момент, это 8.4:

Затем необходимо их распаковать и перейти в папку с исходниками:

tar xvpzf thc-hydra-v8.4.tar.gz
$ cd thc-hydra-v8.4

Дальше выполните такие команды для компиляции и установки:

./configure
$ make
$ sudo make install

Разработчики поступили очень грамотно, когда настроили установку в /usr/local. Таким образом, утилита не распространится по всей файловой системе, а будет в одном месте. Если вы еще хотите установить графическую оболочку, то вам нужно переместиться в папку hydra-gtk и выполнить те же команды:

cd hydra-gtk
$ ./configure
$ make
$ sudo make install

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

Программа THC Hydra

Перед тем как мы начнем рассматривать как пользоваться htc hydra, нам необходимо разобраться какие параметры команде передавать и как это делать. Давайте сначала рассмотрим общий синтаксис:

$ hydra опции логины пароли -s порт адрес_цели модуль параметры_модуля

Опции задают глобальные параметры утилиты, с помощью них вы можете настроить необходимые параметры, например, указать что нужно выводить информацию очень подробно, список логинов и паролей для перебора задается тоже с помощью опций, но я выделил его в отдельный пункт. Дальше нужно задать порт сервиса на удаленной машине и ip адрес цели. В конце мы задаем модуль перебора, который будем использовать и параметры модуля. Обычно это самая интересная часть но начнем мы с опций:

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

Это были основные опции, которые, вы будете использовать. Теперь рассмотрим модули, а также способы аутентификации, которые вы можете подобрать:

Как видите, количество доступных протоколов достаточно большое, вы можете проверить безопасность как ssh, ftp, и до веб-форм. Дальше мы рассмотрим как пользоваться hydra, как использовать самые часто применяемые протоколы.

Как пользоваться thc-hydra

Как вы уже догадались, hydra перебирает пароли из переданного ей файла, оттуда же берутся и логины. Также вы можете попросить программу генерировать пароли самостоятельно, на основе регулярного выражения. А вот уже их подстановка и передача на удаленный сервер настраивается с помощью строки параметров модуля. Естественно, что файлы с паролями нужно заготовить. В этой статье для примеров я буду использовать файл паролей от John the ripper, который вы можете без проблем найти в интернете. Также можно использовать словари топ500 паролей, и от Cain & Abel, где находится более 300000 пароля. Логин будем использовать только один — admin.

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

Сначала поговорим про использование hydra в консольной версии. На самом деле, это основная программа. Команда будет выглядеть таким образом:

hydra -l admin -P john.txt ftp://127.0.0.1

Как вы помните опция -l задает логин пользователя, -P — файл со списком паролей. Далее мы просто указываем протокол и айпи цели. Готово, вот так просто можно перебрать пароль от вашего FTP, если вы установили его слишком простым и не настроили защиты. Как видите, утилита перебирает пароли со скоростью 300 шт в минуту. Это не очень быстро, но для простых паролей достаточно опасно. Если вы хотите получить больше информации во время перебора нужно использовать опции -v и -V вместе:

hydra -l admin -P john.txt -vV ftp://127.0.0.1

Также, с помощью синтаксиса квадратных скобок, вы можете задать не одну цель, а атаковать сразу целую сеть или подсеть:

hydra -l admin -P john.txt ftp://[192.168.0.0/24]

Также вы можете брать цели из файла со списком. Для этого используется опция -M:

hydra -l admin -P john.txt -M targets.txt ftp

Если подбор по словарю не сработал, можно применить перебор с автоматической генерацией символов, на основе заданного набора. Вместо списка паролей нужно задать опцию -x а ей передать строку с параметрами перебора. Синтаксис ее такой:

минимальная_длина : максимальная_длина : набор_символов

С максимальным и минимальным количеством, я думаю все понятно, они указываются цифрами. В наборе символов нужно указать a для всех букв в нижнем регистре, A — для букв в верхнем регистре и 1 для всех цифр от 0 до 9. Дополнительные символы указываются после этой конструкции как есть. Например:

  • 4:4:1 — пароль размером четыре символа, состоящий только из цифр. А именно все пароли в диапазоне 0000-9999;
  • 4:8:1 — пароль от четырех до восьми символов, только из цифр;
  • 4:5:aA1. — пароль, размером от 4 до 5 символов, состоит из цифр, букв верхнего и нижнего регистра или точки.

Вся команда будет выглядеть вот так:

hydra -l admin -x 4:4:aA1. ftp://127.0.0.1

Можно пойти другим путем и указать ip цели и порт вручную с помощью опции -s, а затем указать модуль:

hydra -l admin -x 4:4:aA1 -s 21 127.0.0.1 ftp

Пароли для ssh, telet и других подобных сервисов перебираются подобным образом. Но более интересно рассмотреть перебор паролей для http и html форм.

Перебор пароля аутентификции HTTP

Различные роутеры часто используют аутентификацию на основе HTTP. Перебор пароля от такого типа формы входа выполняется очень похожим образом на ftp и ssh. Строка запуска программы будет выглядеть вот так:

/john.txt -o ./result.log -V -s 80 127.0.0.1 http-get /login/

Здесь мы использовали логин admin, список паролей из файла john.txt, адрес цели 127.0.0.1 и порт 80, а также модуль http-get. В параметрах модулю нужно передать только адрес страницы входа на сервере. Как видите, все не так сильно отличается.

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

Самый сложный вариант — это перебор паролей для веб-форм. Здесь нам нужно узнать что передает на сервер нужная форма в браузере, а затем передать в точности те же данные с помощью hydra. Вы можете посмотреть какие поля передает браузер с помощью перехвата в wireshark, tcpdump, в консоли разработчика и так далее. Но проще всего открыть исходный код формы и посмотреть что она из себя представляет. Далеко ходить не будем и возьмем форму WordPress:

Как видите, передаются два поля log и pwd, нас будут интересовать только значения полей input. Здесь несложно догадаться, что это логин и пароль. Поскольку форма использует метод POST для передачи данных, то нам нужно выбрать модуль http-post-form. Синтаксис строки параметров будет выглядеть вот так:

адрес _страницы :имя_поля_логина=^USER^ &имя_поля_пароля=^PASS^ &произвольное_поле=значение :строка_при_неудачном_входе

Строчка запуска программы будет выглядеть вот так:

/john.txt -o ./result.log -V -s 80 127.0.0.1 http-post-form «/wp-admin:log=^USER^&pwd=^PASS^:Incorrect Username or Password»

Переменные ^USER^ и ^PASS^ содержат имя пользователя и пароль взятые из словаря, также, возможно, придется передать дополнительные параметры, они передаются также, только значения будут фиксированы. Заканчивается выражение строкой, которая присутствует на странице при неудачном входе. Скорость перебора может достигать 1000 паролей в минуту, что очень быстро.

Графическая утилита xhydra

Хотелось бы еще сказать несколько слов про графическую версию. Это просо интерфейс, который помогает вам сформировать команду для консольной hydra. Главное окно программы выглядит вот так:

Здесь есть несколько вкладок:

  • Target — цели атаки;
  • Passwords — списки паролей;
  • Tuning — дополнительные настройки;
  • Specific — настройки модулей;
  • Start — запуск и просмотр статуса атаки.

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

Выводы

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Исполняемый файл в linux mint
  • Информация по железу компьютера linux
  • Информация об информационной системе linux
  • Информация о системе в терминале linux
  • Информация о системе linux команда