Взлом «админки» роутера
В общем, решил я по своим нуждам покопаться в настройках роутера, вбиваю я всем знакомый адрес, а тут пароль спрашивают. Как быть?
Ну, начал я перебирать пароли, а их количество слишком большое, что бы перебирать все и слишком маленькое, чтобы делать reset.
И я открыл google.
После пары запросов я узнал о такой вещи как hydra.
И тут началось: жажда открытий, поиски неизведанного и так далее.
Приступим
Первым делом мной был составлен словарь паролей, ни много, ни мало, аж на 25 комбинаций.
Далее качаем либо Kali linux, либо саму Гидру (если вы пингвин у вас линукс).
Теперь у нас два варианта (ну как два, я нашел информацию по двум вариантам).
Либо у вас вот такое диалоговое окно:
Либо логин и пароль запрашивает форма на сайте.
Мой вариант первый, поэтому начнем с него.
На нашем пути к «админке» стоит страж в виде диалогового окна.
Это вид авторизации http-get.
Открываем терминал.
Вводим:
hydra -l admin -P myPass.txt -s 80 192.168.1.1 http-get /
Где после »-l» идет логин, после »-P» словарь, после »-s» порт.
Так же в нашем распоряжении есть другие флаги:
1. -R восстановить предыдущую прерванную/оборванную сессию
2. -S выполнить SSL соединение
3. -s ПОРТ если служба не на порту по умолчанию, то можно задать порт здесь
4. -l ЛОГИН или -L ФАЙЛ с ЛОГИНАМИ (именами), или загрузить несколько логинов из ФАЙЛА
5. -p ПАРОЛЬ или -P ФАЙЛ с паролями для перебора, или загрузить несколько паролей из ФАЙЛА
6. -x МИНИМУМ: МАКСИМУМ: НАБОР_СИМВОЛОВ генерация паролей для брутфорса, наберите »-x -h» для помощи
7. -e nsr «n» — пробовать с пустым паролем, «s» — логин в качестве пароля и/или «r» — реверс учётных данных
8. -u зацикливаться на пользователя, а не на парлях (эффективно! подразумевается с использованием опции -x)
9. -C ФАЙЛ формат где «логин: пароль» разделены двоеточиями, вместо опции -L/-P
10. -M ФАЙЛ список серверов для атак, одна запись на строку, после двоеточия ':' можно задать порт
11. -o ФАЙЛ записывать найденные пары логин/пароль в ФАЙЛ вместо стандартного вывода
12. -f / -F выйти, когда пара логин/пароль подобрана (-M: -f для хоста, -F глобально)
13. -t ЗАДАЧИ количество запущенных параллельно ЗАДАЧ (на хост, по умолчанию: 16)
14. -w / -W ВРЕМЯ время ожидания ответов (32 секунды) / между соединениями на поток
-4 / -6 предпочитать IPv4 (по умолчанию) или IPv6 адреса
15. -v / -V / -d вербальный режим / показывать логин+пароль для каждой попытки / режим отладки
16. -q не печатать сообщения об ошибках соединения
17. -U подробные сведения об использовании модуля
server цель: DNS, IP или 192.168.0.0/24 (эта ИЛИ опция -M)
service служба для взлома (смотрите список поддерживаемых протоколов)
OPT некоторые модули служб поддерживают дополнительный ввод (-U для справки по модулю)
Ну вот так как-то:
Второй вариант:
Не мой, честно взят с Античата, с исправлением грамматических ошибок автора (Обилие знаков пунктуации я оставил). Интересно это можно считать переводом?
Нас встречает форма на сайте:
Такой метод авторизации — http-post-form, и тут нужно немного повозится, так как нам нужно понять, как браузер отправляет роутеру данные.
В данном случае и использовал браузер Chrome (его аналог Chromium в Kali Linux, ставится через apt-get install chromium).
Сейчас нужно сделать одну очень глупую вещь… указать неверный логин и пасс…
для чего увидим позже…
Нажимаем F12 что бы перейти в режим редактирования веб-страницы.
Переходим в Network→ Включаем галочку Preserv log.
Вводим ложные логин и пароль…
Ну что за дела? Так не пойдет!
Более того после нескольких неудачных попыток входа, форма блокируется на 180 секунд.
Переходим во вкладочку HEADERS ищем строку:
Request URL:http://192.168.0.1/index.cgi
Отрезаем все до ip-адреса — /index.cgi… Поздравляю мы нашли первую часть скрипта авторизации…
Идем дальше…
переходим к вкладке FORM DATA и изменяем режим отображения на VIEV SOURCE.
update_login=login&update_password=password&check_auth=y&tokenget=1300&
update_login=login&update_password=password
Бинго! Мы нашли вторую часть скрипта авторизации!!! Еще чуть чуть!!!
теперь нужно найти страницу с сообщением об ошибке…
Нужно нажать на вкладку ELEMENTS
и выбрать элемент HTML кода (CTRL+SHIFT+C) и выбрать окно с сообщением об ошибки…
в данном случае — Authentication failed!
Authentication failed!
Выбираем:
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"
Обратите внимание что между частями скрипта двоеточие! это обязательно!
Кстати, блокировки формы через гидру не происходило… Это очень радует.
В работоспособности второго метода мне убедиться не светит, так как я не обладатель подходящей модели роутера. Придется довериться экспрессивному человеку с Античата.
Если кому интересно, будьте добры, проверьте и отпишитесь в комментариях.
Я работал с роутером TL-WR1043N/TL-WR1043ND
Роутер с Античата — D-link300NRU
Ссылка на тему с Античата: forum.antichat.ru/threads/436408
Комментарии (15)
10 декабря 2016 в 20:33
+6↑
↓
Очередной ман по гидре, коих и так предостаточно10 декабря 2016 в 20:36
0↑
↓
Спасибо! весьма интересно.
Как-то давно делал скрипт на баше, там использовался то ли curl, то ли что ещё — и похожим образом я расковырял в роутере веб-странички, нашёл что и куда нажимать, и скрипт сам лазил на роутер, проверял наличие и статус двух соединений (так мне надо было) и если что не поднято — поднимал. Правда, задачи перебора паролей не стояло. Но и чисто «хакерских» утилит тоже не применялось. Думаю, что и перебор паролей можно на баше сварганить (да-да, тут вспоминается троллейбус из буханки).10 декабря 2016 в 21:52
0↑
↓
Познавательно, спасибо!11 декабря 2016 в 01:00 (комментарий был изменён)
0↑
↓
Статья действительно интересная. Но мне кажется, что данную задачу можно выполнить раза в 2 быстрее, если использовать Burp.
Я думаю, что инструмент для дебага, для «трудных» авторизаций. Жду продолжения. :)11 декабря 2016 в 01:09
0↑
↓
У меня как раз DIR300NRU, как раз вспоминал пароль недавно. Надо попробовать второй способ.11 декабря 2016 в 01:31
0↑
↓
Надо просто сделать hard reset. Что там критичного то можно потерять?11 декабря 2016 в 10:00 (комментарий был изменён)
0↑
↓
«В нас пропал дух авантюризма» © Ипполит. Ирония судьбы, или С лёгким паром.11 декабря 2016 в 12:13
0↑
↓
Бывает такое, что забываешь пароль от DLS соединения. А восстановить чего через провайдера бывает значительно трудно\долго + можно остаться без интернета на время восстановления, ибо ресет уже выполнен.
11 декабря 2016 в 01:36
+6↑
↓
Я-то думал тут и правда взлом, а статься про то, как посылать HTTP запросы…
11 декабря 2016 в 09:05 (комментарий был изменён)
0↑
↓
Да, с учетом того, что авторизация проходит через отправку http запроса.
11 декабря 2016 в 02:45
+1↑
↓
Зачем в статье скрины разрешением 500×300, которые не прочитать, ни увеличить нельзя?11 декабря 2016 в 07:59
+1↑
↓
Верните мой 2003-й11 декабря 2016 в 11:23
+1↑
↓
Вы когда-нибудь смотрели спектакль перевернув бинокль наоборот? Вот у меня сейчас такое же ощущение. Хорошая статья и ужасные скриншоты11 декабря 2016 в 11:51
0↑
↓
Скриншоты второй части — с форума. Свои сделать не мог, так как у меня модель роутера не та.
11 декабря 2016 в 11:42
+1↑
↓
Предлагаю изменить заголовок на «Подбор пароля для роутера», т.к. слово взлом здесь неуместно.