Брут роутера с помощью thc-hydra (мануал для новичков)

Discussion in 'Беспроводные технологии/Wi-Fi/Wardriving' started by Kevin Shindel, 27 Jan 2016.

  1. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    Карта брута.
    ******************
    TP-Link 741 ND
    D-link300NRU
    TP-Link TL-WR841N
    D-Link DSL-2640U
    Linksys EA2700

    ******************

    Для справки как определить методы запроса!

    Поясните разницу между 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

    Заходим на вебморду роутера. Адресс ай-пи можно узнать посмотрев состояние сетевого подключения. (в данном случае подключение совершено через вафлю.)

    [​IMG]
    [​IMG]
    [​IMG]

    Кликаем по трею сетевого подключения-> Ваша сеть-> Состояние->Сведения->Шлюз по-умолчанию

    С ай-пи разобрались в данном случае это 192.168.1.1
    Заходим через браузер и видим такое окошко.

    [​IMG]

    Такой вид авторизации называется 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 / - форма морды.

    В данном случае это "Изи катка"... вот пруф...

    [​IMG]

    Фуххх... первую часть закончил...сейчас попью чаю и продолжим...
     
    #1 Kevin Shindel, 27 Jan 2016
    Last edited: 18 Aug 2016
    pta53-68bis, wh0nixx, Buran and 20 others like this.
  2. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    Итак ... давайте немного усложним задачу... возьмемся за брут http-post-form

    Давайте сбрутим морду D-link300NRU
    версия прошивки - 2.5.11
    аппаратная версия - DIR-300NRU rev.B5/B6

    Определяем ай-пи роутера... как в примере выше.
    заходим на морду.
    Итак что мы видим....

    [​IMG]

    Ага... данные нужно вводить в html странице...
    Такой метод авторизации - http-post-form, и тут нужно немношко повозится так как нам нужно понять как браузер отправляет роутеру данные.

    В данном случае и использовал браузер Chrome. (его аналог Chromium в Kali Linux, инсталится через apt-get install chromium)

    Сейчас нужно сделать одну очень глупую вещь... указать неверный логин и пасс...
    для чего увидим позже...

    Нажимаем F12 что бы перейти в режим редактирования веб-страницы.

    [​IMG]

    Переходим в
    Network-> Включаем галочку Preserv log.

    [​IMG]

    Вводим левый логин и пасс...

    [​IMG]

    Ну что за дела! Так не пойдет!
    (Более того после нескольких неудачных попыток входа, морда лочится на 180 сек!)

    переходим во вкладочку HEADERS
    ищем строку...
    Code:
     Request URL:http://192.168.0.1/index.cgi 

    отрезаем все до айпи адреса - /index.cgi ..... поздравляю мы нашли первую часть срикпта авторизации...
    идем дальше...
    переходим к владке FORM DATA и изменяем режим отображения на VIEV SOURCE

    [​IMG]
    [​IMG]
    Code:
    update_login=login&update_password=password&check_auth=y&tokenget=1300& 
    немношко обрежем....
    Code:
     update_login=login&update_password=password 

    бинго! мы нашли вторую часть скрипта авторизации!!! еще чуть чуть!!!
    теперь нужно найти страницу с фейлом...
    Нужно нажать на вкладку ELEMENTS

    [​IMG]

    и выбрать элемент HTML кода (CTRL+SHIFT+C) и выбрать окно с сообщением об ошибки...
    в данном случае - Authentication failed!

    [​IMG]

    так нас бросило сюда...
    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"
    обратите внимание что между частями скрипта двоеточие! это обязательно!

    после того как мы все указали правильно, начнётся брут...
    Кстати лока морды через гидру не происходило... это очень радует.

    [​IMG]

    Ну вот в принципе и все что я хотел поведать...
    Немного позже я покажу как сбрутить современную прошивку tp-link'a.

    Были использованые материалы...
    https://webware.biz/?p=4867
    http://blog.kplus.pro/hack/hydra-bruteforce-passwd.html

    Ссылка на мой словарик для роутеров...
    http://rghost.ru/8pcXNv4wv

    И краткий мануал по гидре.
    -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:
    Мой чай во время написания этой статьи остыл ))))
    Хочу сказать спасибо моей жене Елене и моему сыну Захару, что дали мне время для написания этого мануала...

    \\Добавил в карту раздела.
     
    #2 Kevin Shindel, 27 Jan 2016
    Last edited: 18 Aug 2016
    fiwob, CyberTro1n, Shnaidt and 31 others like this.
  3. erwerr2321

    erwerr2321 Elder - Старейшина

    Joined:
    19 Jun 2015
    Messages:
    4,236
    Likes Received:
    26,250
    Reputations:
    148
    Вот так бывало заморочишься, а дня через три понимаешь, что чай уже остыл...:D

    С POST запросом, молодец! Если добавишь что по другим мордам с POST, то аще...
     
    Ruslan1993it, Triton_Mgn and J()KER like this.
  4. Turanchocks_

    Turanchocks_ Elder - Старейшина

    Joined:
    11 May 2013
    Messages:
    1,327
    Likes Received:
    3,285
    Reputations:
    17
    Красава!
     
  5. J()KER

    J()KER Member

    Joined:
    17 Aug 2013
    Messages:
    132
    Likes Received:
    42
    Reputations:
    0
    а можешь на морду ubiquiti посмотреть? может допрешь как ее брутить.
     
  6. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    скинь ай-пи в личку.
     
  7. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,673
    Likes Received:
    5,797
    Reputations:
    51
    Однозначно в memory/ Kevin Shinde благодарность за такой пост.
     
    CyberTro1n likes this.
  8. Felis-Sapiens

    Felis-Sapiens Reservists Of Antichat

    Joined:
    21 Jul 2015
    Messages:
    616
    Likes Received:
    3,833
    Reputations:
    171
    Там вместо application/x-www-form-urlencoded используется multipart/form-data. Если я не ошибаюсь, hydra такие формы не поддерживает.
     
    TOX1C, J()KER and Triton_Mgn like this.
  9. J()KER

    J()KER Member

    Joined:
    17 Aug 2013
    Messages:
    132
    Likes Received:
    42
    Reputations:
    0
    Сори, но у меня нет такого, еще летом натыкался на такой рутер, сбрутил тогда по 22 порту, если вдруг опять наткнусь скину.
     
  10. user100

    user100 Moderator

    Joined:
    24 Dec 2011
    Messages:
    4,811
    Likes Received:
    18,432
    Reputations:
    377
    Aвтор не раскрыл настройки брута веб форм, при работе авторизации с cookie, но все равно ТСу однозначно +.
     
    _________________________
    Shnaidt, TOX1C and Triton_Mgn like this.
  11. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,673
    Likes Received:
    5,797
    Reputations:
    51
    Возникла идея добавить в прилепленые тем
    Автор сделает это, подедившись с нами.
     
  12. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    Продолжаем наш роутерный беспредел....
    Итак у нас задача со звёздочкой....

    Давайте сбрутим морду TP-Link TL-WR841N
    версия прошивки - 3.15.9 Build 140625 Rel.64271n
    аппаратная версия - WR841N v9 00000000

    Честно говоря брут этого роутера заставил меня немного попотеть... сейчас увидите почему.

    Начнем с того что роутер находился на айпишнике 192.168.0.1
    Впринципе ничего нового....

    [​IMG]

    Морда вроде бы похожа на POST... но меня это почему то насторожило.

    Переходим опять в режим редактирования страницы , нажимаем F12.
    Что мы видим...

    [​IMG]

    Да этож бубль-гум!(с) т.е. http-get только не очень простой...

    хм... чо ж делать то... давайте ковырятся.

    [​IMG]

    Вобщем котаны дело такого рода...

    Броузир передаёт роутыру логин и пасс в виде пары

    Code:
      base-64( login+md5(pass) ) 
    Строка аутентификации будет иметь вид:

    Authorization=Basic%20YWRtaW467hDDFeuix1tAPqmRNvW0jQ%3D%3D

    отрезаем лишнее - YWRtaW467hDDFeuix1tAPqmRNvW0jQ

    Заливаем всё на base64.ru
    получаем логин

    YWRtaW467hDDFeuix1tAPqmRNvW0jQ-> base64 -> admin:md5(pass)

    отлично осталась вторая часть - 7hDDFeuix1tAPqmRNvW0jQ

    Гидрой тут к сожалению ничего не сделать (гидра не поддерживает шифрацию на лету ) прийдётся прибегнуть к BurpSuite
     
    #12 Kevin Shindel, 28 Jan 2016
    Last edited: 18 Aug 2016
    Vjubkmobr, Triton_Mgn, TOX1C and 8 others like this.
  13. erwerr2321

    erwerr2321 Elder - Старейшина

    Joined:
    19 Jun 2015
    Messages:
    4,236
    Likes Received:
    26,250
    Reputations:
    148
    Марафон!!! :D

    Класс, старина! Так держать!
    Только может стоит позже всё в шапку добавлять!? Как думаешь?
     
  14. fire-dance

    fire-dance Elder - Старейшина

    Joined:
    12 May 2015
    Messages:
    1,004
    Likes Received:
    666
    Reputations:
    12
    Очень познавательнно,чуствую буду я в етой статье ковыряться очень долго,
    как всегда вопрос полюбому гидра подбирает пароль по словарю?
     
  15. amod-cccp

    amod-cccp Member

    Joined:
    15 Jan 2014
    Messages:
    41
    Likes Received:
    14
    Reputations:
    0
    Прям затягивает. Даешь еще примеры!
     
  16. Felis-Sapiens

    Felis-Sapiens Reservists Of Antichat

    Joined:
    21 Jul 2015
    Messages:
    616
    Likes Received:
    3,833
    Reputations:
    171
    Спасибо за пост, но есть некоторые сомнения. У кого-нибудь получилось подобрать пароль таким образом? Можно скриншот?
    Уже писал, что они передаются через куки (пара логин:пароль, закодированная BASE64, в куки Authorization=Basic...; вместо пароля может быть хэш на основе md5)
    [​IMG]
    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^"
     
    #16 Felis-Sapiens, 29 Jan 2016
    Last edited: 29 Jan 2016
    Triton_Mgn and user100 like this.
  17. chugunkin

    chugunkin Banned

    Joined:
    22 Dec 2015
    Messages:
    25
    Likes Received:
    13
    Reputations:
    0
    Спасибо за статью. Все очень красиво расписано.
    Сам пару дней не мог составить запрос на эти же роутеры. Очень все помогло.
    Не согласен для "-t 1" - это работает только для http-post-form и ну очень медленно.
    При дефаулте в 16 потоков http-get у меня выдает где-то 2500 tries/min.
    Есть вопрос.
    Никак не получается запустить с "-М" (в файл кидаю список IP полученный роутер сканом).
    Hydra вылетает с ошибкой - какой-то памяти ей не хватает.
    Help me. Спасибо.
     
  18. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    Абсолютно верно, пасс был подобран верно, но это скорее случайность. После второго прохода, получилась накладка.
    Приношу извинения у сообщества. Но я добью этот роутер и выложу работу с кукями.
     
    V777, TOX1C, Payer and 1 other person like this.
  19. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    есть несколько режимов.
    - 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
     
  20. Triton_Mgn

    Triton_Mgn Elder - Старейшина

    Joined:
    6 Jul 2015
    Messages:
    3,673
    Likes Received:
    5,797
    Reputations:
    51
    -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 до смены роутера на уязвимый) но это жестокий вариант)
     
    #20 Triton_Mgn, 29 Jan 2016
    Last edited: 29 Jan 2016
    amod-cccp and TOX1C like this.
Loading...