Подробное руководство по Hydra. Часть 1
Life-Hack [Жизнь-Взлом]/ХакингВ данной статье пойдет речь о Hydra. Инструмент поддерживает огромное количество служб, благодаря своей быстроте и надёжности он завоевал заслуженную признательность среди тестеров на проникновение.
Введение
Hydra – это программное обеспечение с открытым исходным кодом для перебора паролей в реальном времени от различных онлайн сервисов, веб-приложений, FTP, SSH и других протоколов. Это распараллеленный взломщик для входа в систему, он поддерживает множество протоколов для осуществления атак. Пользователь быстро и с легкостью может добавить новые модули. Hydra предоставляет специалистам в сфере ИБ возможность узнать, насколько легко можно получить несанкционированный доступ к системе с удаленного устройства.
В настоящее время этот инструмент поддерживает следующие протоколы: adam6500, afp, asterisk, cisco, cisco-enable, cvs, firebird, ftp, ftps, http[s]-{head|get|post}, http[s]-{get|post}-form, http-proxy, http-proxy-urlenum, icq, imap[s], irc, ldap2[s], ldap3[-{cram|digest}md5][s], mssql mysql(v4), mysql5, ncp, nntp, oracle, oracle-listener, oracle-sid, pcanywhere, pcnfs, pop3[s], postgres, rdp, radmin2, redis, rexec, rlogin, rpcap, rsh, rtsp, s7-300, sapr3, sip, smb, smtp[s], smtp-enum, snmp, socks5, ssh, sshkey, svn, teamspeak, telnet[s], vmauthd, vnc, xmpp.
Для большинства протоколов поддерживается SSL (например, https-get, ftp-SSL и т.д.). Если это невозможно, поиск необходимых библиотек осуществляется во время компиляции, однако доступных сервисов будет меньше. Чтобы просмотреть доступные варианты, следует ввести в командную строку «hydra».
![](https://sun9-83.userapi.com/impg/ghyCK0o1ODD-JY77HOflih6l62YDkxNzt2Z9Ig/lZ5jJ-ga4uA.jpg?size=640x466&quality=96&sign=d3d51b8c0a13928050012efddb546a12&type=album)
Перебор пароля конкретного пользователя
Если человек знает только имя пользователя и хочет войти в систему, он может использовать список паролей для их перебора на хосте для службы ftp.
hydra -l ignite -P pass.txt 192.168.1.141 ftp
- здесь опция -l отвечает за имя пользователя; -P – указывает на списки паролей и IP-адреса хоста для службы ftp.
![](https://sun9-44.userapi.com/impg/1eJ8rGTVRsYFGWRDuogUEBOKiYy_B1mmAJhexA/JNSguG7OfNs.jpg?size=575x196&quality=96&sign=8a73d3292b1c3e0d52247d8242900960&type=album)
Таким образом, человек смог узнать, что пользователь ignite имеет пароль «123».
Перебор имени пользователя по паролю
Допустим, что у человека есть корректный пароль, но он понятия не имеет, какому пользователю данный пароль принадлежит. Например, есть пароль для входа в систему по ftp. Он может перебрать корректные имена пользователей, чтобы найти подходящее. Следует использовать опцию -L для указания списка имен пользователей и опцию -p для обозначения конкретного пароля.
hydra -L users.txt -p 123 192.168.1.141 ftp
![](https://sun9-54.userapi.com/impg/2BnVNAOCaujiMbxMfHkMw2WWYULOhRS9ivoKaQ/aedGikXjbho.jpg?size=580x217&quality=96&sign=a3812670918013c18c4a0f08b3babb46&type=album)
В данном случае список имен пользователей – это «users.txt», для него используется опция —L, а пароль – «123», для его указания используется опция —p по ftp.
Брутфорс (полный перебор) имени пользователя и пароля
Если человек не знает ни имя пользователя, ни пароль, он может выполнить атаку брутфорс на оба значения («username» и «password»), используя списки слов для них обоих. Для выполнения атаки потребуются параметры —P и —U.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp
![](https://sun9-22.userapi.com/impg/3T9_LyUxYrMhCaSBMpo4v2jcq9-Ku9WKxXkDdg/oXqPGF2uraA.jpg?size=640x185&quality=96&sign=e6f9c04671647044f50d797f111be9ab&type=album)
- «users.txt» – это список слов с именами пользователей, «pass.txt» – это список с паролями.
С помощью атаки теперь человек знает имя пользователя («ignite») и пароль («123»).
Режимы Verbose и Debug
Опция —V используется для включения вербального режима (англ. «verbose mode»), где во время каждой попытки будет отображаться комбинация «логин + пароль». В данном примере есть два списка слов «users.txt» и «pass.txt», таким образом, атака методом перебора заключается в создании различных комбинаций «логин + пароль». В режиме Verbose можно просмотреть все попытки ввода данных.
![](https://sun9-82.userapi.com/impg/qaElZYTCgu9AqdsAPXuXdiO08iFrwauhFg4yJA/p6g00lJXrTo.jpg?size=640x430&quality=96&sign=02e34d595a727f59f7c5349933d007c7&type=album)
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -V
- «users.txt» включает в себя 5 логинов, а «pass.txt» – 7 паролей, так что количество попыток составило 35.
Опция —d используется для включения режима отладки (англ. «debug mode»). Программа показывает полную информацию об атаке с указанием времени ожидания, сокета, PID, RECV.
hydra -l ignite -P pass.txt 192.168.1.141 ftp -d
![](https://sun9-70.userapi.com/impg/0LZ1p5TGO-tvoHxY87SdQbFDeag19X5Vvib4vQ/6fsFU-JZKkw.jpg?size=569x300&quality=96&sign=4477e73c3e472fa81a5aca25e49d36f6&type=album)
Опция —d включает режим отладки, что дает возможность программе вывести на экран подробную информацию об атаке.
![](https://sun9-66.userapi.com/impg/yBMZwCNK2IbA-HyH5I-uNcmdQLuPkfuYNqvA1A/uvXU4dGDWtg.jpg?size=623x240&quality=96&sign=14b0b8b8deaae2792a21587ff284dfd4&type=album)
Дополнительные опции во время перебора пароля
У Hydra есть опция —e, которая проверит еще 3 типа паролей при переборе. «n» – для пустого пароля, «s» – для пароля, который полностью совпадает с именем пользователя, «r» – для пароля обратного имени пользователя. Все указанные варианты паролей должны быть проверены.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -V -e nsr
Был включен режим Verbose, чтобы человек мог получить подробную информацию о попытках ввода, осуществленных во время перебора.
![](https://sun9-58.userapi.com/impg/JgyBIWVttIoCXFvZKH4c4CxMi0Tv1ICTn7ESjg/-hh_sk7bTh8.jpg?size=640x380&quality=96&sign=0adb8997db6166631e436b48e3b37aa9&type=album)
Сохранение выходных данных
Этот инструмент дает возможность сохранить результаты на диск. В основном это необходимо для ведения отчетности, лучшей читабельности результатов и улучшения практики в дальнейшем. Человек может сохранить результаты атаки в файл, используя параметр —o.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -o result.txt
В данном примере пользователь попытался использовать эту опцию, и у него все получилось. Это было возможно благодаря приведенной выше команде, выходные данные были сохранены в файл «result.txt».
![](https://sun9-72.userapi.com/impg/WS3d9V3Tvj97xocSuICT8_7Utsrmv4g1Ds2dbg/ODvsF1JNByI.jpg?size=640x303&quality=96&sign=e1682f0ae1e73c3cc6711a534d065686&type=album)
hydra -L users.txt -P pass.txt 192.168.1.141 ftp -o result:json
Человек также использовал эту опцию для сохранения результатов в формате .json, эта опция является уникальной особенностью, предоставляемой Hydra.
![](https://sun9-27.userapi.com/impg/DjZGsbrvcoEEBxYyZpRldXVHAiujD7zbp5qYDA/1kUqHb39ysY.jpg?size=640x261&quality=96&sign=589c0dbae7a75b90d8c44c0b63641b8e&type=album)
Возобновление атаки брутфорс
Иногда бывает так, что атака случайно останавливается из-за неожиданного поведения Hydra. Инструмент решил эту проблему – была добавлена опция —R. Пользователь с ее помощью может возобновить атаку с того места, на котором она была остановлена.
hydra -L users.txt -P pass.txt 192.168.1.141 ftp hydra -R
В данном примере человек сначала начал атаку, используя первую команду, затем остановил ее, нажав «CTRL + C», а после, используя вторую команду, возобновил нападение.
![](https://sun9-78.userapi.com/impg/cLhEfNyMOPOLD-RL5Kdu0EODerr5W2DoSoZ1Vg/ClO4uzQ1xoU.jpg?size=640x318&quality=96&sign=19d94f522c633ab5fba030f8595336a2&type=album)
Создание паролей с различным набором символов
Для генерации паролей с различными наборами символов можно использовать опцию —x. Она используется как —x min:max:charset, где:
- min задает минимальное количество символов в пароле;
- max задает максимальное количество символов в пароле;
- charset может включать «1» – для добавления чисел, «a» – для добавления строчных букв и «A» – для прописных букв. Любой другой добавленный символ помещается в список.
К примеру, возьмем значение «1:2:a1%.».
Сгенерированные пароли будут иметь длину от 1 до 2 символов и содержать строчные буквы, цифры и/или знаки процента и точки.
hydra -l ignite -x 1:3:1 ftp://192.168.1.141
Итак, в примере выше минимальная длина пароля равна 1, а максимальная длина – 3. Пароль будет содержать цифры, таким образом, пароль «123» подходит.
![](https://sun9-77.userapi.com/impg/h9JIlO1moWpFUvTVG8Vpy2ppnoPFpRe9c9-3yw/ccMLChfkl5E.jpg?size=640x180&quality=96&sign=495ebcda64388f6c34778a06ec0c6571&type=album)
Чтобы лучше понять, что происходит, можно использовать режим —V, чтобы подробно просмотреть результаты.
![](https://sun9-81.userapi.com/impg/P-qPshyy09Et0YFg-gxWfnVZYn9C3IAV43jglQ/aWWYloVvB1E.jpg?size=640x351&quality=96&sign=5b7ac946ffccc144fe4956dae18dce15&type=album)
Атака определенного порта, а не порта по умолчанию
Сетевые администраторы иногда меняют номер порта по умолчанию для некоторых служб по соображениям безопасности. В предыдущих командах Hydra проводила атаку методом перебора на службу ftp, просто указывая имя службы, а не порт, но, как уже становится понятно, порт по умолчанию может быть изменен. Инструмент поможет решить эту проблему с помощью опции —s. Если служба связана с другим портом по умолчанию, его можно определить также с помощью параметра —s.
nmap -sV 192.168.1.141 hydra -L users.txt -P pass.txt 192.168.1.141 ssh -s 2222
Итак, сначала пользователь попытался запустить сканирование Nmap на хосте. Оно показало ему все открытые порты, и ssh находится на порту 2222. Теперь следует выполнить команду Hydra с параметром —s и указанием номера порта.
![](https://sun9-58.userapi.com/impg/1rLCB-LLZyYnTY0jWbIfGZwZWlQWrCfUMajWoA/sRmk30-AgIk.jpg?size=553x270&quality=96&sign=197531f2ea9e8c7326a07364749fdb7c&type=album)
Была осуществлена атака брутфорс службы ssh с указанием номера порта 2222.
![](https://sun9-75.userapi.com/impg/XK6hhNTe-2bBoPVLWKo3FvhZFu64MIzbZbB5UA/Fy6I0Zei888.jpg?size=640x195&quality=96&sign=10869d5160f59e396b59060eec420630&type=album)
Человек узнал имя пользователя («ignite») и пароль («123»).
Атака нескольких хостов
Человек опять выполняет перебор с использованием файла паролей «pass.txt» и файла имен пользователей «users.txt» на одном хосте, например, 191.168.1.141. Если есть несколько хостов, он может использовать опцию —M, с помощью которой произойдет атака всех хостов сразу.
hydra -L users.txt -P pass.txt -M hosts.txt ftp
Человек создает новый файл («hosts.txt»), он содержит все хосты. Затем он находит 2 актуальных хоста, получает имя пользователя и пароль.
![](https://sun9-24.userapi.com/impg/tYJv8BlB-Smbn2yzIMaDJ9e5rkktFlfmhLJF-g/O5IpaLmwBLM.jpg?size=640x189&quality=96&sign=99f2e28a52254bfb448ff784eeeb09b7&type=album)
Продолжение следует...