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.
Оглавление
- 1 Установка Hydra
- 2 Программа THC – HYDRA
- 3 Как пользоваться THC – HYDRA
- 3.1 Перебор паролей FTP
- 4 Перебор пароля аутентификацией HTTP
- 5 Перебор паролей ВЕБ – ФОРМ
- 6 Графическая утилита XHYDRA
Первым делом нам необходимо установить этот инструмент. Это довольно популярная утилита для тестирования безопасности, поэтому вы можете найти ее в официальных репозиториях. Для установки нужных пакетов в 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 – запуск и просмотр статуса атаки.
Вы без труда во всем этом разберетесь когда освоите консольный вариант.
Hydra is a brute-forcing tool that helps penetration testers and ethical hackers crack the passwords of network services.
Hydra can perform rapid dictionary attacks against more than 50 protocols. This includes telnet, FTP, HTTP, HTTPS, SMB, databases, and several other services.
Hydra was developed by the hacker group “The Hacker’s Choice”. Hydra was first released in 2000 as a proof of concept tool that demonstrated how you can perform attacks on network logon services.
Hydra is also a parallelized login cracker. This means you can have more than one connection in parallel. Unlike in sequential brute-forcing, this reduces the time required to crack a password.
In my last article, I explained another brute-force tool called John the Ripper. Though John and Hydra are brute-force tools, John works offline while Hydra works online.
In this article, we will look at how Hydra works followed by a few real-world use cases.
Note: All my articles are for educational purposes. If you use it illegally and get into trouble, I am not responsible. Always get permission from the owner before scanning / brute-forcing / exploiting a system.
How to Install Hydra
Hydra comes pre-installed with Kali Linux and Parros OS. So if you are using one of them, you can start working with Hydra right away.
On Ubuntu, you can use the apt package manager to install it:
$ apt install hydra
In Mac, you can find Hydra under Homebrew:
$ brew install hydra
If you are using Windows, I would recommend using a virtual box and installing Linux. Personally, I don’t recommend using Windows if you want to be a professional penetration tester.
How to Work with Hydra
Let’s look at how to work with Hydra. We will go through the common formats and options that Hydra provides for brute-forcing usernames and passwords. This includes single username/password attacks, password spraying, and dictionary attacks.
If you have installed Hydra, you can start with the help command like this:
$ hydra -h
This will give you the list of flags and options that you can use as a reference when working with Hydra.
How to Perform a Single Username/Password Attack with Hydra
Let’s start with a simple attack. If we have the username and password that we expect a system to have, we can use Hydra to test it.
Here is the syntax:
$ hydra -l <username> -p <password> <server> <service>
Let’s assume we have a user named “molly” with a password of “butterfly” hosted at 10.10.137.76. Here is how we can use Hydra to test the credentials for SSH:
$ hydra -l molly -p butterfly 10.10.137.76 ssh
If it works, here is what the result will look like:
How to Perform a Password Spraying Attack with Hydra
What if we know a password that someone is using, but we are not sure who it is? We can use a password spray attack to determine the username.
A password spray attack is where we use a single password and run it against a number of users. If someone is using the password, Hydra will find the match for us.
This attack assumes we know a list of users in the system. For this example, we will create a file called users.txt with the following users:
root
admin
user
molly
steve
richard
Now we are going to test who has the password “butterfly”. Here is how we can run a password spray attack using Hydra.
$ hydra -L users.txt -p butterfly 10.10.137.76 ssh
We will get a similar result to the following output if any of the users match with the given password. You should also notice that we have used the flag -L instead of -l. -l is for a single username and -L is for a list of usernames.
How to Perform a Dictionary Attack with Hydra
Let’s look at how to perform a dictionary attack. In real-world scenarios, this is what we will be using Hydra regularly for.
A dictionary attack is where we have single/multiple usernames and we provide a password wordlist to Hydra. Hydra then tests all these passwords against every user in the list.
I am going to use the Rockyou wordlist for this example along with the users.txt file we created in the previous attack. If you are using Kali Linux, you can find the RockYou wordlist under /usr/share/wordlists/rockyou.txt.
Here is the command for a dictionary attack:
$ hydra -L users.txt -P /usr/share/wordlists/rockyou.txt 1010.137.76 ssh
If this attack is successful, we will see a similar result to the other two commands. Hydra will highlight the successful username/password combinations in green for all the matches.
How to Use the Verbosity and Debugging Flags in Hydra
Hydra can be awfully quiet when running large brute-force attacks. If we have to make sure Hydra is doing what it is expected to do, there are two flags we can use.
The verbosity (-v) flag will show us the login attempt for each username/password combination. This can be a bit much when there are a lot of combinations to go through, but if it is something you need, we can use the verbosity flag.
Here is a sample result. We can see that Hydra prints information about failed attempts in addition to the successful matches.
We can also use the debug (-d) flag to gather even more information. Here is the same result when using the debug flag:
We can see that Hydra prints way more information than we need. We will only use debug mode rarely, but it is good to know that we have the option to watch every action Hydra takes when brute-forcing a service.
How to Save Your Results in Hydra
Let’s look at how to save results. There is no point in spending hours cracking a password and losing it due to a system crash.
We can use the -o flag and specify a file name to save the result. Here is the syntax.
$ hydra -l <username> -p <password> <ip> <service> -o <file.txt>
More flags and formats
Hydra also offers a few additional flags and formats that will be useful for us as pen testers. Here are a few:
Service specification
Instead of specifying the service separately, we can use it with the IP address. For example, to brute force SSH, we can use the following command:
$ hydra -l <username> -p <password> ssh://<ip>
How to resume attacks
If Hydra’s session exits when an attack is in progress, we can resume the attack using the -R flag instead of starting from scratch.
$ hydra -R
How to use custom ports
Sometimes system administrators will change the default ports for service. For example, FTP can run in port 3000 instead of its default port 21. In those cases, we can specify ports using the -s flag.
$ hydra -l <username> -p <password> <ip> <service> -s <port>
How to attack multiple hosts
What if we have multiple hosts to attack? Easy, we can use the -M flag. The files.txt will contain a list of IP addresses or hosts instead of a single IP address.
$ hydra -l <username> -p <password> -M <host_file.txt> <service>
Targeted combinations
If we have a list of usernames and passwords, we can implement a dictionary attack. But if we have more information on which usernames are likely to have a set of passwords, we can prepare a custom list for Hydra.
For example, we can create a list of usernames and passwords separated by semicolons like the one below.
username1:password1
username2:password2
username3:password3
We can then use the -C flag to tell Hydra to run these specific combinations instead of looping through all the users and passwords. This drastically reduces the time taken to complete a brute-force attack.
Here is the syntax.
$ hydra -C <combinations.txt> <ip> <service>
We have seen how to work with Hydra in detail. Now you should be ready to perform real-world audits of network services like FTP, SSH, and Telnet.
But as a pen-tester, it is important to understand how to defend against these attacks. Remember, we are the good actors 😎.
How to Defend Against Hydra
The clear solution to help you defend against brute-force attacks is to set strong passwords. The stronger a password is, the harder it is to apply brute-force techniques.
We can also enforce password policies to change passwords every few weeks. Unfortunately, many individuals and businesses use the same passwords for years. This makes them easy targets for brute-force attacks.
Another way to prevent network-based brute-forcing is to limit authorization attempts. Brute-force attacks do not work if we lock accounts after a few failed login attempts. This is common in apps like Google and Facebook that lock your account if you fail a few login attempts.
Finally, tools like re-captcha can be a great way to prevent brute-force attacks. Automation tools like Hydra cannot solve captchas like a real human being.
Summary
Hydra is a fast and flexible network brute-forcing tool to attack services like SSH, and FTP. With a modular architecture and support for parallelization, Hydra can be extended to include new protocols and services easily.
Hydra is undoubtedly a powerful tool to have in your pen-testing toolkit.
Hope this article helped you to understand how Hydra works. If you have any questions, let me know in the comments.
You can connect with me or signup for the Stealth Security Newsletter. If you really enjoyed the article, you can buy me a coffee here.
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
В данной статье пойдет речь о Hydra. Инструмент поддерживает огромное количество служб, благодаря своей быстроте и надёжности он завоевал заслуженную признательность среди тестеров на проникновение.
Введение
Hydra – это программное обеспечение с открытым исходным кодом для перебора паролей в реальном времени от различных онлайн сервисов, веб-приложений, FTP, SSH и других протоколов. Это распараллеленный взломщик для входа в систему, он поддерживает множество протоколов для осуществления атак. Пользователь быстро и с легкостью может добавить новые модули. Hydra предоставляет специалистам в сфере ИБ возможность узнать, насколько легко можно получить несанкционированный доступ к системе с удаленного устройства.
В настоящее время этот инструмент поддерживает следующие протоколы: adam6500, afp, asterisk, cisco, cisco-enable, cvs, firebird, ftp, ftps, http[s]-{head|get|post}, http[s]-{get|post}-form, http-proxy, http-proxy-urlenum, icq, imap[s], irc, ldap2[s], ldap3[-{cram|digest}md5][s], mssql mysql(v4), mysql5, ncp, nntp, oracle, oracle-listener, oracle-sid, pcanywhere, pcnfs, pop3[s], postgres, rdp, radmin2, redis, rexec, rlogin, rpcap, rsh, rtsp, s7-300, sapr3, sip, smb, smtp[s], smtp-enum, snmp, socks5, ssh, sshkey, svn, teamspeak, telnet[s], vmauthd, vnc, xmpp.
Для большинства протоколов поддерживается SSL (например, https-get, ftp-SSL и т.д.). Если это невозможно, поиск необходимых библиотек осуществляется во время компиляции, однако доступных сервисов будет меньше. Чтобы просмотреть доступные варианты, следует ввести в командную строку «hydra».
Перебор пароля конкретного пользователя
Если человек знает только имя пользователя и хочет войти в систему, он может использовать список паролей для их перебора на хосте для службы ftp.
hydra -l ignite -P pass.txt 192.168.1.141 ftp
- здесь опция -l отвечает за имя пользователя; -P – указывает на списки паролей и IP-адреса хоста для службы ftp.
Таким образом, человек смог узнать, что пользователь ignite имеет пароль «123».
Перебор имени пользователя по паролю
Допустим, что у человека есть корректный пароль, но он понятия не имеет, какому пользователю данный пароль принадлежит. Например, есть пароль для входа в систему по ftp. Он может перебрать корректные имена пользователей, чтобы найти подходящее. Следует использовать опцию -L для указания списка имен пользователей и опцию -p для обозначения конкретного пароля.
hydra -L users.txt -p 123 192.168.1.141 ftp
В данном случае список имен пользователей – это «users.txt», для него используется опция –L, а пароль – «123», для его указания используется опция –p по ftp.
Брутфорс (полный перебор) имени пользователя и пароля
Если человек не знает ни имя пользователя, ни пароль, он может выполнить атаку брутфорс на оба значения («username» и «password»), используя списки слов для них обоих. Для выполнения атаки потребуются параметры –P и –U.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp
- «users.txt» – это список слов с именами пользователей, «pass.txt» – это список с паролями.
С помощью атаки теперь человек знает имя пользователя («ignite») и пароль («123»).
Режимы Verbose и Debug
Опция –V используется для включения вербального режима (англ. «verbose mode»), где во время каждой попытки будет отображаться комбинация «логин + пароль». В данном примере есть два списка слов «users.txt» и «pass.txt», таким образом, атака методом перебора заключается в создании различных комбинаций «логин + пароль». В режиме Verbose можно просмотреть все попытки ввода данных.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -V
- «users.txt» включает в себя 5 логинов, а «pass.txt» – 7 паролей, так что количество попыток составило 35.
Опция –d используется для включения режима отладки (англ. «debug mode»). Программа показывает полную информацию об атаке с указанием времени ожидания, сокета, PID, RECV.
hydra -l ignite -P pass.txt 192.168.1.141 ftp -d
Опция –d включает режим отладки, что дает возможность программе вывести на экран подробную информацию об атаке.
Дополнительные опции во время перебора пароля
У Hydra есть опция –e, которая проверит еще 3 типа паролей при переборе. «n» – для пустого пароля, «s» – для пароля, который полностью совпадает с именем пользователя, «r» – для пароля обратного имени пользователя. Все указанные варианты паролей должны быть проверены.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -V -e nsr
Был включен режим Verbose, чтобы человек мог получить подробную информацию о попытках ввода, осуществленных во время перебора.
Сохранение выходных данных
Этот инструмент дает возможность сохранить результаты на диск. В основном это необходимо для ведения отчетности, лучшей читабельности результатов и улучшения практики в дальнейшем. Человек может сохранить результаты атаки в файл, используя параметр –o.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -o result.txt
В данном примере пользователь попытался использовать эту опцию, и у него все получилось. Это было возможно благодаря приведенной выше команде, выходные данные были сохранены в файл «result.txt».
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -o result:json
Человек также использовал эту опцию для сохранения результатов в формате .json, эта опция является уникальной особенностью, предоставляемой Hydra.
Возобновление атаки брутфорс
Иногда бывает так, что атака случайно останавливается из-за неожиданного поведения Hydra. Инструмент решил эту проблему – была добавлена опция –R. Пользователь с ее помощью может возобновить атаку с того места, на котором она была остановлена.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp
hydra -R
В данном примере человек сначала начал атаку, используя первую команду, затем остановил ее, нажав «CTRL + C», а после, используя вторую команду, возобновил нападение.
Создание паролей с различным набором символов
Для генерации паролей с различными наборами символов можно использовать опцию –x. Она используется как –x min:max:charset, где:
- min задает минимальное количество символов в пароле;
- max задает максимальное количество символов в пароле;
- charset может включать «1» – для добавления чисел, «a» – для добавления строчных букв и «A» – для прописных букв. Любой другой добавленный символ помещается в список.
К примеру, возьмем значение «1:2:a1%.».
Сгенерированные пароли будут иметь длину от 1 до 2 символов и содержать строчные буквы, цифры и/или знаки процента и точки.
hydra -l ignite -x 1:3:1 ftp://192.168.1.141
Итак, в примере выше минимальная длина пароля равна 1, а максимальная длина – 3. Пароль будет содержать цифры, таким образом, пароль «123» подходит.
Чтобы лучше понять, что происходит, можно использовать режим –V, чтобы подробно просмотреть результаты.
Атака определенного порта, а не порта по умолчанию
Сетевые администраторы иногда меняют номер порта по умолчанию для некоторых служб по соображениям безопасности. В предыдущих командах Hydra проводила атаку методом перебора на службу ftp, просто указывая имя службы, а не порт, но, как уже становится понятно, порт по умолчанию может быть изменен. Инструмент поможет решить эту проблему с помощью опции –s. Если служба связана с другим портом по умолчанию, его можно определить также с помощью параметра –s.
nmap -sV 192.168.1.141
hydra -L users.txt -P pass.txt 192.168.1.141 ssh -s 2222
Итак, сначала пользователь попытался запустить сканирование Nmap на хосте. Оно показало ему все открытые порты, и ssh находится на порту 2222. Теперь следует выполнить команду Hydra с параметром –s и указанием номера порта.
Была осуществлена атака брутфорс службы ssh с указанием номера порта 2222.
Человек узнал имя пользователя («ignite») и пароль («123»).
Атака нескольких хостов
Человек опять выполняет перебор с использованием файла паролей «pass.txt» и файла имен пользователей «users.txt» на одном хосте, например, 191.168.1.141. Если есть несколько хостов, он может использовать опцию –M, с помощью которой произойдет атака всех хостов сразу.
hydra -L users.txt -P pass.txt -M hosts.txt ftp
Человек создает новый файл («hosts.txt»), он содержит все хосты. Затем он находит 2 актуальных хоста, получает имя пользователя и пароль.
Теперь в приведенную выше команду следует добавить опцию –M для атаки нескольких хостов, поэтому отображение всех попыток, происходящих во время атаки, займет очень много времени. Чтобы упростить процесс, была добавлена опция –F, так что атака завершится после первой найденной пары логин / пароль для любого хоста.
hydra -L users.txt -P pass.txt -M hosts.txt ftp -F
Использование комбинированных записей
Инструмент имеет уникальный параметр –C для использования комбинированных записей. Сначала нужно создать файл, содержащий данные в формате «login:pass», разделенные двоеточием, а затем использовать опцию –C, указывающую имя файла, и выполнить атаку методом перебора вместо использования опций –L / -P отдельно. Таким образом, можно намного быстрее осуществить атаку и сэкономить свое время.
cat userpass.txt
hydra -C userpass.txt 192.168.1.141 ftp
Итак, пользователь создал файл «userpass.txt» с помощью команды cat и введенных данных в формате «login:pass». Затем он использовал опцию –C, чтобы начать атаку.
Одновременное тестирование нескольких логинов
Если пользователь хочет протестировать несколько логинов одновременно, он может использовать опцию –t, указав их количество. Следовательно, Hydra будет выполнять перебор одновременно.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -t 3 -V
Как можно заметить, одновременно предпринимаются три попытки, одновременно проверяются три пароля для пользователя ignite на хосте 192.168.1.141. Можно наблюдать «дочерние изменения» 0,1,2, что означает, что инструмент одновременно проверяет несколько логинов.
Атака на HTTP Login Form
Hydra можно использовать для выполнения атаки методом перебора на простые веб-формы входа, для которых требуются переменные имени пользователя и пароля либо по запросу GET, либо по запросу POST. Для данного тестирования пользователь использовал dvwa (уязвимое веб-приложение), у которого есть страница входа в систему. Эта страница использует метод POST, когда пользователь отправляет ей данные.
hydra -l admin -P pass.txt 192.168.1.150 http-post-form “/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed”
Человек предоставил имя пользователя («admin») и файл с паролями, а также использовал модуль «http-post-form» для выполнения атаки методом перебора на хост 192.168.1.150.
Итак, с паролем все прошло успешно, пользователь обошел страницу входа в систему. Далее он применил брутфорс к полю имени пользователя и пароля, указав уровень безопасности как «низкий». С помощью плагина редактора файлов cookie пользователь узнал файл cookie PHPSESSID и использовал данное значение в команде.
hydra 192.168.1.150 -l admin -P ‘pass.txt’ http-get-form “/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect.:H=Cookie:PHPSESSID=13f2650bddf7a9ef68858ceea03c5d; security=low”
Пользователь просмотрел исходный код страницы и узнал, что страница использует метод GET, нужен модуль «http-GET-form».
Как можно заметить, команда была успешно выполнена, были получены корректные имя пользователя и пароль.
Информация о службах Hydra
Чтобы получить информацию о службе Hydra, следует ввести –h и ее тип. Далее стоит добавить опцию –U.
hydra http-get-form -U
В данном случае «http-get-form» является одной из служб, поддерживаемых Hydra, и опция –U помогла получить подробную информацию о ее работе.
Атака на защищенное соединение
При выполнении атаки на ftp-соединение пользователь просто указывает имя службы с соответствующими параметрами, но если на хосте открыт ftp-порт и ftp защищен, следует ввести данную команду:
hydra -l ignite -P pass.txt ftp://192.168.1.141
Эта команда не будет выполнена должным образом, и, следовательно, будет найдено 0 корректных паролей. Итак, чтобы выполнить атаку на защищенное ftp-соединение, нужно ввести данную команду:
hydra -l ignite -P pass.txt ftps://192.168.1.141
Эта команда будет успешной и покажет пользователю 1 корректный пароль.
Это один из способов атаки на защищенный ftp, есть еще такой:
hydra -l ignite -P pass.txt 192.168.1.141 ftp
hydra -l ignite -P pass.txt 192.168.1.141 ftps
Первая атака не сработала, так как хост 192.168.1.141 имеет защищенный ftp, но вторая – была успешной и вывела на экран корректный пароль. Таким образом, пользователь может выполнять атаки методом перебора на хосты, на которых открыты защищенные службы.
Атака хостов с активным прокси
Стоит также рассказать о том, как Hydra может атаковать хосты с включенным прокси-сервером. Сначала пользователь попытался выполнить ту же команду с параметрами -l -p на хосте 192.168.1.141 в службе ftp и увидел, что пароль не был найден. Следовательно, он запустил сканирование Nmap для хоста и понял, что список служб и портов открыт. Итак, на порту 1080 был установлен прокси-сервер «socks5» без какой-либо аутентификации.
Прокси без аутентификации
Hydra имеет два варианта включения прокси-сервера. В данной статье будут рассмотрены обе опции. Перейдем к способу номер 1.
Переменная среды
Чтобы включить прокси-сервер, пользователь использовал следующую команду:
export HYDRA_PROXY=socks5://192.168.1.141:1080
А затем он ввел следующую команду и смог получить 1 корректный пароль:
hydra -l ignite -P pass.txt 192.168.1.141 ftp
Proxychains
Пользователь открыл файл /etc/proxychains4.conf и добавил в него сведения о прокси-сервере с указанием хоста и порта. Затем он с помощью proxychains осуществил атаку брутфорс.
cat /etc/proxychains4.conf
proxychains hydra -l ignite -P pass.txt 192.168.1.141 ftp
Аутентифицированный прокси
Пользователь заполучил желаемый пароль («123») для хоста. В вышеупомянутой атаке не была включена какая-либо аутентификация. Теперь он попробовал использовать прокси-сервер с включенной аутентификацией.
Proxychains
Пользователь попытался перебрать цель с помощью proxychains, но в данной операции ему было отказано, поскольку на прокси-сервере была включена аутентификация.
proxychains hydra -l ignite -p pass.txt 192.168.1.141 ftp
Он добавил имя пользователя и пароль в файл /etc/proxychains4.conf.
cat /etc/proxychains4.conf
Затем с помощью proxychains он начал атаковать, используя приведенную ниже команду.
proxychains hydra -l ignite -P pass.txt 192.168.1.141 ftp
Следовательно, после выполнения этой команды был получен корректный пароль для хоста с включенным прокси-сервером.
Переменная среды
export HYDRA_PROXY=socks5://raj:1234@192.168.1.141:1080
В данном примере «raj» – это имя пользователя, «1234» – пароль прокси-сервера; 192.168.1.141 – хост, а 1080 – порт, на котором включен прокси-сервер. После этого человек использовал команду:
hydra -l ignite -P pass.txt 192.168.1.141 ftp
Был получен корректный пароль для хоста 192.168.1.141.
Автор переведенной статьи: Divya Adwani.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.
Тестирование безопасности серверов и веб-приложений имеет очень важное значение, поскольку если уязвимость смогли найти вы, то ее найдет и злоумышленник, а значит он сможет получить доступ к вашим персональным данным или испортить приложение. Одним из самых эффективных и очень простых методов взлома есть перебор паролей. Поэтому очень важно убедиться, что ваш пароль будет сложно перебрать.
Hydra — это программное обеспечение с открытым исходным кодом для перебора паролей в реальном времени от различных онлайн сервисов, веб-приложений, FTP, SSH и других протоколов. Особенность инструмента в том, что здесь выполняется перебор не по хэшу, а напрямую с помощью запросов к серверу, это значит что вы сможете проверить правильно ли настроены фаерволы, блокируются ли такие попытки, а также можете ли вы вообще определить такую атаку на сервер. В этой статье мы рассмотрим как пользоваться thc hydra для перебора паролей.
Установка THC Hydra
Первым делом нам необходимо установить этот инструмент. Это довольно популярная утилита для тестирования безопасности, поэтому вы можете найти ее в официальных репозиториях. Для установки нужных пакетов в 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 перебирает пароли из переданного ей файла, оттуда же берутся и логины. Также вы можете попросить программу генерировать пароли самостоятельно, на основе регулярного выражения. А вот уже их подстановка и передача на удаленный сервер настраивается с помощью строки параметров модуля. Естественно, что файлы с паролями нужно заготовить. В этой статье для примеров я буду использовать файл паролей от 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. Строка запуска программы будет выглядеть вот так:
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 — запуск и просмотр статуса атаки.
Я думаю, вы без труда во всем этом разберетесь когда освоите консольный вариант. Например, так выполняется настройка перебора паролей ftp:
Выводы
В этой статье мы рассмотрели как пользоваться hydra для перебора паролей от различных сетевых сервисов онлайн, а также тестирования безопасности своих систем. Помните, что использовать такие инструменты против чужих систем — преступление. Вы можете тестировать только свои машины и службы. Проводить время от времени такое тестирование в большой компании может быть крайне полезно.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Hydra нельзя отнести к простым и легко дающимся новичкам. Не надо отчаиваться, если вам не удалось оседлать hydra, я рекомендую вам посмотреть на программу BruteX. Она автоматизирует процесс подбора, более того, она использует ту же самую hydra, но сама вводит необходимые ключи и не нужно искать файлы с именами и паролями, поскольку они поставляются вместе с программой.
ПРОТОКОЛ — это протокол, который вы хотите атаковать, например, ftp, smtp, http-get или любой из доступных: 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.
ОПЦИИ Hydra
Код:
-R восстановить предыдущую прерванную/оборванную сессию
-S выполнить SSL соединение
-s ПОРТ если служба не на порту по умолчанию, то можно задать порт здесь
-l ЛОГИН или -L ФАЙЛ с ЛОГИНАМИ (именами), или загрузить несколько логинов из ФАЙЛА
-p ПАРОЛЬ или -P ФАЙЛ с паролями для перебора, или загрузить несколько паролей из ФАЙЛА
-x МИНИМУМ:МАКСИМУМ:НАБОР_СИМВОЛОВ генерация паролей для брутфорса, наберите "-x -h" для помощи
-e nsr "n" — пробовать с пустым паролем, "s" — логин в качестве пароля и/или "r" — реверс учётных данных
-u зацикливаться на пользователя, а не на парлях (эффективно! подразумевается с использованием опции -x)
-C ФАЙЛ формат где "логин:пароль" разделены двоеточиями, вместо опции -L/-P
-M ФАЙЛ список серверов для атак, одна запись на строку, после двоеточия ':' можно задать порт
-o ФАЙЛ записывать найденные пары логин/пароль в ФАЙЛ вместо стандартного вывода
-f / -F выйти, когда пара логин/пароль подобрана (-M: -f для хоста, -F глобально)
-t ЗАДАЧИ количество запущенных параллельно ЗАДАЧ (на хост, по умолчанию: 16)
-w / -W ВРЕМЯ время ожидания ответов (32 секунды) / между соединениями на поток
-4 / -6 предпочитать IPv4 (по умолчанию) или IPv6 адреса
-v / -V / -d вербальный режим / показывать логин+пароль для каждой попытки / режим отладки
-q не печатать сообщения об ошибках соединения
-U подробные сведения об использовании модуля
server цель: DNS, IP или 192.168.0.0/24 (эта ИЛИ опция -M)
service служба для взлома (смотрите список поддерживаемых протоколов)
OPT некоторые модули служб поддерживают дополнительный ввод (-U для справки по модулю).
Пароли для Hydra
THC-Hydra поставляется без логинов/паролей. Нам нужно самим где-то их раздобыть. И вот здесь нам поможет недавняя статья: Списки слов для атаки по словарю: пароли, имена пользователей, каталоги
Чтобы воспользоваться программой dpl4hydra.sh на Kali Linux, нам сначала нужно её скачать (по какой-то причине авторы Kali не включили её в стандартную установку).
Код:
wget https:/raw.githubusercontent.com/vanhauser-thc/thc-hydra/master/dpl4hydra.sh
Теперь создаём необходимые для работы программы файлы:
Код:
touch /usr/local/etc/dpl4hydra_full.csv /usr/local/etc/dpl4hydra_local.csv
Запускаем первый раз
Теперь можно сделать так:
чтобы скачать дефолтные пароли для всех брендов. А можно задать конкретный бренд, например, меня очень интересуют популярные роутеры D-Link, то я набираю
По идее, должен сгенерироваться файл с дефолтными паролями устройств D-Link, но этого не происходит из-за каких-то ошибок парсинга. Пусть нас это не огорчает, ведь ссылку на статью с паролями я уже дал.
Графический интерфейс Hydra
Кстати, для пользователей Linux доступен графический интерфейс (GTK gui), для его запуска наберите
Использование Hydra в командной строке
Для использования в командной строке синтаксис следующий:
Для атаки одной цели или сети, вы можете использовать новый стиль ://
hydra [некоторые опции командной строки] ПРОТОКОЛ://ЦЕЛЬ:ПОРТ/ОПЦИИ
Старая старый синтаксис также поддерживается, а если вы хотите, то дополнительно можете задать цели из текстового файла, при этом вы *должны* использовать этот синтаксис:
hydra [некоторые опции командной строки] [-s порт] ЦЕЛЬ ПРОТОКОЛ ОПЦИИ
Через опции командной строки вы определяете, какие логины и пароли перебирать, нужно ли использовать SSL, во сколько потоков осуществлять атаку и т.д.
- ПРОТОКОЛ — это протокол, который вы хотите атаковать, например, ftp, smtp, http-get или любой из доступных
- ЦЕЛЬ — это целевая машина, которую вы хотите атаковать
- ОПЦИИ дополнительные значения, которые задаются для модуля ПРОТОКОЛ
Первое — выберите вашу цель
Есть три способа задать цель для атаки:
- Единичная цель в командной строке: просто введите IP или DNS адрес
- диапазон подсети в командной строке:
- список хостов в текстовом файле: один хост на строку (подробности ниже)
Второе — выберите ваш протоколов
Старайтесь избегать telnet, так как нельзя надёжно определить, соединение успешно или нет. Используйте сканер портов, чтобы увидеть, какие протоколы включены на целе.
Третье — проверьте, имеет ли модуль дополнительные параметры
например,
Четвёртое — порт назначение
Это необязательно! Если на удалённой машине используется порт по умолчанию для этой службы, то программа hydra сама знает, какие порты используется для ПРОТОКОЛов
Если вы задали использовать SSL (опция «-S»), то по умолчанию будет использоваться обычный порт SSL.
Если вы используете нотацию «://», то вы должны использовать квадратные скобки [ ], если вы хотите цель для атак определить адресами IPv6 или CIDR («192.168.0.0/24»)
Код:
hydra [некоторые опции командной строки] ftp://[192.168.0.0/24]/
hydra [некоторые опции командной строки] -6 smtp://[2001:db8::1]/NTLM
Обратите внимание, что hydra делает все атаки только на IPv4!
Если вы хотите атаковать адреса IPv6 вы должны добавить опцию «-6». Тогда все атаки будут на IPv6.
Если вы хотите задать цели через текстовый файл, вы не можете использовать обозначение ://, используйте старый стиль и задайте протокол (и опции модуля):
Код:
hydra [некоторые опции командной строки] -M targets.txt ftp
Вы также можете указать порт для каждой цели, добавив «:<порт>» после каждой записи цели в файле, например:
Код:
foo.bar.com
target.com:21
[fe80::1%eth0]
[2001::1]
[2002::2]:8080
[2a01:24a:133:0:00:123:ff:1a]
Обратите внимание, если вы хотите присоединить цели IPv6, вы должны указать опцию -6 и должны поместить адреса IPv6 в квадратные скобки в файле (!) примерно так:
Код:
foo.bar.com
target.com:21
unusual.port.com:2121
default.used.here.com
127.0.0.1
127.0.0.1:2121
Есть много разных опций, как атаковать с логинами и паролями.
Опциями -l для логина и -p для пароля, вы можете сказать hydra использовать только эти логин и/или пароль для попытки.
С -L для логинов и -P для паролей вы указываете текстовые файлы с записями, например:
Код:
1. hydra -l admin -p password ftp://localhost/
2. hydra -L default_logins.txt -p test ftp://localhost/
3. hydra -l admin -P common_passwords.txt ftp://localhost/
4. hydra -L logins.txt -P passwords.txt ftp://localhost/
Дополнительно вы также можете пробовать пароли, основанные на логины, это делается опцией «-e».
Опция «-e» имеет три параметра:
Код:
s — пробовать логин как пароль
n — пробовать пустой пароль
r — перестановка в логине символов с зада на перёд и использование получившегося слова в качестве пароля
К примеру, если вы хотите попробовать логин в качестве пароля и пустой пароль, то вам нужно в командной строке указать «-e sn».
Для пароля кроме -p/-P есть ещё пара режимов:
Вы можете использовать текстовый файл, в котором логины и пароли разделены двоеточием, например:
Код:
admin:password
test:test
foo:bar
Это популярный стиль записи листинга дефольтных значений аккаунта. В таком же виде генерирует файлы dpl4hydra.sh (генератор дефолтных логинов и паролей для hydra).
Использовать такой текстовый файл нужно с опцией -C, обратите внимание, что в этом режиме нельзя использовать опции -l/-L/-p/-P (хотя -e nsr можно).
Пример:
Код:
hydra -C default_accounts.txt ftp://localhost/
И наконец, есть режим брутфорса с опцией -x (её нельзя использовать с -p/-P/-C):
-x минимальная_длина:максимальная_длина:набор_символов
Набор символов определяет ‘a’ для букв в нижнем регистре, ‘A’ — для букв в вернем регистре, ‘1’ — для цифр, а для всего другого используйте их реальные символы.
Примеры:
Код:
-x 1:3:a генерирует пароли длинной от 1 до 3 символов, состоящие только из букв в нижнем регистре
-x 2:5:/ генерирует пароли длинной от 2 до 5 символов, содержание только слэши
-x 5:8:A1 генерирует пароли длинной от 5 до 8 символов, с большими буквами и цифрами
Пример:
Код:
hydra -l ftp -x 3:3:a ftp://localhost/