You are here: Home » Атаки на пароли » Hydra

Hydra

Описание Hydra

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

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

В настоящее время поддерживаются следующие протоколы: Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, 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, RTSP, 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.

Домашняя страница: https://www.thc.org/thc-hydra/

Автор: Van Hauser, Roland Kessler

Лицензия: AGPL-3.0

Справка по Hydra

Использование:

hydra [[[-l ЛОГИН|-L ФАЙЛ] [-p ПАРОЛЬ|-P ФАЙЛ]] | [-C ФАЙЛ]] [-e nsr] [-o ФАЙЛ] [-t ЗАДАЧИ] [-M ФАЙЛ [-T ЗАДАЧИ]] [-w ВРЕМЯ] [-W ВРЕМЯ] [-f] [-s ПОРТ] [-x МИН:МАКС:НАБОРЫ СИМВОЛОВ] [-SOuvVd46] [service://server[:ПОРТ][/OPT]]

Опции:

-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  вербальный режим / показывать логин+пароль для каждой попытки / режим отладки 
-O        использовать старые SSL v2 и v3
-q        не печатать сообщения об ошибках соединения
-U        подробные сведения об использовании модуля
server    цель: DNS, IP или 192.168.0.0/24 (эта ИЛИ опция -M)
service   служба для взлома (смотрите список поддерживаемых протоколов)
OPT       некоторые модули служб поддерживают дополнительный ввод (-U для справки по модулю)

Для настройки прокси используйте переменные окружения HYDRA_PROXY_HTTP или HYDRA_PROXY
и, если необходимо, HYDRA_PROXY_AUTH.
Напр.:  % export HYDRA_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://)
        % export HYDRA_PROXY_HTTP=http://proxy:8080
        % export HYDRA_PROXY_AUTH=user:pass

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

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

  • asterisk
  • afp
  • cisco
  • cisco-enable
  • cvs
  • firebird
  • ftp
  • ftps
  • http-head
  • https-head
  • http-get
  • https-get
  • http-post
  • https-post
  • http-get-form
  • https-get-form
  • http-post-form
  • https-post-form
  • http-proxy
  • http-proxy-urlenum
  • icq
  • imap
  • imaps
  • irc
  • ldap2
  • ldap2s
  • ldap3
  • ldap3s
  • ldap3-crammd5
  • ldap3-crammd5s
  • ldap3-digestmd5
  • ldap3-digestmd5s
  • mssql
  • mysql
  • nntp
  • oracle-listener
  • oracle-sid
  • pcanywhere
  • pcnfs
  • pop3
  • pop3s
  • postgres
  • rdp
  • redis
  • rexec
  • rlogin
  • rsh
  • rtsp
  • s7-300
  • sip
  • smb
  • smtp
  • smtps
  • smtp-enum
  • snmp
  • socks5
  • ssh
  • sshkey
  • svn
  • teamspeak
  • telnet
  • telnets
  • vmauthd
  • vnc
  • xmpp

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

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

  -x MIN:MAX:CHARSET
где
     MIN    минимальное количество символов в пароле
     MAX     максимальное количество символов в пароле
     CHARSET это указание наборов символов для использования в генерации. Валидными значениями CHARSET являются: 
     'a' для букв нижнего регистра, 'A' для букв верхнего регистра, '1' для чисел, а для всех остальных, просто добавляйте их самих.

Примеры:

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

-x 3:5:a

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

-x 5:8:A1

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

-x 1:3:/

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

-x 5:5:/%,.-

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

cisco

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

cisco-enable

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

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

Примеры:

hydra -P pass.txt target cisco-enable (прямой консольный доступ)
hydra -P pass.txt -m cisco target cisco-enable (пароль входа cisco)
hydra -l foo -m bar -P pass.txt target cisco-enable (AAA логин foo, пароль bar)

cvs

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

firebird

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

http-get, https-get, http-post, https-post

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

Например: "/secret" или "http://bla.com/foo/bar" или "https://test.com:8080/members"

http-get-form, https-get-form, http-post-form, https-post-form

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

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

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

Синтаксис:

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

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

C=/page/uri

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

(h|H)=My-Hdr\: foo

для отправки с каждым запросом заданного пользователем HTTP заголовка

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

Примечание: 'h' добавит определённый пользователем заголовок в конец, независимо от того, отправила ли уже Hydra заголовок или нет.

'H' заменит значение этого заголовка, если оно существует, тем, которое указал пользователь или добавит заголовок в конец.

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

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

Примеры:

"/login.php:user=^USER^&pass=^PASS^:incorrect"
"/login.php:user=^USER^&pass=^PASS^&colon=colon\:escape:S=authlog=.*success"
"/login.php:user=^USER^&pass=^PASS^&mid=123:authlog=.*failed"
"/:user=^USER&pass=^PASS^:failed:H=Authorization\: Basic dT1w:H=Cookie\: sessid=aaaa:h=X-User\: ^USER^"
"/exchweb/bin/auth/owaauth.dll:destination=http%3A%2F%2F<target>%2Fexchange&flags=0&username=<domain>%5C^USER^&password=^PASS^&SubmitCreds=x&trusted=0:reason=:C=/exchweb"

http-proxy

Модуль http-proxy опционально принимает страницу на которой аутентификация.

По умолчанию это http://www.microsoft.com/)

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

http-proxy-urlenum

Модуль http-proxy-urlenum только использует опцию -L, а не опции -x или -p/-P. После опции -L должно идти имя файла с URL списком, которые нужно пробовать как прокси. Учётные данные прокси могут быть указаны как опциональный параметр, например:

hydra -L urllist.txt -s 3128 target.com http-proxy-urlenum user:pass
hydra -L urllist.txt http-proxy-urlenum://target.com:3128/user:pass

imap, imaps

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

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

Пример: imap://target/TLS:PLAIN

irc

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

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

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

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

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

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

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

Подсказка: для аутентификации в windows active directy ldap это обычно cn=^USER^,cn=users,dc=foo,dc=bar,dc=com for domain foo.bar.com

mysql

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

nntp

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

oracle-listener

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

pop3, pop3s

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

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

Пример: pop3://target/TLS:PLAIN

postgres

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

rdp

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

Например:

hydra rdp://192.168.0.1/firstdomainname -l john -p doe

s7-300

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

smb

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

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

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

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

Пример:

hydra smb://microsoft.com -l admin -p tooeasy -m "local lmv2"
hydra smb://microsoft.com -l admin -p D5731CFC6C2A069C21FD0D49CAEBC9EA:2126EE7712D37E265FD63F2C84D2B13D::: -m "local hash"
hydra smb://microsoft.com -l admin -p tooeasy -m "other_domain:SECONDDOMAIN"

smtp, smtps

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

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

Пример: smtp://target/TLS:PLAIN

smtp-enum

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

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

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

hydra smtp-enum://192.168.0.1/vrfy -l john -p localhost

snmp

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

   READ  выполняет запросы чтения (по умолчанию)
   WRITE выполняет запросы записи
   1     использовать SNMP версии 1 (по умолчанию)
   2     использовать SNMP версии 2
   3     использовать SNMP версии 3
           Помните, что SNMP версии 3 обычно использует и логин и пароль!
           SNMP версии 3 имеет следующие дополнительные подпараметры:
             MD5   использовать аутентификацию MD5 (по умолчанию)
             SHA   использовать SHA аутентификацию
             DES   использовать DES шифрование
             AES   использовать AES шифрование
           если не указан параметр -p/-P, SNMPv3 выполняется noauth, которая
           требует только пароль (или имя пользователя) но не оба.

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

hydra -L user.txt -P pass.txt -m 3:SHA:AES:READ target.com snmp
hydra -P pass.txt -m 2 target.com snmp

sshkey

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

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

svn

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

telnet, telnets

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

xmpp

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

Помните, что переданная цель должна быть fdqn, так как значение используется в запросе Jabber init, пример: hermes.jabber.org

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

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

hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 ssh://192.168.1.123

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

hydra -l user -P passlist.txt ftp://192.168.0.1

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

hydra -L logins.txt -P pws.txt -M targets.txt ssh

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

hydra -l admin -p password ftp://[192.168.0.0/24]/

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

hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN

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

hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5

Установка Hydra

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

Установка в BlackArch

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

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

sudo apt-get remove hydra
sudo apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2.1-dev libncp-dev
git clone https://github.com/vanhauser-thc/thc-hydra.git
cd thc-hydra/
./configure
make
sudo make install

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

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

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

xhydra

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

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

Скриншоты Hydra

31

32

33

Инструкции по Hydra

Близкие программы:

Рекомендуемые статьи: