Карта брута. ****************** TP-Link 741 ND D-link300NRU TP-Link TL-WR841N D-Link DSL-2640U Linksys EA2700 ****************** Для справки как определить методы запроса! Spoiler Поясните разницу между HTTP методами GET и POST ? GET передает данные серверу используя URL, когда POST передает данные, используя тело HTTP запроса. Длина URL'а ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать GET'ом. POST может отправлять гораздо большие объемы данных. Лимит устанавливается веб-сервером и обычно равен около 2MB. Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя (в отличии от URL, который виден почти всегда). Добрый вечер любители вкусной и вредной пищи. Поговорим о такой вещи как Hydra из дистрибутива Kali. Вещь вроде бы уже давно всем знакомая, но не все умеюют ею пользоватся. Я тут немного посидел намедни и вроде бы чуток разобрался. Хочу поделится с сообществом своими знаниями. И так начнем. Hydra используется для взлома таких протоколов как ... " asterisk cisco cisco-enable cvs firebird ftp ftps http(s)-{head|get} http(s)-{get|post}-form http-proxy http-proxy-urlenum icq imap(s) irc ldap2(s) ldap3[-{cram|digest}md5](s) mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3(s) postgres rdp rexec rlogin rsh sip smb smtp(s) smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet(s) vmauthd vnc xmpp " В данном случае мы будем брутить http-get и hhtp-post-form. Чем они отличаются и как определить.... Знаний моих в HTML немного кого заинтересует может загуглить, я лишь визуально покажу где http-get а где http-post-form Начнем с http-get. Итак брутим TP-Link 741 ND версия прошивки - 3.13.2 Build 130618 Rel.34788n аппаратная версия - WR741ND v4 00000000 Заходим на вебморду роутера. Адресс ай-пи можно узнать посмотрев состояние сетевого подключения. (в данном случае подключение совершено через вафлю.) Кликаем по трею сетевого подключения-> Ваша сеть-> Состояние->Сведения->Шлюз по-умолчанию С ай-пи разобрались в данном случае это 192.168.1.1 Заходим через браузер и видим такое окошко. Такой вид авторизации называется http-get. Это очень легкая форма для брута. Лезем в консоль и набиваем... root@Anonymous: hydra -l admin -P router-pass.dic -t 1 -e nsr -vV -f -s 80 192.168.1.1 http-get / в данном примере я использовал в качестве логина -l admin, в качестве пасса словарик предварительно подготовленый -P router-pass.txt обратите внимание что от регистра завизит как гидра будет использовать предоставленые данные. -l admin -L admin.txt это разные вещи! -t 1 - кол-во потоков (для роутеров лучше использовать 1, потому как многопоточность авторизации они не поддерживают) да и скорость не отличается. -e nsr - "n" — пробовать с пустым паролем, "s" — логин в качестве пароля и/или "r" — реверс учётных данных, в данном случае проверка будет такая "", "nimda", "admin". далее брут пойдет по словарю. -vV - позволяет просматривать состояние брута -f остановится после удачной попытки взлома -s 80 - порт подключения 192.168.1.1 - ай-пи адресс роутера http-get / - форма морды. В данном случае это "Изи катка"... вот пруф... Фуххх... первую часть закончил...сейчас попью чаю и продолжим...
Итак ... давайте немного усложним задачу... возьмемся за брут http-post-form Давайте сбрутим морду D-link300NRU версия прошивки - 2.5.11 аппаратная версия - DIR-300NRU rev.B5/B6 Определяем ай-пи роутера... как в примере выше. заходим на морду. Итак что мы видим.... Ага... данные нужно вводить в html странице... Такой метод авторизации - http-post-form, и тут нужно немношко повозится так как нам нужно понять как браузер отправляет роутеру данные. В данном случае и использовал браузер Chrome. (его аналог Chromium в Kali Linux, инсталится через apt-get install chromium) Сейчас нужно сделать одну очень глупую вещь... указать неверный логин и пасс... для чего увидим позже... Нажимаем F12 что бы перейти в режим редактирования веб-страницы. Переходим в Network-> Включаем галочку Preserv log. Вводим левый логин и пасс... Ну что за дела! Так не пойдет! (Более того после нескольких неудачных попыток входа, морда лочится на 180 сек!) переходим во вкладочку HEADERS ищем строку... Code: Request URL:http://192.168.0.1/index.cgi отрезаем все до айпи адреса - /index.cgi ..... поздравляю мы нашли первую часть срикпта авторизации... идем дальше... переходим к владке FORM DATA и изменяем режим отображения на VIEV SOURCE Code: update_login=login&update_password=password&check_auth=y&tokenget=1300& немношко обрежем.... Code: update_login=login&update_password=password бинго! мы нашли вторую часть скрипта авторизации!!! еще чуть чуть!!! теперь нужно найти страницу с фейлом... Нужно нажать на вкладку ELEMENTS и выбрать элемент HTML кода (CTRL+SHIFT+C) и выбрать окно с сообщением об ошибки... в данном случае - Authentication failed! так нас бросило сюда... Code: <span langkey="bad_auth" style="display: inline;">Authentication failed!</span> выбираем Code: span langkey="bad_auth" и немношко правим... bad_auth - все !!! практически ключ у нас в кармане... теперь мы можем полностью написать строку авторизации поехали.... Code: index.cgi:update_login=login&update_password=password:bad_auth теперь нужно подставить вместо login - ^USER^ и вместо password ^PASS^ и тогда строка будет иметь вид... Code: index.cgi:update_login=^USER^&update_password=^PASS^:bad_auth прописываем полную строку для брута... root@Anonymous: hydra -l admin -P router-pass.dic -t 1 -e nsr -vV -f -s 80 192.168.0.1 http-post-form "/index.cgi:update_login=^USER^&update_password=^PASS^:bad_auth" обратите внимание что между частями скрипта двоеточие! это обязательно! после того как мы все указали правильно, начнётся брут... Кстати лока морды через гидру не происходило... это очень радует. Ну вот в принципе и все что я хотел поведать... Немного позже я покажу как сбрутить современную прошивку tp-link'a. Были использованые материалы... https://webware.biz/?p=4867 http://blog.kplus.pro/hack/hydra-bruteforce-passwd.html Ссылка на мой словарик для роутеров... http://rghost.ru/8pcXNv4wv И краткий мануал по гидре. Spoiler -R восстановить предыдущую прерванную/оборванную сессию -S выполнить SSL соединение -s ПОРТ если служба не на порту по умолчанию, то можно задать порт здесь -l ЛОГИН или -L ФАЙЛ с ЛОГИНАМИ (именами), или загрузить несколько логинов из ФАЙЛА -p ПАРОЛЬ или -P ФАЙЛ с паролями для перебора, или загрузить несколько паролей из ФАЙЛА -x МИНИМУМ:МАКСИМУМ:НАБОР_СИМВОЛОВ генерация паролей для брутфорса, наберите "-x -h" для помощи -e nsr "n" — пробовать с пустым паролем, "s" — логин в качестве пароля и/или "r" — реверс учётных данных -u зацикливаться на пользователя, а не на парлях (эффективно! подразумевается с использованием опции -x) -C ФАЙЛ формат где "логин:пароль" разделены двоеточиями, вместо опции -L/-P -M ФАЙЛ список серверов для атак, одна запись на строку, после двоеточия ':' можно задать порт -o ФАЙЛ записывать найденные пары логин/пароль в ФАЙЛ вместо стандартного вывода -f / -F выйти, когда пара логин/пароль подобрана (-M: -f для хоста, -F глобально) -t ЗАДАЧИ количество запущенных параллельно ЗАДАЧ (на хост, по умолчанию: 16) -w / -W ВРЕМЯ время ожидания ответов (32 секунды) / между соединениями на поток -4 / -6 предпочитать IPv4 (по умолчанию) или IPv6 адреса -v / -V / -d вербальный режим / показывать логин+пароль для каждой попытки / режим отладки -q не печатать сообщения об ошибках соединения -U подробные сведения об использовании модуля server цель: DNS, IP или 192.168.0.0/24 (эта ИЛИ опция -M) service служба для взлома (смотрите список поддерживаемых протоколов) OPT некоторые модули служб поддерживают дополнительный ввод (-U для справки по модулю) Post Scriptum: Не рекомендую пользоватся методом брутфорса перебором -x:6:6:1 потому как скорость перебора очень не большая, при очень хорошей связи скорость перебора составляет 500-600 комбинаций, это архимало. Post Post Scriptum: Мой чай во время написания этой статьи остыл )))) Хочу сказать спасибо моей жене Елене и моему сыну Захару, что дали мне время для написания этого мануала... \\Добавил в карту раздела.
Вот так бывало заморочишься, а дня через три понимаешь, что чай уже остыл... С POST запросом, молодец! Если добавишь что по другим мордам с POST, то аще...
Там вместо application/x-www-form-urlencoded используется multipart/form-data. Если я не ошибаюсь, hydra такие формы не поддерживает.
Сори, но у меня нет такого, еще летом натыкался на такой рутер, сбрутил тогда по 22 порту, если вдруг опять наткнусь скину.
Aвтор не раскрыл настройки брута веб форм, при работе авторизации с cookie, но все равно ТСу однозначно +.
Продолжаем наш роутерный беспредел.... Итак у нас задача со звёздочкой.... Давайте сбрутим морду TP-Link TL-WR841N версия прошивки - 3.15.9 Build 140625 Rel.64271n аппаратная версия - WR841N v9 00000000 Честно говоря брут этого роутера заставил меня немного попотеть... сейчас увидите почему. Начнем с того что роутер находился на айпишнике 192.168.0.1 Впринципе ничего нового.... Морда вроде бы похожа на POST... но меня это почему то насторожило. Переходим опять в режим редактирования страницы , нажимаем F12. Что мы видим... Да этож бубль-гум!(с) т.е. http-get только не очень простой... хм... чо ж делать то... давайте ковырятся. Вобщем котаны дело такого рода... Броузир передаёт роутыру логин и пасс в виде пары Code: base-64( login+md5(pass) ) Строка аутентификации будет иметь вид: Authorization=Basic%20YWRtaW467hDDFeuix1tAPqmRNvW0jQ%3D%3D отрезаем лишнее - YWRtaW467hDDFeuix1tAPqmRNvW0jQ Заливаем всё на base64.ru получаем логин YWRtaW467hDDFeuix1tAPqmRNvW0jQ-> base64 -> admin:md5(pass) отлично осталась вторая часть - 7hDDFeuix1tAPqmRNvW0jQ Гидрой тут к сожалению ничего не сделать (гидра не поддерживает шифрацию на лету ) прийдётся прибегнуть к BurpSuite
Марафон!!! Класс, старина! Так держать! Только может стоит позже всё в шапку добавлять!? Как думаешь?
Очень познавательнно,чуствую буду я в етой статье ковыряться очень долго, как всегда вопрос полюбому гидра подбирает пароль по словарю?
Спасибо за пост, но есть некоторые сомнения. У кого-нибудь получилось подобрать пароль таким образом? Можно скриншот? Уже писал, что они передаются через куки (пара логин:пароль, закодированная BASE64, в куки Authorization=Basic...; вместо пароля может быть хэш на основе md5) Spoiler Code: hydra -l '' -p "Authorization=Basic YWRtaW46MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM=" -f -s 80 43.242.242.128 http-get-form "/userRpm/LoginRpm.htm:Save=Save&^USER^:loginBox:H=Cookie\: ^PASS^"
Спасибо за статью. Все очень красиво расписано. Сам пару дней не мог составить запрос на эти же роутеры. Очень все помогло. Не согласен для "-t 1" - это работает только для http-post-form и ну очень медленно. При дефаулте в 16 потоков http-get у меня выдает где-то 2500 tries/min. Есть вопрос. Никак не получается запустить с "-М" (в файл кидаю список IP полученный роутер сканом). Hydra вылетает с ошибкой - какой-то памяти ей не хватает. Help me. Спасибо.
Абсолютно верно, пасс был подобран верно, но это скорее случайность. После второго прохода, получилась накладка. Приношу извинения у сообщества. Но я добью этот роутер и выложу работу с кукями.
есть несколько режимов. - l admin -p admin - гидра пытается ввести admin:admin -l admin -P pass.txt - гидра пытается войти под логином admin с пассами в словаре pass.txt -L login.txt -P pass.txt - пытается войти с логином и пассом из двух словарей -С log-pass.txt пытается войти из одного словаря с типом admin : pass -l admin -x 4:4:1 пытается войти под админом и сбрутить пасс 4 знака цифры с 0000 по 9999
-L login.txt -P pass.txt - пытается войти с логином и пассом из двух словарей Перебор идет так: login.txt - admin, user, root pass.txt - 1, 2, 3, 4 admin-1 admin-2 admin-3 admin-4 user-1 user-2 user-3 user-4 root-1 root-2 root-3 root-4 Имеется точка ну упрямая прям до жути. Здесь перебирали хендшейк безуспешно, нашел его в локалке месяц брута бесполезно. Один вариант выпиливать из эфира mdk3 до смены роутера на уязвимый) но это жестокий вариант)