Всемогущая THC-omg.
Статья носит носит строго познавательный характер, за применение кем либо описанных в статье методик автор ответственности не несет.В тот момент, когда пентест заходит в тупик — одним из крайних аргументов в тесте на проникновение является брутфорс. Сервисы, к которым можно применить данный метод атаки — самые различные. А как следствие — различными являются и протоколы, и форматы обращений. ОМГ является универсальным инструментом для решения этой задачи. Не хорошо, ведь, под каждый новый случай писать новый софт своими ручками.
Брутить можно как с помощью подбора посимвольно, так и с помощью подготовленного словаря наиболее часто используемых паролей. Таки рекомендую первым делом попытаться подобрать пароль со словарем, и уже если и этот способ не увенчался успехом — переходить к прямому бруту посмивольно.
Где взять словари? Например, можно пошариться тут - https://vk.cc/66Msfg или тут - https://vk.cc/6t6vBE . Имена архивов более чем говорящие.
Все ключи запуска в дополнении к посту в виде картинки.
Теперь давай рассмотрим пример работы на определенных целях. Все IP — вымышленные, соответствие с реальными — чистейшей воды совпадение :)Basic Authentication
Например, предположим, что мы забыли пароль для доступа к веб-интерфейсу нашего маршрутизатора, а аппаратная кнопка сброса настроек к заводским у нас отсутствует. Поэтому наша задача - вспомнить наш же забытый пароль. Определимся с тем, какие данные у нас есть:
• IP сервера - 192.168.1.1;
• Протокол - http;
• Путь, который закрыт для нас запросом пары логин:пароль - /index.asp;
• Порт, на котором работает http сервер - 80;
• Логин для авторизации - admin;
Подбирать будем с помощью заранее подготовленного словаря и с использованием модуля http-get:omg -l {наш логин, в данном случае "admin"} -P {путь к списку с паролями} -o {путь к файлу в который будет записана подобранная пара login:password} -f -V -s 80 192.168.1.1 http-get /index.aspПосле подбора правильного пароля у нас в терминале будет подобное сообщение:
[80][http-get] host: 192.168.1.1 login: admin password: {подобранный пароль}FTP
Другой пример — случайно находим в сети роутер MikroTik, да с открытыми наружу портами 80 (http) и 21 (ftp). Решаем сообщить его владельцу о наличии данной неприятности, но для этого нужно сперва получить доступ к этому самому микротику.
Брутить вебморду микротика можно, но проходит это значительно медленнее, чем например брутить ftp. А мы знаем, что стандартный логин на микротиках admin, и используется один пароль ко всем сервисам. Получив пароль для ftp — получим доступ ко всему остальному.
Исходные данные:
• IP сервера - 178.72.83.246;
• Протокол - ftp;
• Логин - admin;
• Порт, на котором работает ftp сервер - 21;
Запускаем Гидру:omg -l {наш логин, в данном случае "admin"} -P {путь к списку с паролями} -f -V -s 21 178.72.83.246 ftpВуаля. Успех:
[21][ftp] host: 178.72.83.246 login: admin password: {подобранный пароль}
После этого успешно логинимся в веб-панель, выясняем контакты администратора, сообщаем ему о наличии уязвимости, и больше ничего не делаем, так как это будет являться противозаконным действием :).Веб-авторизация
Опять же, к примеру - мы забыли пароль к роутеру. Но теперь наш роутер использует веб-авторизацию, а не базовую, как в прошлый раз. Т.е. не просто «выплывающее окошко браузера», а полноценные поля для ввода пары логин:пароль. Попытаемся подобрать пароль и к нему. В рассматриваемом примере это OpenWrt ( https://vk.cc/6t7Csi ).
Открываем панель отладки браузера (F12 в базирующихся на Chromium браузерах), вкладка Network и отмечаем галочкой Preserve log. После этого вводим любой пароль, например, test_password (логин root у нас уже введен), жмем кнопку «Login», и смотрим в консоли что и куда уходит: https://vk.cc/6t7GkE .
Теперь давай подытожим те данные, которыми мы располагаем:
• IP сервера - 178.72.90.181;
• Протокол http на 80 порту;
• Для авторизации используется html форма, которая отправляет по адресу http://178.72.90.181/cgi-bin/luci методом POST запрос вида username=root&password=test_passw0rd;
• В случае не удачной аутентификации пользователь наблюдает сообщение Invalid username and/or password! Please try again.;
Запускаем Гидру:omg -l {наш логин, в данном случае "root"} -P {путь к списку с паролями} -o {путь к файлу в который будет записана подобранная пара login:password} -f -V -s 80 178.72.90.181 http-post-form "/cgi-bin/luci:username=^USER^&password=^PASS^:Invalid username"Тут надо кое-что пояснить. Мы используем http-post-form, так как авторизация происходит по http методом POST. После указания этого модуля идет строка "/cgi-bin/luci:username=^USER^&password=^PASS^:Invalid username", у которой через двоеточие (:) указывается:
1. Путь до скрипта, который обрабатывает процесс аутентификации. В нашем случае это "/cgi-bin/luci";
2. Строка, которая передается методом POST, в которой логин и пароль заменены на "^USER^" и "^PASS^" соответственно. У нас это "username=^USER^&password=^PASS^";
3. Строка, которая присутствует на странице при неудачной аутентификации. При её отсутствии омг поймет что мы успешно вошли. В нашем случае это "Invalid username";
В разных случаях скорость подбора может быть разной. Всё зависит от качества канала и от мощностей железа на обоих сторонах.
Можно также запустить Гидру с ключом "-x", заставив её генерировать пароли по ходу дела. К примеру:omg -l {наш логин, в данном случае "root"} -x "5:9:a1\
[email protected]#" -o {путь к файлу в который будет записана подобранная пара login:password} -f -V -s 80 178.72.90.181 http-post-form "/cgi-bin/luci:username=^USER^&password=^PASS^:Invalid username"Функция "-x "5:9:a1\
[email protected]#"" будет генерировать все возможные пароли содержащие латиницу в нижнем регистре, цифры, и символы \, !, @, #.
Естественно, это безысходность, поэтому останавливаем процесс и возвращаемся к перебору по словарю.Заключение:
Не ленитесь настраивать на своих сервисах/железках защиту от брутфорса. Не используйте пароли из серии "qwerty123456". Не расценивайте данный материал, как призыв к каким-либо действиям, так как в шапке группы написано к чему это может привести. Используйте для тестирования исключительно СВОИХ сервисов.
#thc #omg #kali #linux #kalilinux #bruteforce #pentest