thc hydra что это

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

THC-Hydra

Содержание

Описание Hydra

Как пользоваться Hydra

Сущестествует база логинов и паролей, в качестве которой программа использует специальные словари. Чтобы повысить вероятность успешного подбора паролей и логинов можно задавать маски, устанавливать длину и предполагаемые символы, из которых они могут состоять, также есть возможность генерировать пароли по уже готовым алгоритмам.

Модульность отличает Hydra от других, похожих на нее программ. Благодаря модулям можно подключать к программе новые компоненты, которые обеспечивают поддержку новых сетевых устройств и протоколов. Новые модули можно скачать на официальном сайте программы, у других пользователей или же написать самому.

Синтаксис Hydra

Рекомендации

Если необходимо пробовать логин в качестве пароля и пустой пароль до нужно в командной строке указать «-e sn»,

Можно использовать текстовый файл, в котором пароли и логины разделены двоеточием, например:

Набор символов определяется ‘a’ для букв нижнего регистра, ‘A’ для букв верхнего регистра, ‘1’ для цифр, для остального используются их реальные символы.

При помощи третьего параметра командной строки (ЦЕЛЬ СЛУЖБА ОПЦИИ) можно передавать модулю одну опцию, например:

Дополнительная информация по опции модуля выдается по запросу :

Для настройки прокси необходимо использовать переменные окружения HYDRA_PROXY_HTTP (определяет веб прокси), HYDRA_PROXY (сканирование через дефолтный вызов веб-прокси) и HYDRA_PROXY_AUTH (аутентификация).

Через опции командной строки можно определить какие логины и пароли необходимо перебирать, необходимо ли при этом использовать SSL, сколько использовать потоков и так далее.

Источник

THC-Hydra 8.5

thc hydra что это. Смотреть фото thc hydra что это. Смотреть картинку thc hydra что это. Картинка про thc hydra что это. Фото thc hydra что это

thc hydra что это. Смотреть фото thc hydra что это. Смотреть картинку thc hydra что это. Картинка про thc hydra что это. Фото thc hydra что это

Основная информация о программе

THC-Hydra — это одна из самых быстрых и надежных программ для проверки безопасности и устойчивости систем к подбору паролей методом перебора (брутфорса). Также с её помощью можно восстанавливать забытые пароли к любым ресурсам, использующим для входа в систему пару логин и пароль.

В базовой комплектации Гидра поддерживает свыше 50 различных протоколов и форматов обращений. Но главное её отличие от программ подобного класса, помимо высокой скорости работы и параллельных переборов в несколько потоков — это модульность, можно подключать новые компоненты, обеспечивающие поддержку самых новых сетевых устройств и протоколов. Новые модули можно найти на официальном сайте программы, у сторонних авторов либо написать самому.

В качестве базы логинов и паролей программа использует специальные словари, для улучшения вероятности успешного подбора можно задавать маски, указывать длину и возможные символы, из которых они могут состоять, кроме того есть возможность подбирать программно сгенерированные пароли по нескольким алгоритмам. Программа может осуществлять параллельный перебор на нескольких протоколах одновременно. Средняя скорость перебора 900 паролей в секунду.

Вот небольшой список протоколов и устройств, с которыми может работать THC-Hydra: HTTP, FTP, SMTP, POP3, IMAP, MySQL, NCP, NNTP, SOCKS, SSH, XMPP, маршрутизаторы Cisco и Mikrotik, сетевые камеры наружного наблюдения, контроллеры Simatic S7-300 и многое другое. Пользователю доступны версии Гидры практически для всех операционных систем, кроме того она распространяется с открытым исходным кодом, а это значит, что любой программист может посмотреть, как реализована та или иная функция и удостоверится в отсутствии вредоносных включений в код перед проведением пентеста.

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

Источник

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

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.

Автор: Van Hauser, Roland Kessler

Справка по Hydra

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

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

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

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

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

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

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

cisco

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

cisco-enable

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

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

Модуль 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 без переменных. Параметр принимает три разделённых «:» значения, плюс опциональные значения.

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

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

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

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

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

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

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

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

http-proxy

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

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

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

http-proxy-urlenum

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

imap, imaps

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

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

Модуль 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.

postgres

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

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

s7-300

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

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

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

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

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

smtp, smtps

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

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

smtp-enum

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

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

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

snmp

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

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

sshkey

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

Модуль 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):

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

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

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

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

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

Установка Hydra

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

Установка в BlackArch

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

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

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

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

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

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

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

Источник

Research the OpenSource: Ory/Hydra

Меня зовут Богдан Хрисанфов и я работаю Lead System Analyst в Parimatch Tech. В этой статье постарался разобраться, что такое Hydra, и как она может помочь с множественными партнерскими интеграциями или предоставлением доступов к своему внешнему логину другим сервисам, аналогично логину в Google или Facebook.

Intro

Hydra — это облачная реализация Oauth2 с открытым исходным кодом (open-source).

Hydra организует потоки Oauth2 для аутентификации приложений и авторизации доступа на основе согласия пользователя. Предприятия могут подключать своих поставщиков удостоверений и системы согласия к Hydra, чтобы обеспечить непрерывный процесс входа в систему Oauth2, аналогичный тому, что используется в Google или Facebook.

Также для знакомства с темой можно посмотреть пятиминутный туториал по Ory Hydra.

Если хотите освежить в памяти Oauth2 или глубже понять его поток кода — переходите по ссылке на статью с погружением в тему.

Хороший пример работы Oauth2 — диаграмма последовательности UML:

Hydra упакована в docker и развернута в контейнере кластеров. Но в нашей серии «Использование исходного кода» мы сосредоточены на чтении исходного кода, чтобы изучить дизайн и реализацию программного обеспечения. Таким образом, если отложить стратегию развертывания, Hydra — это двоичный файл, написанный на Golang, который можно вызывать из командной строки.

thc hydra что это. Смотреть фото thc hydra что это. Смотреть картинку thc hydra что это. Картинка про thc hydra что это. Фото thc hydra что это

hydra clients | keys | serve| token.

Есть несколько других команд помощника, таких как:

hydra migrate sql, hydra token client, hydra token flush | revoke и hydra version.

Ниже рассмотрим команду hydra migrate sql, так как остальные не имеют особого значения для серии «Использования исходного кода».

Input

Первый интересный момент — это то, как команды организованы в коде. У всех в какой-то момент карьеры был неприятный опыт, когда приходилось писать программы на основе командной строки с подверженным ошибкам синтаксическим анализом команд, жестким сравнением строк и произвольной обработкой исключений, которые невозможно поддерживать при расширении набора команд.

К счастью, здесь пригодится Cobra — библиотека для построения командной строки на основе Golang. Вы можете построить иерархию команд, прикрепив к родительской команде структуру, содержащую новую команду, описание и соответствующий обработчик. Обычно вы начинаете с корневой команды и создаете подкоманды для определенных функций, например, начиная с корня hydra, затем hydra clients, а затем hydra clients create.

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

постоянные флаги применяются к команде и всем ее подкомандам

локальные флаги применяются только к самой команде

Говоря о флагах, при написании серьезного программного обеспечения, такого как Identityserver, невозможно избежать конфигурирования. Конфигурация существует во многих различных форматах: файлы JSON, файлы YAML, переменные среды, удаленные серверы, вводы командной строки и так далее. Без подходящего инструмента каждая программа будет изобретать велосипед, чтобы понять различные форматы.

Чтобы понять различные форматы использую такие библиотеки как Viper. Он обеспечивает уровень абстракции над сложной группой возможных форматов конфигурации. Все, что нужно, это установить тип конфигурации (например, YAML), затем указать Viper на вход (например, файл) и указать ему прочитать конфигурацию. После этого все манипуляции с конфигурацией в коде так же просты, как получение и установка значений в структуре карты. При использовании Viper простая прямая конфигурация может быть слишком шаблонной для вызывающих абонентов. Флаги добавляются с течением времени, и они могут перекрывать друг друга или устаревать. Эта сложность не нужна для основной бизнес-логики.

Hydra добавляет еще один уровень абстракции, называемый поставщиком конфигурации. Поставщик конфигураций предоставляет значимые и логические функции, которые проверяют, агрегируют и интерпретируют исходную конфигурацию.

Database Setup

База данных Hydra должна хранить пользовательскую информацию и технические параметры JWK (JSON Web Key), Oauth2 flow и т.д. Очень важно правильно настроить таблицы базы данных для правильной работы программного обеспечения.

Hydra предоставляет hydra migrate sql-команду для подготовки нужного набора таблиц базы данных за один раз. При вызове команды Hydra вызывает менеджер миграции базы данных: менеджер распечатывает изменения, которые Hydra планирует применить к базе данных, а затем выполняет эти изменения.

Кстати, для красивой модификации подачи данных мы используем небольшую библиотеку под названием tablewriter — это избавляет нас от рутинной задачи форматирования отступов в выводе консоли. Также tablewriter делает настройку базы данных управляемой, потому что его можно применять к существующим базам данных для добавления столбцов, индексов или удаления устаревших схем. Hydra управляет этим с помощью инструмента sql-migrate. Это также родной для Golang инструмент, в который Hydra напрямую интегрируется. Инструмент требует, чтобы изменения базы данных были написаны на SQL, как на их наиболее естественном языке, и сохранены в файлах.

Каждый файл содержит операторы SQL, которые сгруппированы в специальных комментариях +migrate Up и +migrate Down. Два комментария представляют собой инструкции для sql-migrate, чтобы взять набор операторов SQL в качестве миграции или отката и запустить их в транзакционном режиме.

Интересный и тонкий момент заключается в том, что, когда у вас есть несколько файлов SQL, sql-migrate сортирует их по имени файла и выполняет в указанном порядке.

Представим, что первый файл, вероятно, является базовой установкой, которая создает таблицы и индексы. А последующие файлы — это модификации, добавляемые с течением времени для расширения или упрощения схем.

Что еще стоит упомянуть: Hydra поддерживает несколько продуктов баз данных, таких как MySQL, PostgreSQL и CockroachDB. Также существует еще один уровень абстракции, который обрабатывает операции с базой данных, чтобы скрыть сложность различных продуктов баз данных.

Как и почти любое другое современное программное обеспечение, Hydra предоставляет базу данных в памяти для тестирования. База данных в оперативной памяти построена с использованием простых списков и карт для объектов, которые были бы записаны в таблицы базы данных. Эффективность не является первостепенной задачей, поскольку большинство компьютеров могут в мгновение ока перебирать сотни элементов списка / карты в памяти, и этого достаточно для тестирования.

Servers

Точка входа в основной корпус — hydra serve, который запускает серверы для потоков Oauth2. У серверов Hydra два набора конечных точек: административные и общедоступные.

API интерфейсы администратора предназначены для конфиденциальных операций, таких как регистрация клиентов, проверка токенов и интеграция с поставщиками удостоверений.

Общедоступные API интерфейсы предназначены для операций приложения, например, для запроса авторизации, обмена токенами и других. Чтобы включить отдельные конфигурации безопасности, Hydra позволяет пользователям запускать два набора конечных точек на отдельных серверах: hydra serve public и hydra serve admin. Конечно, можно запустить их вместе hydra serve all.

Несмотря на два типа серверов, настройка серверов очень похожа. По сути, он создает легкий HTTP-сервер с соответствующей маршрутизацией и обработчиками. Hydra использует negroni. Есть много других подобных библиотек, конечная цель которых — создавать модульные веб-приложения. Интерфейсы этих библиотек обеспечивают инкрементную регистрацию обработчиков запросов для конечных точек.

Чтобы уточнить терминологию, конечная точка — это метод HTTP на пути URL.

В эти библиотеки также встроено множество настраиваемых «промежуточных программ» для оптимизации рабочих аспектов, таких как ведение журнала, анализ запросов, логика до / после, ограничение скорости и т. д.

Кстати, на мой взгляд, «промежуточное ПО» — это слишком перегруженный термин. В этом контексте это в основном означает слои оберток вокруг обработчика, через которые запрос и ответ будут изменяться / дополняться / отслеживаться по мере их прохождения.

В настройках сервера настроены четыре типа конечных точек. Некоторые из них являются конечными точками администратора, другие — общедоступными.

Первый тип интерфейсов — это клиентские API. API интерфейсы клиента — это API интерфейсы администратора. Внутренне логика довольно проста: client-структура определяется как информационная модель концепции клиента, которая содержит такие поля, как идентификатор клиента, секрет клиента, зарегистрированные области, URI перенаправления и многое другое. Клиентские API интерфейсы поддерживают операции create, get, list и delete с client-объектами, что приводит к изменению в текущей базе данных.

Второй тип интерфейсов — это API интерфейсы администратора, которые поддерживают как вход в систему, так и управление пользователем. Внутренне Get/Accept/Reject операции выполняются для входа пользователя и управление пользователем. Это API интерфейсы только для администратора, нацеленные на интеграцию с поставщиком удостоверений (IDP).

Чтобы использовать логин пользователя в качестве примера, в перенаправленный из Hydra к IDP запрос на вход включен параметр challenge. IDP будет использовать этот параметр challenge в качестве ключа поиска для Get-статуса входа в систему вместе с другой информацией о потоке авторизации от Hydra.

Если возвращается действительный сеанс входа из предыдущего входа в систему, IDP пропускает вход — в противном случае IDP требует входа в систему. После успешного входа в систему IDP отправляет Accept-запрос на подтверждение входа и перенаправляет приложение обратно в Hydra.

Если войти не удалось, IDP Reject вместо этого отправит ошибку. Теперь приложение вернулось в Hydra, и Hydra получила подтверждение входа в систему для авторизации. Согласие пользователя обрабатывается примерно так же. Очевидно, что это Get/Accept/Reject соответствует чтению / записи логина пользователя и данных авторизации в базе данных.

Также доступны другие API интерфейсы, такие как выход из системы и отзыв авторизации, но мы не будем на них останавливаться в этой статье — подробнее это описано в оригинальной документации.

Последний тип конечных точек — это API интерфейсы Oauth2. Кроме того, администратор только introspect и flush(зачистка истекших лексем), наиболее важными являются два oauth2/authи oauth2/token API интерфейсы. oauth2/auth конечная точка используется для авторизации пользователя. После доступа Hydra выполнит типичный танец Oauth2 и вызовет рабочий процесс IDP, подробно описанный в конечных точках согласия выше. oauth2/token конечная точка используется для получения маркеров.

Есть много хороших материалов, которые представляют потоки Oauth2 в разной степени, например:

подробное описание работы Oauth2.0, которое даст полное понимание использования ORY Hydra

Cloing

В целом Hydra — очень лаконичная реализация, основная логика которой составляет менее 10 000 строк кода. Я настоятельно рекомендую прочитать исходный код, чтобы понять суть реализации Oauth2 и надеюсь, что это пригодится в ваших проектах.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *