Тестирование уязвимостей важно для владельцев веб-сайтов и серверов. Важно понимать, насколько они защищены от действий вероятных злоумышленников, особенно от популярного метода взлома путем перебора паролей (Brute Force). Один из популярных инструментов для этого – программное обеспечение THC-Hydra.
Установка THC-Hydra
В ПО встроены функции перебора паролей с прямым обращением к серверу. Такой подход дает возможность заодно проверить настройку брандмауэра, блокируются ли хакерские запросы к серверу или пропускаются, определяется ли тип атаки. Перечень поддерживаемых сервисов включает веб-приложения, FTP, SSH и другие протоколы соединения через интернет.
Процедура инсталляции из официального репозитория выглядит просто:
$ sudo apt install hydra – в системе Ubuntu.
$ sudo yum install hydra – то же, но в Red Hat или CentOS.
По приведенной команде будет скачана последняя стабильная версия программы. Если же хочется получить наиболее свежий релиз, пусть и в стадии бета-тестирования, придется устанавливать его вручную. Так, исходник THC-Hydra 8.4 скачивается командой:
$ wget https://github.com/vanhauser-thc/thc-hydra/archive/v8.4.tar.gz
Следующие действия включают распаковку, компиляцию и установку приложения:
$ tar xvpzf thc-hydra-v8.4.tar.gz $ cd thc-hydra-v8.4 $ ./configure $ make $ sudo make install
Рабочие файлы программы копируются в директорию /usr/local. Это удобнее, чем затем искать их по всему накопителю. Пользователю предоставляется выбор – использовать приложение через консоль или установить графическую оболочку. Второй вариант активируется командами:
$ cd hydra-gtk $ ./configure $ make $ sudo make install
Они вводятся в командную строку после перехода в каталог hydra-gtk. Оконный интерфейс особо не востребован, в большинстве случаев достаточно консоли, чтобы воспользоваться всем имеющимся в программе функционалом.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Основы работы в THC-Hydra
В командной строке управление настройками утилиты осуществляется при помощи определенного синтаксиса. Пользователю достаточно разобраться, когда и какие команды нужно вставлять в строку вместе с основной.
Общий формат выглядит так:
$ hydra опции логины пароли -s порт адрес_цели модуль параметры_модуля
Опциями меняются глобальные параметры, ими же задаются списки логинов и паролей для перебора. Также указывается 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 командой:
$ hydra -l admin -P john.txt ftp://127.0.0.1
Опция –l здесь задает логин пользователя, а –P подключает файл со списком вероятных паролей. За ними указывается путь к файлу, протокол и IP-адрес целевого хоста. После нажатия клавиши Enter программа начинает перебор со скоростью 300 шт. в минуту. Если реальный пароль достаточно сложный, результата придется ждать долго.
Чтобы сделать подбор более информативным, достаточно в командную строку внести опции –v и –V. Также есть возможность указать не один IP-адрес, а целую сеть или подсеть. Выполняется это при помощи квадратных скобок. Команда будет выглядеть так:
$ hydra -l admin -P john.txt ftp://[192.168.0.0/24]
Если есть заранее известный список IP-адресов, по которым требуется провести тестирование, он подключается в виде текстового файла:
$ hydra -l admin -P john.txt -M targets.txt ftp
Метод перебора с автоматической генерацией пароля подключается на основе заданного набора символов. Тогда вместо списка задается опция –x, а после нее вставляется строка с параметрами. Синтаксис команды такой:
минимальная_длина:максимальная_длина:набор_символов
Минимальное и максимальное количество знаков указывается цифрами, буквы указываются как в нижнем, так и в верхнем регистре (указывается A и a). Плюс рекомендуется добавлять цифры от 1 до 9 – в этом случае будет охвачен весь диапазон, кроме спецсимволов. Выглядеть строка будет следующим образом:
$ hydra -l admin -x 4:4:aA1. ftp://127.0.0.1
В приведенном примере программа будет подбирать пароль размером в 4 символа, состоящий из букв обоих регистров и цифр. Есть альтернативное написание, где протокол подключения указан в конце, после IP-адреса:
$ hydra -l admin -x 4:4:aA1 -s 21 127.0.0.1 ftp
Пароли по протоколам SSH, TELNET и схожих по назначению тестируются тем же образом, только в строке указывается соответствующая им команда.
Перебор пароля аутентификации HTTP
При работе с сетевым оборудованием, которое использует аутентификацию на основе HTTP, нужно использовать те же опции, которые описывались выше. Строка запуска приложения выглядит так:
$ hydra -l admin -P ~/john.txt -o ./result.log -V -s 80 127.0.0.1 http-get /login/
В приведенном примере программа будет подбирать пароль из подключенного файла-списка к логину admin. Метод подключения – HTTP-GEN, IP-адрес целевого хоста – 127.0.0.1, порт – 80. Результаты будут выгружены в файл result.log.
Перебор паролей веб-форм
Несколько сложнее запускается перебор для веб-форм. Здесь сначала понадобится выяснить, какие формы передаются на сервер, а какие обрабатываются на уровне локального компьютера. Поможет в этом исходный код, который легко просмотреть функциями браузера. Там нужно «подсмотреть» протокол, используемый для подключения. Например, на приведенном скрине это метод POST.
Получается, что в командной строке нужно указывать опцию http-post-form. Синтаксис параметров в этом случае будет выглядеть так:
адрес_страницы:имя_поля_логина=^USER^&имя_поля_пароля=^PASS^&произвольное_поле=значение:строка_при_неудачном_входе
Строка запуска:
$ hydra -l user -P ~/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 паролей в минуту.
Выводы
Мы рассмотрели основные методы сканирования защиты серверов в программе Hydra. Графическая оболочка (xHydra) упрощает применение утилиты, когда приходится постоянно тестировать различные хосты, но при «одиночном» запуске обычно достаточно консоли.
В графическом интерфейсе имеется несколько вкладок:
- Target – цель атаки;
- Passwords – списки паролей;
- Tuning – дополнительные настройки;
- Specific – настройки модулей;
- Start – запуск и просмотр статуса.
Освоиться легко, но важно помнить, что использование приложения вне собственной компании, в частном порядке, может оказаться преступлением. Поэтому не стоит соглашаться на просьбы «проверить» безопасность на чужом сайте. Все должно проводиться официально.
Hydra – это программное обеспечение с открытым исходным кодом для перебора паролей в реальном времени от различных онлайн сервисов, веб-приложений, FTP, SSH и других протоколов. Особенность Hydra в том, что здесь выполняется перебор не по хэшу, а напрямую с помощью запросов к серверу, это значит что вы сможете проверить правильно ли настроены фаерволы, блокируются ли такие попытки, а также можете ли вы вообще определить такую атаку на сервер. В этой статье мы рассмотрим как пользоваться thc hydra для перебора паролей.
Программа hydra поддерживает огромное количество служб, благодаря своей быстроте и надёжности она завоевала заслуженную признательность среди тестеров на проникновение. Будучи очень мощной и гибкой, программу hydra нельзя отнести к простым и легко дающимся новичкам. Не надо отчаиваться, если вам не удалось оседлать hydra, я рекомендую вам посмотреть на программу BruteX. Она значительно автоматизирует процесс подбора, более того, она использует ту же самую hydra, но сама вводит необходимые ключи и даже не нужно искать файлы с именами и паролями, поскольку они поставляются вместе с программой.
В настоящее время поддерживаются следующие протоколы: 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.
Первым делом нам необходимо установить этот инструмент. Это довольно популярная утилита для тестирования безопасности, поэтому вы можете найти ее в официальных репозиториях. Для установки нужных пакетов в Ubuntu выполните:
sudo apt install hydra
Чтобы установить программу в Red Hat/CentOS команда аналогичная:
sudo yum install hydra
Но в официальных репозиториях, как правило, находятся более старые версии программы. Если вы хотите самую свежую, то придется собрать ее из исходников. Но здесь нет ничего сложного. Сначала загрузим исходники последней версии с GitHub, на данный момент, это 8.4:
wget https://github.com/vanhauser-thc/thc-hydra/archive/v8.4.tar.gz
Затем необходимо их распаковать и перейти в папку с исходниками:
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 – выводить тестируемые логины и пароли.
Это были основные опции, которые, вы будете использовать. Теперь рассмотрим модули, а также способы аутентификации, которые вы можете подобрать:
- adam6500;
- asterisk;
- cisco;
- cisco-enable;
- cvs;
- ftp;
- http-head;
- http-get;
- http-post;
- http-get-form;
- http-post-form;
- http-proxy;
- http-proxy-urlenum;
- icq;
- imap;
- irc;
- ldap2;
- ldap3;
- mssql;
- nntp;
- pcanywhere;
- pcnfs;
- pop3;
- redis;
- rexec;
- rlogin;
- rpcap;
- rsh;
- rtsp;
- s7-300;
- smb;
- smtp;
- smtp-enum;
- snmp;
- socks5;
- ssh;
- teamspeak;
- telnet;
- vmauthd;
- vnc;
- xmpp.
Как видите, количество доступных протоколов достаточно большое, вы можете проверить безопасность как ssh, ftp, и до веб-форм. Дальше мы рассмотрим как пользоваться hydra, как использовать самые часто применяемые протоколы.
Как пользоваться THC – HYDRA
Как вы уже догадались, hydra перебирает пароли из переданного ей файла, оттуда же берутся и логины. Также вы можете попросить программу генерировать пароли самостоятельно, на основе регулярного выражения. А вот уже их подстановка и передача на удаленный сервер настраивается с помощью строки параметров модуля. Естественно, что файлы с паролями нужно заготовить. Можно использовать словари топ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. Строка запуска программы будет выглядеть вот так:
hydra -l admin -P ~/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^&произвольное_поле=значение:строка_при_неудачном_входе
Строчка запуска программы будет выглядеть вот так:
hydra -l user -P ~/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 – запуск и просмотр статуса атаки.
Вы без труда во всем этом разберетесь когда освоите консольный вариант.
THC-Hydra — это утилита для взлома паролей, которая может быть использована для тестирования безопасности. Вот инструкция по ее использованию на Windows 10:
1. Загрузите и установите Hydra для Windows 10.
2. Откройте командную строку в Windows 10. Это можно сделать, нажав клавишу Win+R и введя «cmd».
3. Перейдите в каталог с установленным Hydra, используя команду «cd» в командной строке.
4. Ознакомьтесь с доступными опциями Hydra, используя команду «hydra — h». Вы увидите список поддерживаемых протоколов и опций командной строки.
5. Выберите протокол для взлома. Например, если вы хотите взломать пароль FTP, используйте команду «hydra — l username — P passwordlist. txt ftp://targetip».
6. Замените «username» на имя пользователя, «passwordlist. txt» на свой файл со списком паролей и «targetip» на адрес вашей цели.
7. Запустите атаку, используя вашу команду, и дождитесь окончания процесса взлома.
Несколько советов по использованию Hydra:
— Hydra может быть очень медленным, особенно при использовании очень длинных списков паролей. Используйте только те пароли, которые вы уверены, что могут работать.
— Не забывайте о законности взлома паролей. Hydra должен использоваться только в тестовых целях и только для тестирования систем, на которых вы имеете разрешение.
— Если вы не знаете, какой протокол использовать, поищите онлайн документацию, и узнайте, что поддерживается Hydra.
THC Hydra – это приложение, которое в консольном режиме может производить тестирование на предмет безопасности беспроводных и проводных сетей.
Описание программы
Программа лишена пользовательского интерфейса и работает при помощи командной строки.
Приложение распространяется на бесплатной основе, соответственно, какая-либо активация не требуется.
Как установить
Установка тоже не нужна. Достаточно скачать приложение, затем запустить его:
- Обращаемся к разделу загрузки и при помощи прямой ссылки производим скачивание.
- Двойным левым кликом запускаем исполняемый файл, который отмечен на прикреплённом ниже скриншоте.
- Если понадобится, утверждаем доступ к полномочиям администратора.
Как пользоваться
Работа с ПО сводится к вводу специальных операторов, а также просмотру полученного результата. Присутствует собственная справка, но лучше всего перейти на YouTube и посмотреть какой-нибудь обучающий ролик по теме.
Достоинства и недостатки
Переходим к разбору сильных, а также слабых сторон приложения для тестирования безопасности сетей.
Плюсы:
- широкий набор возможностей для тестирования безопасности сетей;
- присутствует встроенная справка.
Минусы:
- нет русского языка;
- отсутствует пользовательский интерфейс.
Скачать
Загрузить программу можно при помощи прикрепленной ниже кнопки.
Язык: | Английский |
Активация: | Бесплатно |
Разработчик: | The (Freeworld) Hacker’s Choice |
Платформа: | Windows XP, 7, 8, 10, 11 |
THC Hydra v8.5
Полезный универсальный инструмент для подбора паролей при проведения тестов на уязвимость собственных ресурсов
Внимание! Статья носит исключительно ознакомительную информацию с утилитой и ни в коем случае не призывает использовать её в мошеннических целях. Как правило, данная утилита может быть использована для проведения тестов на уязвимость собственных ресурсов. Не забывайте предохраняться и натянуть на себя VPN хотя бы.
Когда penetration testing
заходит в тупик, остается крайний метод — подбор пароля. Дабы уницифировать все инструменты подбора паролей и не использовать для разных задач отдельные брутфорсы есть замечательный универсальный инструмент — THC-Hydra, который имеет поддержку пароля по/для 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 and v2)
, SSHKEY
, Subversion
, Teamspeak (TS2)
, Telnet
, VMware-Auth
, VNC
и XMPP
.
Установка
Пакет hydra
содержится в epel-репозитории, поэтому достаточно подключить его и установить.
yum install -y epel-release
yum install -y hydra
Или собрать с сорсов для пользователей других ОС:
mkdir ~/hydra_src && cd ~/hydra_src
wget https://github.com/vanhauser-thc/thc-hydra/archive/master.zip && unzip master.zip && rm -f master.zip
cd thc-hydra-master/
yum install gcc mysql-devel libssh
make clean && ./configure
make && make install
hydra -h
Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]
Options:
-R restore a previous aborted/crashed session
-S perform an SSL connect
-s PORT if the service is on a different default port, define it here
-l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE
-p PASS or -P FILE try password PASS, or load several passwords from FILE
-x MIN:MAX:CHARSET password bruteforce generation, type "-x -h" to get help
-e nsr try "n" null password, "s" login as pass and/or "r" reversed login
-u loop around users, not passwords (effective! implied with -x)
-C FILE colon separated "login:pass" format, instead of -L/-P options
-M FILE list of servers to be attacked in parallel, one entry per line
-o FILE write found login/password pairs to FILE instead of stdout
-f / -F exit when a login/pass pair is found (-M: -f per host, -F global)
-t TASKS run TASKS number of connects in parallel (per host, default: 16)
-w / -W TIME waittime for responses (32s) / between connects per thread
-4 / -6 prefer IPv4 (default) or IPv6 addresses
-v / -V / -d verbose mode / show login+pass for each attempt / debug mode
-U service module usage details
server the target server (use either this OR the -M option)
service the service to crack (see below for supported protocols)
OPT some service modules support additional input (-U for module help)
Supported services: asterisk cisco cisco-enable cvs firebird ftp ftps http[s]-{head|get} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
Hydra is a tool to guess/crack valid login/password pairs - usage only allowed
for legal purposes. This tool is licensed under AGPL v3.0.
The newest version is always available at http://www.thc.org/thc-hydra
These services were not compiled in: sapr3 afp ncp oracle.
Use HYDRA_PROXY_HTTP/HYDRA_PROXY and HYDRA_PROXY_AUTH environment for a proxy.
E.g.: % export HTTP_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://)
% export HTTP_PROXY_HTTP=http://proxy:8080
% export HTTP_PROXY_AUTH=user:pass
Examples:
hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5
Словари
Брутить можно как с помощью подбора посимвольно, так и с помощью подготовленного словаря наиболее часто используемых паролей. Рекомендую первым делом попытаться подобрать пароль со словарем, и уже если и этот способ не увенчался успехом — переходить к прямому бруту посмивольно.
Словари можно поискать здесь или воспользоваться имеющимися.
Готовые списки паролей: top500; top4000; cain&abel (300k); пароли от яндекса (700k); пароли от маил.ру (2740k); маил.ру + яндекс (3300k)
Использование
Рассмотрим флаги запуска:
- -R Восстановить предыдущую сессию, которая по какой-либо причине была прервана
- -S Использовать SSL соединение
- -s PORT Указание порта (отличного от дефолтного) сервиса
- -l LOGIN Использовать указанный логин для попытки аутентификации
- -L FILE Использовать список логинов из указанного файла
- -p PASS Использовать указанный пароль для попытки аутентификации
- -P FILE Использовать список паролей из указанного файла
- -x Генерировать пароли для подбора самостоятельно, указывается в формате -x MIN:MAX:CHARSET, где MIN — это минимальная длинна пароля, MAX — соответственно, максимальная, а CHARSET — это набор символов, в котором a означает латиницу в нижнем регистре, A — в верхнем регистре, 1 — числа, а для указания дополнительных символов — просто укажи их как есть. Вот несколько примеров генерации паролей:
- -x 3:5:a — длинной от 3 до 5 символов, состоящие только из символов латиницы в нижнем регистре;
- -x 5:8:A1 — длинной от 5 до 8 символов, состоящие из символов латиницы в верхнем регистре + цифр;
- -x 1:3:/ — длинной от 1 до 3 символов, состоящие только из символов слеша /;
- -x 5:5:/%,.- — длинной в 5 символов, состоящие только из символов /%,.-;
- -e nsr Укажи n для проверки пустых паролей, s для попытки использования в качестве пароля — логин, и (или) r для попытки входа под перевернутым логином
- -u Пытаться подобрать логин а не пароль
- -C FILE Использовать файл в формате login:pass вместо указания -L/-P
- -M FILE Файл со списком целей для брутфорса (можно с указанием порта через двоеточие), по одному на строку
- -o FILE Записать подобранную пару логин/пароль в файл, вместо того чтоб просто вывести в stdout (будет указан с указанием сервера, к которому подобран — не запутаешься)
- -f / -F Прекратить работу, как только первая пара логин:пароль будет подобрана. -f только для текущего хоста, -F — глобально.
- -t TASKS Количество параллельных процессов (читай — потоков). По умолчанию 16
- -w Таймаут для ответа сервера. По умолчанию 32 секунды
- -W Таймаут между ответами сервера
- -4 / -6 Использовать IPv4 (по умолчанию) или IPv6 адреса (при указании с -M всегда заключай в [])
- -v Более подробный вывод информации о процессе
- -V Выводить каждый подбираемый логин + пароль
- -d Режим дебага
- -O Использовать старый SSL v2 и v3
- -q Не выводить сообщения об ошибках подключения
- -U Дополнительная информация о использовании выбранного модуля
- -h Вывод справочной информации
Примеры работы
Basic Authentication
Cканируя диапазон адресов мы попадаем на некоторый интерфейс, доступный по http
протоколу, но закрытый для доступа при помощи Basic Authentication
(пример настройки с помощью nginx).
- IP сервера: 192.168.2.15;
- Сервис: http;
- Путь, который закрыт для нас запросом пары логин/пароль: /admin/;
- Порт, на котором работает http сервер: 80;
Предположим (или любым доступным путем выясним), что логин для авторизации admin
, и нам неизвестен лишь пароль. Подбирать будем с помощью заранее подготовленного словаря и с использованием модуля http-get
:
[root@localhost opt]
Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only
Hydra (http://www.thc.org/thc-hydra) starting at 2016-06-08 14:37:45
[DATA] 16 tasks, 1 server, 234 login tries (l:1/p:234), ~14 tries per task
[DATA] attacking service http-get on port 80
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt1311113" - 1 of 234 [child 0]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt19391936" - 2 of 234 [child 1]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt2006pp" - 3 of 234 [child 2]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt21l16" - 4 of 234 [child 3]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt5390" - 5 of 234 [child 4]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt911pvpsw2" - 6 of 234 [child 5]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "sltanya" - 7 of 234 [child 6]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "admin" - 8 of 234 [child 7]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "password" - 9 of 234 [child 8]
...
[80][www] host: 192.168.2.15 login: admin password: password
[STATUS] attack finished for 192.168.2.15 (valid pair found)
1 of 1 target successfully completed, 1 valid password found
Статья ожидает продолжения..