Взлом веб-страницы входа в систему с помощью Hydra в Kali Linux

kali linux

Технически пароль определяется как секретная строка символов, используемая для аутентификации или получения доступа к ресурсам. Он должен храниться в тайне и быть скрыт от других лиц, не имеющих права доступа к этим ресурсам. Пароли используются в компьютерах с первых дней появления вычислительной техники. Одна из первых систем разделения времени была представлена в 1961 году. Она имела команду входа в систему, которая запрашивала пароль пользователя. После ввода команды "PASSWORD" система, по возможности, отключает механизм печати, чтобы пользователь мог спокойно набрать свой пароль.

Данный тип тестирования на проникновение должен проводиться исключительно на своих системах, либо у Вас должно быть разрешение владельца системы на проведение данного типа теста!

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

Существует множество способов сделать пароль слабым, соответствующих силе различных схем атак. Наиболее популярной из них является атака методом грубой силы. Это метод проб и ошибок - угадывание, попытка расшифровать зашифрованные данные, такие как пароль или шифр, используемый прикладной программой или "инструментом взлома".

Hydra

Hydra - самый быстрый взломщик сетевых логинов, поддерживающий множество протоколов атаки. Он очень быстр и гибок, а новые модули легко добавляются. Этот инструмент позволяет исследователям и консультантам по безопасности продемонстрировать, как легко можно получить несанкционированный доступ к системе удаленно. Hydra была написана ван Хаузером, а ее дополнительная поддержка осуществляется Дэвидом Мачеяком. В последнем обновлении разработка Hydra перенесена в публичный репозиторий github по адресу: https://github.com/vanhauser-thc/thc-hydra.

Hydra протестирована на компиляцию под Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry и доступна под GPLv3 со специальным расширением лицензии OpenSSL.

THC Hydra поддерживает такие протоколы: Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP(S)-FORM-GET, HTTP(S)-FORM-POST, HTTP(S)-GET, HTTP(S)-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle Listener, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB(NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 и v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC и XMPP.

Сравнение hydra с другими средствами взлома

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

Особенности

Функция Hydra Medusa Ncrack
Лицензия AGPLv3 GPLv2 Условия GPLv2 + Nmap
Поддержка IPv6 Да Нет Нет
Графический пользовательский интерфейс Да Да Нет
Поддержка интернационализации (RFC 4013) Да Нет Нет
Поддержка HTTP-прокси Да Да Нет
Поддержка SOCKS-прокси Да Нет Нет
Поддерживаемые протоколы 51 22 7

Сравнение скоростей

Скорость (в с) Hydra Medusa Ncrack
1 задача / FTP-модуль 11.93 12.97 18.01
4 задачи / FTP-модуль 4.20 5.24 9.01
16 задач / модуль FTP 2.44 2.71 12.01
1 задача / модуль SSH v2 32.56 33.84 45.02
4 задачи / модуль SSH v2 10.95 Broken Missed
16 задач / модуль SSH v2 5.14 Broken Missed

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

Установка Hydra в kali linux

Hydra предустановлена в kali linux, однако если у вас другая операционная система, вы можете скомпилировать и установить ее на свою систему. В настоящее время Hydra поддерживается на различных платформах:

  • Все платформы UNIX (Linux, *bsd, Solaris и т.д.)
  • MacOS (в основном клон BSD)
  • Windows с Cygwin (как IPv4, так и IPv6)
  • Мобильные системы на базе Linux, MacOS или QNX (например, Android, iPhone, Blackberry 10, Zaurus, iPaq).

Чтобы загрузить, сконфигурировать, скомпилировать и установить hydra, просто введите в терминале

Если у вас Ubuntu/Debian, то вам понадобятся некоторые библиотеки зависимостей:

Если вы не нашли эти библиотеки в своем репозитории, то необходимо загрузить и установить их вручную.

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

Поздравляем, теперь вам удалось установить hydra на свою систему. На самом деле, Hydra поставляется в двух вариантах: GUI-gtk и моя любимая версия CLI. Кроме того, у Hydra есть версия с управлением CLI, которая называется "hydra-wizard". Вы будете получать пошаговое руководство, вместо того чтобы набирать все команды и аргументы вручную в терминале.

Чтобы запустить hydra, наберите в терминале :

CLI

CLI-мастера конфигурации

Графический интерфейс

После ввода 'hydra' на экране появятся команды помощи, как показано ниже:

Перебор веб-логинов с помощью Hydra

Hydra поддерживает несколько сервисов брутфорсинга, как я уже упоминал, один из них используется для брутфорсинга веб-логинов, таких как форма входа в социальные сети, форма входа в банковскую систему, логин вашего маршрутизатора и т.д. Это "http[s]-{get|post}-form", который будет обрабатывать данный запрос. В этом руководстве я покажу вам, как перебрать уязвимые веб-логины. Прежде чем запускать hydra, необходимо знать некоторые необходимые аргументы, приведенные ниже:

  • Цель : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
  • Имя пользователя: admin (если вы не уверены, проверьте это перебором)
  • Список паролей: "Расположение списка файлов словаря, содержащего возможные пароли".
  • Параметры формы: "В общем случае для получения формы параметров запроса следует использовать tamper data или proxy. Но здесь я использую iceweasel, основанный на firefox, network developer toolbar."

Сервисный модуль: http-post-form

Модуль http-post-form требует страницу и параметры для веб-формы. По умолчанию этот модуль настроен на выполнение не более 5 перенаправлений подряд. Он всегда собирает новый cookie с того же URL без переменных Параметры принимают три значения, разделенные ":", плюс необязательные значения. (Примечание: если в строке параметров в качестве значения требуется двоеточие, то его следует экранировать с помощью "\:", но не следует экранировать "\" с помощью "\\\").

Синтаксис:

  • Первое - это страница на сервере, на которую нужно выполнить GET или POST (URL).
  • Второе - переменные POST/GET (берутся из браузера, прокси-сервера и т.д. с заменой имен пользователей и паролей на "^USER^" и "^PASS^" (FORM PARAMETERS)).
  • Третья строка - это строка проверки на *неправильный* вход (по умолчанию) Перед строкой проверки недействительного входа может стоять "F=", перед строкой проверки успешного входа - "S=".

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

Следующие параметры являются необязательными:

C=/page/uri для определения другой страницы для сбора начальных cookies с (h|H)=My-Hdr\: foo для отправки определенного пользователем HTTP-заголовка с каждым запросом ^USER^ и ^PASS^ также могут быть помещены в эти заголовки!

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

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

Получение параметров запроса с помощью браузера (iceweasel/firefox)

В браузере Firefox нажмите клавиши 'CTRL + SHIFT + Q'. Затем откройте страницу входа в систему http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, и вы заметите, что на вкладке "Инструменыты разработчика" появился текст. В нем говорится о том, какие файлы нам передаются. Видим, что все они передаются методом GET, так как мы еще не отправляли никаких данных методом POST.

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

Чтобы получить параметры пост-формы, введите в форму имя пользователя и пароль. На вкладке "Разработчик сети" вы заметите новый метод POST. Дважды щелкните на этой строке, на вкладке "Заголовки" нажмите кнопку "Изменить и отправить" справа. В теле запроса скопируйте последнюю строку, например "tfUName=asu&tfUPass=raimu". "tfUName" и "tfUPass" - это необходимые нам параметры. Как показано ниже:

Как использовать HydraВ Kali Linux существует множество списков паролей, выберите подходящий или просто воспользуйтесь файлом rockyou.txt, расположенным в каталоге /usr/share/wordlists/, как показано ниже:

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

Итак, теперь мы получили все необходимые аргументы и готовы запустить hydra. Вот шаблон команды:

Наконец, на основе собранной информации наши команды должны выглядеть следующим образом:

Давайте разберем команды:

  • l <имя пользователя> : это слово, содержащее имя пользователя, используйте -L <FILE> для обращения к списку возможных имен пользователей в файле.
  • P <FILE> : представляет собой список возможных паролей в файле, используйте -p <password> для буквального использования одного слова пароля вместо его угадывания.
    testapp.vunlwebapp.com : является именем хоста или целью.
  • http-post-form : это сервисный модуль, который мы используем
  • "/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout" = 3 необходимых параметра, синтаксис следующий:
    { URL страницы}:{Параметры формы post body запроса}:S={Найти все, что находится на странице после успешного входа в систему}
  • v = режим Verbose
  • V = показать login:pass для каждой попытки
  • f = Завершить работу программы, если найдена пара логин:пароль

Теперь позволим hydra попытаться взломать пароль, на это нужно время, так как это атака по словарю. Как только вам удалось найти пару login:password, hydra немедленно завершит работу и покажет валидный пароль.

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

Hydra может многое, так как в этом руководстве мы только научились перебирать логины в Интернете с помощью hydra, мы изучили только один протокол - протокол http-post-form. Мы также можем использовать hydra против других протоколов, таких как ssh, ftp, telnet, VNC, proxy и т.д.

Комментарии: 0