Тестирование уязвимостей важно для владельцев веб-сайтов и серверов. Важно понимать, насколько они защищены от действий вероятных злоумышленников, особенно от популярного метода взлома путем перебора паролей (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. Оконный интерфейс особо не востребован, в большинстве случаев достаточно консоли, чтобы воспользоваться всем имеющимся в программе функционалом.
Основы работы в 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 – запуск и просмотр статуса.
Освоиться легко, но важно помнить, что использование приложения вне собственной компании, в частном порядке, может оказаться преступлением. Поэтому не стоит соглашаться на просьбы «проверить» безопасность на чужом сайте. Все должно проводиться официально.
Комментарии