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://github.com/vanhauser-thc/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 — инструмент для уменьшения списка паролей за счёт отфильтровывания их по заданным параметрам.
Comments are Closed