Делаем wi-fi репитер из wi-fi роутера
Содержание:
Концепты
Найденные баги открывают возможности для дальнейшего развития атаки. Рассмотрим некоторые концепты.
Вносим изменения в софт роутера. Как я уже сказал ранее, мы имеем дело с файловой системой squashfs, и, чтобы что-либо изменить, нужно сильно постараться. Для начала скачиваем оригинал прошивки и распаковываем (в интернете можно без труда найти множество инструкций), далее изменяем необходимые файлы и «склеиваем» прошивку в удобный вид. После этого необходимо обновить микропрограмму в роутере, загрузив файл измененной прошивки. Таким образом, мы сможем изменять, добавлять и удалять какие-либо файлы с прошивки.
Добавляем функционал через модуль ядра. Если ты обладаешь навыками программирования модулей ядра, то ничто не мешает тебе написать свой модуль ядра, скомпилировать его и подгрузить через lsmod. Но, чтобы без обновления микропрограммы иметь в распоряжении пространство для создания и изменения файлов, мы должны подключить внешний носитель и работать непосредственно с ним (однако у многих пользователей внешних носитель уже подключен).
Получаем дополнительные данные через команду flash
Стоит обратить внимание на такой инструмент, как команда flash, доступная в консоли роутера. Она может дать нам интересные данные (к примеру, пароль для программы NetFriend с целью удаленной настройки роутера), которые в дальнейшем могут быть использованы против жертвы
Пример:
WWW
- Обсуждение маршрутизаторов ZyXEL Keenetic;
- интересная ветка форума на iXBT;
- возможности роутера Keenetic на прошивке второго поколенияhabrahabr.ru;
- дополнительные приложения для Keenetic.
Изменяем hostname на специальный код и скрываем всех пользователей
Вердикт?
Надо понимать, что случай ZyXEL не уникальный — изъянами в своем софте могут похвастаться практически все производители роутеров. Не самые критические на первый взгляд уязвимости при совмещении с социальной инженерией могут привести к довольно печальным последствиям. Но обезопасить себя от подобного можно, только если регулярно обновлять прошивки роутера и изменять все настройки, запрещающие удаленно пользоваться роутером.
Информация об уязвимостях была передана специалистам компании ZyXEL.
Скорый BUGFIX
Парни из ZyXEL сразу же ответили, что будут делать с багами
«Исправления найденных багов (там где, это необходимо) в ближайшее время станут доступны пользователям в той или иной форме в зависимости от версии микропрограммы (V1 — в неофициальных сборках, V2 — в свежих компонентах). Прошивка 2.0 вообще построена по иному принципу — без использования shell и BusyBox. Вся логика работы скрыта в модулях и библиотеках, и повлиять на ее работу гораздо сложнее. Получить рутовый доступ попросту некуда. Командная оболочка NDM хоть и исполняется от имени рута, но настолько ограничена, что требуется отдельное исследование, как использовать ее по злому умыслу. Что касается уязвимостей веб-интерфейса, вставить код на страницу через имя компьютера в прошивке 2.0 невозможно (мы на всякий случай проверили). Воспользоваться CSRF не получится, ведь мы используем AJAX, а не GET/POST через форму или URL, а кросс-доменные запросы AJAX давно блокируются браузерами. Украсть пароль тоже нельзя, потому что он не хранится в открытом виде.»
Способ 2. Подключение по LAN-кабелю.

Способ создания проводной сети роутер-роутер подойдет Вам в том, случае, если между ними расстояние более 30 метров. Есть 2 варианта соединения маршрутизаторов сетевым патч-кордом:
— Вариант 1. Соединяем порт LAN одного устройства и порт WAN другого. Второй девайс при этом будет работать как простой клиент первого и будет иметь свою, отдельную сеть WiFi
При этом немаловажно правильно подключить устройства друг к другу. Соединить порты надо так, как на фото:

То есть Вы должны соединить один из LAN-портов первого устройства, в который приходит кабель провайдера с портом Интернет (или WAN) второго. Соединять их через LAN-порты я бы не советовал (хотя ниже я рассмотрел и такой вариант), так как это не совсем правильно. После этого надо ещё правильно всё настроить. На первом маршрутизаторе делать, впринципе, ничего не надо. Единственное — проверьте, чтобы в разделе LAN был включен DHCP-сервер. На втором — Вам надо зайти в раздел WAN и выбрать «Тип подключения» — «Динамический IP» (WAN Connection Type — Dynamic IP):

После этого нужно будет настроить сеть WiFi обычным образом, сохранить настройки и перезагрузить девайс. После чего, второе устройство должно получить IP-адрес из сети первого и работать как один из его клиентов, раздавая полученное уже своим клиентам.
Кстати, на некоторых WiFi-маршрутизаторах тип подключения — «Динамический IP» используется по умолчанию, на заводских настройках. К ним относятся устройства от D-Link:

Здесь для подключения его к другому, надо всего лишь будет подключить кабель и настроить сеть Вай-Фай.
— Вариант 2. Соединяем порт LAN одного устройства и порт LAN другого. В этом случае оба аппарата логически будут находится в одном сегменте сети. При этом беспроводные сети обоих роутеров будут иметь одинаковую адресацию, но разные имена сети — SSID. Настройка: Первым делом, Вам надо отключить на втором устройстве сервер DHCP:

Затем, если у них одинаковый IP-адрес в локальной сети, то надо на втором устройстве его изменить на другой для того, чтобы не было конфликта:

Второму маршрутизатору надо либо назначить IP-адрес в этой же подсети, но где-нибудь в конце диапазона — например, 253й или 254й адрес. Либо вообще сменить подсеть на 192.168.2.х например. Не забудьте сохранить настройки.
IP-адрес Wi-Fi роутера можно узнать несколькими способами. Команда ipconfig и специальные утилиты в помощь пользователю Windows
Проще и быстрее всего его можно узнать с помощью запуска ipconfig из командной строки Windows, а получить дополнительные возможности есть у специальных утилит сторонних разработчиков.
Для чего может понадобиться IP-адрес Wi-Fi модема (роутера)?
- Необходимо зайти на модем и изменить его параметры: сменить пароль доступа, протокол шифрования, настроить Wi-Fi. Но определить адрес модема сложно или не возможно.
У каждого устройства есть адрес по умолчанию, который установлен производителем. Его лучше не менять, если в этом нет необходимости. Например: в целях безопасности.
- IP-адрес по умолчанию был изменён ранее при настройке — надо узнать его нынешний адрес.
Распространённые IP адреса по умолчанию
Большинство сетевых маршрутизаторов (Wi-Fi роутеров, ADSL модемов) имеют по умолчанию IP -адреса:
- 192.168.1.1;
- 192.168.0.1;
- 192.168.100.1.
«Не могу зайти на страницу управления модемом», «Не могу зайти в панель управления роутером», «Не открывается страница роутера» и т.д. — всё это проблемы поиска нужного IP-адреса роутера.
Сложности могут возникнуть и при настройке маршрутизатора от ByFly «Промсвязь» M200A, и при настройке Huawei HG532e Wi-Fi ADSL2+ роутера.
Как узнать IP-адрес с помощью ipconfig из набора инструментов Windows
При выполнении команды отобразятся IP-адреса (IPv4, IPv6) используемых адаптеров нашего ноутбука, маска подсети и основной шлюз.
Последовательность действий
- Вызываем интерпретатор командной строки: на компьютере нажимаем ( WIN — это Windows значок на клавиатуре)
- В появившемся окошке набираем команду
- В полученном списке ищем — это и есть IP адрес роутера
Всё просто! Но функционал и возможности ipconfig весьма ограничены. Поэтому если нужен расширенный функционал необходимо использовать специализированное ПО.
Поиск IP-адресов в локальной сети с помощью специального программного обеспечения
Если надо найти IP-адреса всех устройств в сети (всех роутеров, компьютеров, смартфонов), лучше воспользоваться IP-сканером.
Работа с такими программами вызывает чувство подглядывания в замочную скважину: можно узнать массу интересного о соседях по сети, а имея доступ к роутеру можно банить неугодных по MAC, повышать скорость работы в Интернет для избранных).
Перечень возможностей IP-сканеров (по сравнению с ipconfig)
- Просмотр MAC (физических) адресов всех устройств в сети;
- Обзор всех подключенных к беспроводной точке доступа Wi-Fi устройств, в том числе и тех, которых быть не должно;
- …и некоторые другие функции
Как узнать IP-адрес роутера с помощью IP-сканера MyLanViewer
Скачиваем и устанавливаем программу MyLanViewer (http://www.mylanviewer.com/network-ip-scanner.html).
Программа платная после 15 дней использования, но для решения наших задач хватит и одного.
Программа на английском языке, но все необходимые меню очень просты — разберётся даже ребёнок. Во время запуска программа автоматически распознает сеть, быстро получит все параметры.
- тип устройства (Router, Computer);
- его MAC и IP-адрес устройства.
Дополнительная информация при клике на плюсик
- Events (события);
- MAC адрес;
- NIC vendor (производитель);
- Last IPv4 Address (последний IP);
- Last Host Name by IPv4 (имя хоста, компьютера);
- Last IPv6 Address (тот же IP только в IPv6);
- Last Host Name by IPv6 (-//-);
- Last Time Found (найден в сети в последний раз);
- First Time Found (найден впервые в сети);
- OnLine: YES ( статус — ОНЛАЙН. Т.е. устройство подключено и находится в данной сети)
На последнем скриншоте программы видим NIC vendor: Apple, который уже отключен от сети (не активен — экономит свою батарею) и все причитающиеся ему параметры на момент последнего подключения.
Существует быстрая возможность перейти в меню настройки сетевого роутера. Открываем программу MyLanViewer — Tools — Open Router Control Panel. Далее имя пользователя и пароль, по-умолчанию это чаще всего admin и admin. Всё.
Описанными способами можно узнать IP-адрес любого роутера или точки доступа любого производителя, в том числе если адрес модема был изменён по какой-либо причине.
Удаленное управление роутером через облако TP-Link ID с компьютера
Для того, чтобы получить удаленное управление роутером TP-Link с доступом через интернет, необходимо сначала зарегистрироваться в TP-Link ID. Для этого нужно прежде всего авторизоваться в роутере под учетной записью администратора. Сделать это можно как с компьютера через браузер по IP адресу роутера, так и со смартфона через программу TP-Link Tether. В конце статьи я покажу, где именно в нем находится эта настройка, а пока начнет с ПК.
Открываем вкладку «Базовая настройка» и заходим в раздел «Облако TP-Link»

И жмем на кнопку «Зарегистрируйтесь сейчас»

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


Подтверждаем ее и авторизуемся. На странице отобразится информация о вашем аккаунте, а текущий маршрутизатор привяжется к нему — теперь можно управлять wifi удаленно.

Еще один момент — поскольку теперь роутер привязан к данному аккаунту, для того, чтобы попасть в его личный кабинет нужно будет вводит не пароль локального администратора, как было раньше, а авторизовываться именно в облачном сервисе TP-Link ID

Удаленный доступ к домашнему компьютеру Динамический DNS
Если Вы сейчас дома, зайдите на whatismyipaddress.com, и вы увидите Ваш IP-адрес WAN. Теперь, если Вам понадобиться получить удаленный доступ к вашей домашней локальной сети, Вы можете использовать этот адрес. Фактически, если у Вас включена функция удаленного управления на Вашем маршрутизаторе, то именно этот IP-адрес и нужно использовать, чтобы получить доступ к Вашему маршрутизатору из вне.
Теперь зная, что IP-адрес WAN это не просто так. И вдобавок ко всему, большинство домашних тарифных планов идет с динамическим IP-адресом WAN, который периодически изменяется. Лучше перевести тот адрес во что-то постоянное и простое для запоминания. Для этого можно воспользоваться службой Динамический DNS (DynDNS или DDNS). Многие производители, такие как Asus или Synology, предлагают эту услугу бесплатно и ее можно активировать в веб интерфейсе. Также, Вы всегда можете использовать DynDNS.org .
Dynamic DNS от Asus.
Служба DynDNS позволяет Вам создавать пользовательский домен. Например такой как myhome.homefpt.net. Это даст вам что-то более простое для запоминания, чем непонятные строки чисел и точек. Имя этого домена должно быть уникальным. И если кто то уже занял то имя которое Вы выбрали, Вам придется придумать что-нибудь новое. После того, как пользовательский домен создан, есть несколько способов, с помощью которых Вы можете привязать его к IP-адресу WAN. 1 — запустив клиент DynDNS на компьютере в Вашей домашней сети, затем присоединив его к серверу NAS в домашней сети. 2 — присвоив его домашнему маршрутизатору. Большинство, если не все домашние маршрутизаторы, поддерживают функцию Динамический адрес DNS. И им можно управлять, используя веб-интерфейс Вашего маршрутизатора.
DynDNS — это удобно
Например, если Вы выбрали myhome.homefpt.net в качестве Вашего DynDNS адреса и используете 8080 порт. Это для управления маршрутизатором, когда Вы находитесь вдали от дома. Вы можете просто набрать в браузере myhome.homefpt.net:8080, чтобы получить доступ к интерфейсу Вашего маршрутизатора. Это работает практически со всеми домашними маршрутизаторами, за исключением Apple.
Подключение с помощью правильно настроенной службы Dynamic DNS.
В чем разница между IPv4 и IPv6
Возможно, вы также заметили при просмотре настроек другой тип IP-адреса, называемый адресом IPv6. Типы IP-адресов, о которых мы говорили до сих пор, – это адреса, используемые протоколом IP версии 4 (IPv4), разработанным в конце 70-х годов. Они используют 32 бинарных бита, о которых мы говорили (в четырех октетах), чтобы обеспечить в общей сложности 4,29 миллиарда возможных уникальных адреса. Хотя это много, все общедоступные адреса давно были «потреблены» предприятиям. Многие из них сейчас не используются, но они назначены и недоступны для общего использования.
В середине 90-х годов, обеспокоенная потенциальной нехваткой IP-адресов, специальная рабочая группа Internet Engineering Task Force (IETF) разработала IPv6. IPv6 использует 128-битный адрес вместо 32-разрядного адреса IPv4, поэтому общее количество уникальных адресов многократно выросло и стало достаточно большим (вряд ли когда-либо закончится).
В отличие от точечной десятичной нотации, используемой в IPv4, адреса IPv6 выражаются в виде восьми групп номеров, разделенных двоеточиями. Каждая группа имеет четыре шестнадцатеричных цифры, которые представляют 16 двоичных цифр (это называется хекстетом). Типичный IPv6-адрес может выглядеть примерно так:
2601: 7c1: 100: ef69: b5ed: ed57: dbc0: 2c1e
Дело в том, что нехватка адресов IPv4, вызвавшая беспокойство, в значительной степени смягчалась увеличением использования частных IP-адресов через маршрутизаторы. Всё больше и больше людей создавали свои собственные частные сети, используя частные IP-адреса.
Веб-баги
Если рассмотреть веб-интерфейс с точки зрения безопасности, то это провал. Классика жанра: везде, где есть возможность ввода своей информации, отсутствует фильтрация! В формах отсутствуют какие-либо токены, что открывает возможность для CSRF-атак.
Конкретно каждую XSS я рассматривать не буду, но стоит обратить внимание на один интересный вариант эксплуатации XSS (лайф-хак). Тебе наверняка хотелось бы скрыть себя из списка клиентов, подключенных к роутеру (их можно посмотреть в админке роутера)
Казалось бы, для этого нужно иметь доступ к консоли, писать модули ядра и так далее. Но ответ лежит на поверхности. Просто меняем имя нашего компьютера (поле «Описание») на 1′}]»);alert(1); и подключаемся к роутеру. В результате можно увидеть, что мы «втиснулись» в JS таким образом, что он не обработался и выдал пустой список клиентов. Этого будет вполне достаточно, чтобы скрыть себя и других пользователей, подключенных к точке доступа, от глаз невнимательного админа.
Прошивка под скальпелем
Другие статьи в выпуске:
Хакер #171. 3D-принтеры
- Содержание выпуска
- Подписка на «Хакер»-30%
Благодаря CSRF и XSS можно добыть пароль от роутера и получить удаленный доступ через бэкенд, что будет самым лакомым подарком. Однако для этого не обойтись без социальной инженерии (вообще любая атака становится возможной только при определенном стечении обстоятельств).
Отправляем админу ссылку на хост с заранее подготовленным HTML-файлом:
Как видишь, используется автосабмит и типичная CSRF. В одном из полей — user_name — с помощью
Пейлоад для этой задачи довольно простой:
Стоит обратить внимание на то, что, скачав с роутера файл http://192.168.1.1/req/config/KEENETIC.cfg на наш удаленный сервер и выполнив команду «cat KEENETIC.cfg | gzip -d», мы получим значение всех системных переменных, в том числе и Wi-Fi-ключ от роутера и от админки роутера.
После успешной передачи данных на сниффер выполняем AJAX, который отправит запрос на очистку таблицы (тем самым мы стираем нашу XSS).
Бинго! Роутер наш! Конечно, это скорее proof-of-concept. Это не значит, что можно взломать любой из полумиллиона девайсов Keenetic, которые были проданы
Атака возможна при стечении двух обстоятельств. Админ должен открыть ссылку — это первое. И веб-интерфейс роутера должен быть открыт в браузере или же логин-пароль должны быть сохранены в браузере. Однако proof-of-concept работает!
Две базовые части IP-адреса
IP-адрес устройства состоит из двух отдельных частей:
- Идентификатор сети: является частью IP-адреса; начинаются слева и идентифицирует конкретную сеть, на которой расположено устройство. В обычной домашней сети, где устройство имеет IP-адрес 192.168.1.34, часть 192.168.1 будет идентификатором сети. Если заполнить недостающую конечную часть нулём, мы можем сказать, что сетевой идентификатор устройства – 192.168.1.0.
- Идентификатор хоста: это часть IP-адреса, не занятого сетевым идентификатором. Он идентифицирует конкретное устройство (в мире TCP/IP устройства называют «хостами») в этой сети. Продолжая наш пример IP-адреса 192.168.1.34, идентификатором хоста будет 34 – уникальный идентификатор устройства в сети 192.168.1
Чтобы представить всё это немного лучше, давайте обратимся к аналогии. Это очень похоже на то, как уличные адреса работают в городе. Возьмите адрес, такой как Набережная 29/49. Название улицы похоже на идентификатор сети, а номер дома похож на идентификатор хоста. Внутри города никакие две улицы не будут называться одинаково, так же как ни один идентификатор сети в одной сети не будет назван одинаковым. На определенной улице каждый номер дома уникален, так же как все ID хоста в определенном сетевом идентификаторе.
Длина маски подсети.
Количество хостов в подсети определяется как 232-N-2, при этом N — длина маски.
Логичный вывод: чем длиннее маска, тем меньше в ней хостов.
Ещё один полезный логический вывод: максимальной длиной маски для подсети с хостами будет N=30.
Именно сети /30 чаще всего используют для адресации на point-to-point-линках между маршрутизаторами.
Большинство маршрутизаторов сегодня отлично работает и с масками /31, используя адрес подсети (нуль в однобитовой хостовой части) и бродкаст (единица) в качестве адресов интерфейсов. Однако администраторы и сетевые инженеры иногда просто боятся такого подхода, согласно проверенному принципу «мало ли что».
А вот *маска IP-адреса* /32 используется гораздо чаще. С ней удобно работать, во-первых, при адресации так называемых loopback-интерфейсов. Во-вторых, практически невозможно ничего напутать: /32 — это подсеть, состоящая из одного хоста, то есть по сути никакая и не сеть.
Если администратору сети приходится оперировать не группами хостов, а индивидуальными машинами, то с каждым разом сеть становится всё менее масштабируемой, в ней резко увеличивается вероятность всяческого бардака и никому не понятных правил. За исключением, наверное, только написания файрвольных правил для серверов: вот там специфичность ценится и котируется.
Другими словами, с пользователями лучше обращаться не индивидуально, а массово, целыми подсетями, иначе сеть быстро станет неуправляемой.
Интерфейс, на котором настроен IP-адрес, иногда могут называть IP-интерфейсом или L3-интерфейсом («эл-три», тема «модель OSI»).
До того как послать IP-пакет, компьютер определяет, попадёт ли адрес назначения в «свою» подсеть. Если ответ положительный, то он шлёт пакет «напрямую», если отрицательный — направляет его шлюзу по умолчанию, то есть маршрутизатору.
Адресом шлюза по умолчанию обычно назначают первый адрес хоста в подсети, хотя это и вовсе не обязательно. В нашем примере адрес шлюза 192.168.8.1 — для красоты.