Полезный универсальный инструмент для подбора паролей при проведения тестов на уязвимость собственных ресурсов ;)
Внимание! Статья носит исключительно ознакомительную информацию с утилитой и ни в коем случае не призывает использовать её в мошеннических целях. Как правило, данная утилита может быть использована для проведения тестов на уязвимость собственных ресурсов. Не забывайте предохраняться и натянуть на себя VPN хотя бы.
Когда penetration testing
заходит в тупик, остается крайний метод - подбор пароля. Дабы уницифировать все инструменты подбора паролей и не использовать для разных задач отдельные брутфорсы есть замечательный универсальный инструмент - THC-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 and v2)
, SSHKEY
, Subversion
, Teamspeak (TS2)
, Telnet
, VMware-Auth
, VNC
и XMPP
.
Установка
Пакет hydra
содержится в epel-репозитории, поэтому достаточно подключить его и установить.
yum install -y epel-release |
Или собрать с сорсов для пользователей других ОС:
mkdir ~/hydra_src && cd ~/hydra_src |
hydra -h |
Словари
Брутить можно как с помощью подбора посимвольно, так и с помощью подготовленного словаря наиболее часто используемых паролей. Рекомендую первым делом попытаться подобрать пароль со словарем, и уже если и этот способ не увенчался успехом — переходить к прямому бруту посмивольно.
Словари можно поискать здесь или воспользоваться имеющимися.
Готовые списки паролей: top500; top4000; cain&abel (300k); пароли от яндекса (700k); пароли от маил.ру (2740k); маил.ру + яндекс (3300k)
Использование
Рассмотрим флаги запуска:
- -R Восстановить предыдущую сессию, которая по какой-либо причине была прервана
- -S Использовать SSL соединение
- -s PORT Указание порта (отличного от дефолтного) сервиса
- -l LOGIN Использовать указанный логин для попытки аутентификации
- -L FILE Использовать список логинов из указанного файла
- -p PASS Использовать указанный пароль для попытки аутентификации
- -P FILE Использовать список паролей из указанного файла
- -x Генерировать пароли для подбора самостоятельно, указывается в формате -x MIN:MAX:CHARSET, где MIN — это минимальная длинна пароля, MAX — соответственно, максимальная, а CHARSET — это набор символов, в котором a означает латиницу в нижнем регистре, A — в верхнем регистре, 1 — числа, а для указания дополнительных символов — просто укажи их как есть. Вот несколько примеров генерации паролей:
- -x 3:5:a — длинной от 3 до 5 символов, состоящие только из символов латиницы в нижнем регистре;
- -x 5:8:A1 — длинной от 5 до 8 символов, состоящие из символов латиницы в верхнем регистре + цифр;
- -x 1:3:/ — длинной от 1 до 3 символов, состоящие только из символов слеша /;
- -x 5:5:/%,.- — длинной в 5 символов, состоящие только из символов /%,.-;
- -e nsr Укажи n для проверки пустых паролей, s для попытки использования в качестве пароля — логин, и (или) r для попытки входа под перевернутым логином
- -u Пытаться подобрать логин а не пароль
- -C FILE Использовать файл в формате login:pass вместо указания -L/-P
- -M FILE Файл со списком целей для брутфорса (можно с указанием порта через двоеточие), по одному на строку
- -o FILE Записать подобранную пару логин/пароль в файл, вместо того чтоб просто вывести в stdout (будет указан с указанием сервера, к которому подобран — не запутаешься)
- -f / -F Прекратить работу, как только первая пара логин:пароль будет подобрана. -f только для текущего хоста, -F — глобально.
- -t TASKS Количество параллельных процессов (читай — потоков). По умолчанию 16
- -w Таймаут для ответа сервера. По умолчанию 32 секунды
- -W Таймаут между ответами сервера
- -4 / -6 Использовать IPv4 (по умолчанию) или IPv6 адреса (при указании с -M всегда заключай в [])
- -v Более подробный вывод информации о процессе
- -V Выводить каждый подбираемый логин + пароль
- -d Режим дебага
- -O Использовать старый SSL v2 и v3
- -q Не выводить сообщения об ошибках подключения
- -U Дополнительная информация о использовании выбранного модуля
- -h Вывод справочной информации
Примеры работы
Basic Authentication
Cканируя диапазон адресов мы попадаем на некоторый интерфейс, доступный по http
протоколу, но закрытый для доступа при помощи Basic Authentication
(пример настройки с помощью nginx).
- IP сервера: 192.168.2.15;
- Сервис: http;
- Путь, который закрыт для нас запросом пары логин/пароль: /admin/;
- Порт, на котором работает http сервер: 80;
Предположим (или любым доступным путем выясним), что логин для авторизации admin
, и нам неизвестен лишь пароль. Подбирать будем с помощью заранее подготовленного словаря и с использованием модуля http-get
:
[root@localhost opt]# hydra -l admin -P /opt/pass.txt -o ./hydra_result.log -f -V -s 80 192.168.2.15 http-get /admin/ |
Статья ожидает продолжения..