*Здесь могло быть предупреждение о том, что не нужно пользоваться данной программой в преступных целях, но hydra это пишет перед каждым сеансом взлома*

image

В общем, решил я по своим нуждам покопаться в настройках роутера, вбиваю я всем знакомый адрес, а тут пароль спрашивают. Как быть? Ну, начал я перебирать пароли, а их количество слишком большое, что бы перебирать все и слишком маленькое, чтобы делать reset.

И я открыл google. После пары запросов я узнал о такой вещи как hydra. И тут началось: жажда открытий, поиски неизведанного и так далее.

Приступим


Первым делом мной был составлен словарь паролей, ни много, ни мало, аж на 25 комбинаций. Далее качаем либо Kali linux, либо саму Гидру (если вы пингвин у вас линукс). Теперь у нас два варианта (ну как два, я нашел информацию по двум вариантам).

Либо у вас вот такое диалоговое окно:

image

Либо логин и пароль запрашивает форма на сайте. Мой вариант первый, поэтому начнем с него. На нашем пути к «админке» стоит страж в виде диалогового окна. Это вид авторизации http-get.

Открываем терминал. Вводим:

hydra -l admin -P myPass.txt -s 80 192.168.1.1 http-get /

Где после «-l» идет логин, после «-P» словарь, после «-s» порт. Также в нашем распоряжении есть другие флаги:

-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 для справки по модулю)

Ну вот так как-то:

image

Второй вариант:

Не мой, честно взят с Античата, с исправлением грамматических ошибок автора (Обилие знаков пунктуации я оставил). Интересно это можно считать переводом?

Нас встречает форма на сайте:

image

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

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

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

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

image

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

image

Вводим ложные логин и пароль…

image

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

Переходим во вкладочку HEADERS ищем строку:

 Request URL:http://192.168.0.1/index.cgi

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

image

image

update_login=login&update_password=password&check_auth=y&tokenget=1300&
update_login=login&update_password=password 

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

image

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

image

<span langkey="bad_auth" style="display: inline;">Authentication failed!</span>

Выбираем:

span langkey="bad_auth"

и немножко правим… bad_auth — все! Ключ практически у нас в кармане… Теперь мы можем полностью написать строку авторизации:

index.cgi:update_login=login&update_password=password:bad_auth 

Теперь нужно подставить вместо «login» — ^USER^ и вместо «password» ^PASS^ и тогда строка будет иметь вид:

index.cgi:update_login=^USER^&update_password=^PASS^:bad_auth 

Вводим команду:

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"

Обратите внимание что между частями скрипта двоеточие! это обязательно! Кстати, блокировки формы через гидру не происходило… Это очень радует.

image

В работоспособности второго метода мне убедиться не светит, так как я не обладатель подходящей модели роутера. Придется довериться экспрессивному человеку с Античата.

Если кому интересно, будьте добры, проверьте и отпишитесь в комментариях. Я работал с роутером TL-WR1043N/TL-WR1043ND. Роутер с Античата — D-link300NRU.

Спасибо за внимание!
Поделиться с друзьями
-->

Комментарии (36)


  1. GH0st3rs
    10.12.2016 20:33
    +11

    Очередной ман по гидре, коих и так предостаточно


    1. CRImier
      11.12.2016 21:32
      +2

      Ну лично мне было интересно прочитать =) Сегодня доставал пароли из Asus роутера, подключившись к UART и выполняя nvram show|grep http_passwd. Так достаточно легко найти много интересных вещей (включая всякие логины и пароли), ну и можно даже немного конфигурировать роутеры, если не хочется подключаться к веб-интерфейсу. Тоже где-то описано, я уверен, но узнать про альтернативные способы полезно.


  1. AVX
    10.12.2016 20:36

    Спасибо! весьма интересно.
    Как-то давно делал скрипт на баше, там использовался то ли curl, то ли что ещё — и похожим образом я расковырял в роутере веб-странички, нашёл что и куда нажимать, и скрипт сам лазил на роутер, проверял наличие и статус двух соединений (так мне надо было) и если что не поднято — поднимал. Правда, задачи перебора паролей не стояло. Но и чисто «хакерских» утилит тоже не применялось. Думаю, что и перебор паролей можно на баше сварганить (да-да, тут вспоминается троллейбус из буханки).


  1. alekseev_ap
    10.12.2016 21:52

    Познавательно, спасибо!


  1. inwady
    11.12.2016 01:00

    Статья действительно интересная. Но мне кажется, что данную задачу можно выполнить раза в 2 быстрее, если использовать Burp.
    Я думаю, что инструмент для дебага, для «трудных» авторизаций. Жду продолжения. :)


    1. 5ap
      11.12.2016 13:51

      Всё таки гидра легко ставится куда угодно и бесплатна. Установив Burb бесплатную версию у меня так и не получилось от него получить хоть чтото. Везде «заплати» и нет ясного порядка в UI. То же смое может сказать пользователь метасплоита, что им в разы быстрее пользоваться чем разбираться в 4х параметрах гидры.


  1. LifeKILLED
    11.12.2016 01:09

    У меня как раз DIR300NRU, как раз вспоминал пароль недавно. Надо попробовать второй способ.


    1. TimsTims
      11.12.2016 01:31
      +3

      Надо просто сделать hard reset. Что там критичного то можно потерять?


      1. jok40
        11.12.2016 10:00

        «В нас пропал дух авантюризма» © Ипполит. Ирония судьбы, или С лёгким паром.


      1. mikkisse
        11.12.2016 12:13
        +2

        Бывает такое, что забываешь пароль от DLS соединения. А восстановить чего через провайдера бывает значительно трудно\долго + можно остаться без интернета на время восстановления, ибо ресет уже выполнен.


        1. CRImier
          11.12.2016 21:32
          +1

          Можно подключиться через UART и смотреть nvram =)


        1. Alexsandr_SE
          12.12.2016 01:00

          Заранее у провайдера просится пароль.


    1. jok40
      17.12.2016 11:09

      В DIR320 есть дыра, позволяющая посмотреть текущий логин и пароль:

      http://IP_роутера/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd

      Может и в DIR300 есть нечто подобное.


  1. APXEOLOG
    11.12.2016 01:36
    +16

    Я-то думал тут и правда взлом, а статься про то, как посылать HTTP запросы...


    1. Hrodvitnir
      11.12.2016 09:05

      Да, с учетом того, что авторизация проходит через отправку http запроса.


  1. 23rd
    11.12.2016 02:45
    +3

    Зачем в статье скрины разрешением 500х300, которые не прочитать, ни увеличить нельзя?


  1. abrwalk
    11.12.2016 07:59
    +4

    Верните мой 2003-й


  1. sarhome
    11.12.2016 11:23
    +2

    Вы когда-нибудь смотрели спектакль перевернув бинокль наоборот? Вот у меня сейчас такое же ощущение. Хорошая статья и ужасные скриншоты


    1. Hrodvitnir
      11.12.2016 11:51

      Скриншоты второй части — с форума. Свои сделать не мог, так как у меня модель роутера не та.


  1. solalex
    11.12.2016 11:42
    +4

    Предлагаю изменить заголовок на «Подбор пароля для роутера», т.к. слово взлом здесь неуместно.


    1. dimm_ddr
      12.12.2016 14:50

      Ну, технически, брутфорс — разновидность взлома. А то, что возможные пароли были известны можно списать на социальную инженерию, примененную автором к самому себе. Технически — взлом. =)


  1. Vasily_Pupkin
    11.12.2016 13:14

    Использую patator, чего и другим желаю


  1. vrazrabotchik
    11.12.2016 13:57
    -3

    Спасибо большое, больше не придётся платить за интернет :)


  1. dimonw
    11.12.2016 15:20
    -1

    С mikrotik такие штуки не прокатят :).


    1. Andrusha
      12.12.2016 11:37

      … если настраивавший не поленился написать правила fail2ban.


      1. lola_term
        12.12.2016 14:43

        Fail2ban конечно хороший ограничитель, но он не в стандартных пакетах для микротика, но могут воспользоваться прелестями ipv6 и генерировать на каждую попытку адрес, по стандарту можно и надо ссж/телнет/веб все порты во вне, стандартные учетку заменить на свою, ограничить вход из под определенной резервированной группы адресов привязанных по макам(можно добавить по сертам)


  1. IT_SECURITY
    13.12.2016 10:13
    -1

    У меня открытый wi-fi уже третий год. Пусть пользуется кто хочет, мне не жалко.


    1. Vilos
      13.12.2016 15:08
      +2

      Вы потом «майору» будете рассказывать кто эти «кто хочет» и как «их» найти… для него это будете именно «вы».


      1. bopoh13
        14.12.2016 16:54

        Как выяснилось, им проще по подъездам в поисках гипотетического барыги какого-нибудь пройтись, чем искать открытые сети. Вот ловили кого-нить с подключением к ретрансляторам?


        1. dimm_ddr
          15.12.2016 13:56

          Сейчас — да. Будет ли когда-нибудь по-другому — неизвестно. Но если вдруг проверять начнут, то закрыть точку можно и не успеть.


    1. jok40
      13.12.2016 15:17
      +1

      Довольно странно слышать подобное от «специалиста по информационной безопасности».


      1. IT_SECURITY
        13.12.2016 22:15

        Стоит 2 точки одна asus c открытой сетью но вся урезана по скорости и запросам и с другой подсеткой через ИКсу, а вторая сиско для личных нужд и закрыта от посторонних вот и все!

        забыл разъяснить


        1. jok40
          14.12.2016 08:43

          Разрешите поинтересоваться: к чему такие замысловатые телодвижения?


  1. Hidevs
    13.12.2016 15:09

    с OpenWRT так не прокатит как я понял.


  1. Stalkeros
    13.12.2016 15:09

    Интересно, но я немного не понял, вроде же чтобы было приглашение ввести логин\пароль, нужно быть подключенным к роутеру по WiFi или проводом, верно?


    1. Hrodvitnir
      13.12.2016 15:12

      Я, конечно, не уверен, поправьте, если не прав, но, возможно, сработает с любым роутером, к которому есть доступ из сети.